2015-04-16 16 views
6

'da Optimal Basma Tuşları Kontrol Yöntemi Yerleşik program düzenleyiciyi kullanarak TI-89'a küçük bir oyun programlamaya karar verdim, ancak önemli gecikmeler olmadan tuş vuruşlarını almak için en uygun yöntemi anlayamıyorum. Şu anda var:Bir deney için TI-89

Prgm 

70→xpos 
70→ypos 

Loop 

If getKey()=340 Then 
xpos+3→xpos 
PxlCrcl ypos,xpos,5,1 
EndIf 

If getKey()=337 Then 
xpos-3→xpos 
PxlCrcl ypos,xpos,5,1 
EndIf 

If getKey()=257 Then 
Goto end 
EndIf 

EndLoop 
Lbl end 

EndPrgm 

Bu sol, sağ ya da düğmelere basıldığında ediliyor silmek ve sağ buna göre sola veya bir daire çizin veya tamamen programını sonlandırmak edilmediğini kontrol eden sonsuz oyun döngü oluşturur. Ancak, bu yöntem çok yavaş çalışıyor ve diğer gösterilerde daha yumuşak hareketler gördüm. Benim yöntemimle yanlış bir şey var mı ve eğer öyleyse nasıl geliştirebilirim?

+0

Değişkeni sınamak için değişkene getKey() 'ayarlamayı denediniz mi? Bunu test etmek için benim hesap makinem yok, ama birden çok kez (her bir 'If' ifadesi için bir tane) 'getKey()' yi çalıştırmak, bir değişkeni test etmekten daha fazlasını yavaşlatabilir. – jaysoncopes

cevap

3

Üzgünüm, TI-84 kullanıyorum, ancak bu yöntem hala çalışmalıdır.

getKey() işlevi, gecikme oluşturan işlevdir. Çıktıyı bir değişkene koyarsanız getKey() işlevini bir kez çalıştırmanız yeterlidir. TI-84, yalnızca,

getKey->K 

Sen TI-89 ile tam olarak aynı şeyi yapmak mümkün olmalıdır yapabilirsiniz.

Bu yardımcı olur umarız!

0

Genelde yaptığım şey bir While not() deyimidir, sonra cevabı daha sonra kontrol et. Sadece bazı kodlar (Belki bazı temel toplama ve çıkarma veya işleri yavaşlatmak bir İçin döngü) ve birlikte ifadesinin her döngü deyimi ise tek infaz edilir Bu yolla örneğin

loop 
0 -> X 
while not(X) 
    do something every iteration 
    getKey() 
    if Ans: Ans -> X 
Check values of X with If statements 
End loop 

için

Her döngüde bir çok If ifadesini kontrol etmek yerine.

Bu size iyi hizmet verir ve bir tuşa basmayı kontrol ederken While döngüsünün her yinelemesinde bir şey yapmanızı sağlar.

Genellikle TI-84'lerde program yaptığımı unutmayın, ancak fikir biraz TZ-89'da aynı şekilde çalışmalıdır.

İlgili konular