Ben eski bir okul ASCII DOS-Prompt oyunu yazıyorum. Dürüst olmak gerekirse, bu oyun tasarımı hakkında daha fazla bilgi edinmek için ZZT'ye öykünmeye çalışıyorum (antika olsa bile)ASCII DOS Oyunları - Oluşturma yöntemleri
Ben iyiyim, tam ekran metin modumu çalıştırdım ve dünyalar yaratabilirim sorun olmadan etrafında ama benim işleyiciler için iyi bir zamanlama yöntemi bulamıyorum.
Oluşturma ve ön işleme kodumun hızlı olduğunu biliyorum çünkü time.h'dan herhangi bir gecikme() s veya (clock() - renderBegin)/CLK_TCK denetimi eklemezseniz, render'lar şaşırtıcı derecede hızlıdır.
Gecikme() kullanmak istemiyorum çünkü bilgi platformuma özeldir ve bunun üzerine herhangi bir kodu geciktirirken çalıştıramıyorum (kullanıcı girişi ve işleme gibi). Bu yüzden böyle bir şey yapmaya karar verdim: "Teori" nin çalışması iyi olacaktı. Bu, aşağıdaki gibi bir şey yapmaya karar verdim:
do {
if(kbhit()) {
input = getch();
processInput(input);
}
if(clock()/CLOCKS_PER_SEC-renderTimer/CLOCKS_PER_SEC > RenderInterval) {
renderTimer = clock();
render();
ballLogic();
}
}while(input != 'p');
Sorun şu ki, bu kodu çalıştırdığımda (RenderInterval'ı 0.0333 veya 30fps'ye ayarlıyorum), 30 fps'ye yakın ANYWHERE alamıyorum, en fazla 18 tane daha aldım.
Performansın başlatılıp başlatılmadığını görmek için RenderInterval'ı 0.0 olarak ayarlamayı deneyebilirim. Ben ~ ~ 18-20fps alma (0.0 bir RenderInterval ile) oldu.
olsa belki sürekli tüm bu saati arayarak() ve CPU aşağı bir şey korkutucu yavaşlama oldu yöntemleri "Bununla bu bölmek" ama işlemek aldı ve ne zaman ifadesinin parantez eğer ballLogic dışarı çağırır ediyorum beri ve RenderInterval'ı 0,0'ya ayarlıyorum, yine, çılgınca hızlı bir şekilde render ediyorum.
Bu benim için bir çekicidir, çünkü eğer kontrol etmeden ayrılırsam, yavaş çalışmamalı mıyım? Ben hala
BTWBen Borland Turbo C ile derleme ++ v1.01 tüm hesaplamaları yapmak zorunda anlamına
ZZT! Bu oyunu sevdim. – caf
Sen ve ben ikimiz, caf. (#throwstar seek'). @ Parad0x13: Saate' sonucunu kapalı kaydediniz (http://libfake437.googlecode.com –
: Eğer DOS uzaklaşan sakıncası yoksa, ben SDL tarafından desteklenen herhangi bir platformda bu grafik stilini taklit bir kütüphane yazdım) '' ((saat aksi takdirde ilk aradığında arasındaki zaman kaybetmek (en hızlı kod aramıyorsun kodudur) ve daha doğru olacaktır) o ve bunun için bir çağrı kazandıracak, depolanan değeri atamak' , tüm matematikleri yaptı ve dalı ele aldı. Bu hassaslık kaybı, cpu kullanımını artık kullanmıyor olsanız bile oyunun istediğiniz kadar yavaş çalışmasını sağlar. –