Peles un tastatūras ievade Gosu

click fraud protection

Spēles pēc definīcijas ir interaktīvas. Gosu padara šo mijiedarbību vienkāršu, izmantojot vienkāršu interfeisu taustiņu un peles pogu nospiežu noteikšanai un reaģēšanai uz tām.

Programmā ir divi galvenie veidi, kā rīkoties ar ievadi. Pirmais ir uz notikumiem vērsta pieeja. Nospiežot pogas, jūsu programmas saņem notikumu, un jūs varat attiecīgi reaģēt. Otrais ir pārbaudīt, vai atjaunināšanas laikā ir nospiesta noteikta poga. Abas tehnikas ir pilnīgi derīgas, izmantojiet to, kura vislabāk jums piemērota.

Aizkulisēs pogas attēlo veseli skaitļi. Šie veseli skaitļu kodi ir atkarīgi no platformas, un tiem, iespējams, nevajadzētu atrast ceļu uz jūsu spēles kodu. Lai to atdalītu, Gosu nodrošina vairākas izmantojamās konstantes.

Katram tastatūras taustiņam ir Gosu:: Kb * nemainīgs. Lielākajai daļai taustiņu šo konstantu nosaukumi ir viegli uzminami. Piemēram, bulttaustiņi ir Gosu:: KbLeft, Gosu:: KbRight, Gosu:: KbUp un Gosu:: KbDown. Pilnu sarakstu skat Gosu moduļa dokumentācija.

Ievades notikumi tiek piegādāti uz

instagram viewer
Gosu:: logs piemēram. Galvenajā cilpā, pirms tam Atjaunināt tiek saukts, Gosu piegādās notikumus visām pogām, kuras ir vai nu nospiestas, vai atbrīvotas. Tas tiek darīts, piezvanot button_down un pogas_up metodes, nododot nospiesta taustiņa vai pogas ID.

Iekš button_down un pogas_up metodes, jūs bieži atrodat a lietu paziņojums, apgalvojums. Tas ir ļoti funkcionāls, un tas nodrošina ļoti elegantu un izteiksmīgu veidu, kā izlemt, ko darīt atkarībā no tā, kura poga tika nospiesta vai atbrīvota. Šis ir īss piemērs tam, ko a button_down metode var izskatīties. Tas jāievieto jūsu Gosu:: logs apakšklases un aizvērs logu (beidzas programma), kad aizbēgt tiek nospiests taustiņš.

Viegli, vai ne? Paplašināsim to. Šeit ir a Spēlētājs klase. Tas var pārvietoties pa kreisi un pa labi, ja tiek nospiests kreisais un labais taustiņš. Ņemiet vērā, ka arī šai klasei ir button_down un pogas_up metodes. Viņi darbojas tāpat kā metodes no a Gosu:: logs apakšklase. Gosu neko nezina Spēlētājs lai gan mēs zvanīsim Spēlētājsmetodes manuāli no Gosu:: logsmetodes. Pilns, izpildāms piemērs ir atrodams šeit.

Ja uz notikumiem balstīta ievade nav jūsu stils, varat veikt vaicājumus par jebkuru Gosu:: logs lai redzētu, vai jebkurā laikā tiek nospiesta kāda poga vai taustiņš. Jūs varat ignorēt button_down un pogas_up pilnībā atzvanīt.

Lai vaicātu Gosu:: logs lai redzētu, vai netiek nospiests kāds taustiņš, piezvaniet poga_lejup? metodi ar tās pogas ID, kuru vēlaties pārbaudīt. Šajā zvanā neaizmirstiet jautājuma zīmi! Ja zvana button_down (Gosu:: KbLeft), tu būsi ziņošana pogas nospiešana līdz Gosu:: logs apakšklase. Pat ja jums nav definētas atzvanīšanas metodes, vecāku klase, Gosu:: logs būs. Nebūs kļūdu, tā vienkārši nedarbosies tā, kā jūs gaidījāt. Tikai neaizmirstiet šo jautājuma zīmi!

Šeit ir Spēlētājs klase pārrakstīta lietošanai poga_lejup? nevis notikumi. Ir pieejams pilns, darbināms piemērs šeit. Šoreiz ievadi pārbauda Atjaunināt metode. Jūs arī pamanīsit, ka šis piemērs ir īsāks, bet, manuprāt, mazāk elegants.

Ar peles pogām rīkojas tāpat kā ar tastatūras un spēļu pults pogām. Jūs abi varat tos vaicāt, izmantojot poga_lejup? un notikumi ar button_down un pogas_up. Tomēr par peles kustību var tikai uzdot jautājumus, peles kustībai nav notikumu. Gosu:: logs's pele_x un pele_y metodes nodrošina peles rādītāja X un Y koordinātas.

Ņemiet vērā, ka X un Y koordinātas ir saistītas ar spēles logu. Piemēram, ja pele atrodas augšējā kreisajā stūrī, tā atradīsies koordinātas tuvumā (0,0). Arī tad, ja peles rādītājs ir ārpusē spēles logā, tas joprojām ziņos, kur rādītājs ir attiecībā pret logu. Tātad abi pele_x un pele_y var būt mazāks par nulli un lielāks par loga platumu vai augstumu.

Šī programma parādīs jaunu sprītu visur, kur noklikšķināt ar peli. Ņemiet vērā, ka tajā tiek izmantota gan notikumu balstīta ievade (par klikšķiem), gan vaicājumu ievadīšana (lai iegūtu peles pozīciju). Ir pieejams pilns palaidems fails šeit.

instagram story viewer