Oyunu oyun döngüsünün içinde duraklatma


12

Oyun döngüsünün içinde, oyun P tuşuna basılarak duraklatılır, yani oyun döngüsü artık çalışmaz. Sorun, bu döngü durdurulduktan sonra, döngü içinde olduğu için döngüye devam etmek için P'ye tekrar basılamamasıdır. P nasıl tekrar basıldığında döngüyü tekrar çalışır hale getirir?

Yanıtlar:


20

Oyunu duraklatırken aslında oyun döngüsünü durdurmayın. Bunun yerine, bool değişkeni eklemeniz gerekir; bu, oyun duraklatılmışsa bağlı olarak true / false olarak değiştirilir. Oyun duraklatılmışsa, yalnızca oyunu güncellemeyi durdurmanız gerekir, ancak girişten güncellemeler almak da dahil olmak üzere geçerli kareyi oluşturmaya devam edebilirsiniz.

if(gameIsPaused == false)
{
    // run updates
}
checkInput();
render();

checkInputDuraklatılmış mod ve duraklatılmamış mod için farklı bir işleve sahip olmak isteyebilirsiniz , çünkü yalnızca bir modda veya diğerinde kullanılabilen bazı kontroller olabilir. checkInputDuraklatılan modu için fonksiyon eğer arayan başka bir şey yapabilir Ppreslenmiş ve daha sonra ayarlanır gameIsPaused = false, ancak bazı oyunlar da (90'lı yıllarda modern, hile kodları için gizli girdi olarak duraklama ekran var popülerdi duraklama ekranda ek işlevsellik yerleştirmek oyunlar bir menü ekranı ile birleştirmeyi sever).
Philipp

1
Genel olarak cevabınızı kabul etsem de, bazen duraklatılmış durumda bazı güncellemelerin çalıştırılmasının kesinlikle geçerli olduğu açıkça belirtilmelidir . Örneğin, menü öğelerini veya belki de bazı ses yönetimini canlandırmak. Büyük fikir, duraklatma koşulunun başka bir checkInput/ render/ updateçağrı kümesine dalmanıza izin vermesidir .
Nicholas Miller

Oyunu duraklatmanın değişmesi gereken tek şey "güncelleme dünyası" bitinin atlanması gerektiğidir. Diğer tüm işlevler muhtemelen normal kalmalıdır.
Mooing Duck

4
Cevabı olabildiğince basit tutmaya çalıştım, çünkü bu oyun programlamasında çok temel şeyler ve soru sorucusunu karıştırmak istemedim.
Katu

1
@ user3730788: Oyun döngüsü başına bir kez (yani saniyede 100 kereden daha az) çalışan bir dalın, her seferinde yanlış tahmin edilse bile fark edilir bir performans etkisi olmayacaktır .
Ilmari Karonen

1

P tuşuna basıldığında, "Duraklatıldı" oyun durumunu işleyen ve P düğmesine tekrar basarak orijinal oyun döngüsüne geri dönmeye izin veren başka bir döngüye geçmesini sağlayın.

Bunu aslında oyun döngüsünün içine koyabilir ve bir durum değişkeni getirebilirsiniz, isterseniz döngüyü kapatmak yerine, durum değişkeni döngü içinde ilgili duruma özgü kodun yürütülmesi arasında geçiş yapar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.