Pelės ir klaviatūros įvestis „Gosu“

Žaidimai iš esmės yra interaktyvūs. „Gosu“ palengvina šią sąveiką naudodamas paprastą sąsają, skirtą klaviatūros ir pelės mygtuko paspaudimams aptikti ir į juos reaguoti.

Yra du pagrindiniai būdai, kaip tvarkyti įvestį programoje. Pirmasis yra į įvykius orientuotas požiūris. Paspaudus mygtukus, jūsų programos priima įvykį ir galite atitinkamai reaguoti. Antrasis - patikrinti, ar atnaujinimo metu nėra paspaustas tam tikras mygtukas. Abu būdai yra visiškai galiojantys, naudokite tai, kas jums labiausiai tinka.

Užkulisiuose mygtukus vaizduoja sveikieji skaičiai. Šie sveikų skaičių kodai priklauso nuo platformos ir tikriausiai neturėtų rasti kelio į jūsų žaidimo kodą. Norėdami tai atskirti, Gosu pateikia daugybę konstantų.

Kiekvienam klaviatūros klavišui yra Gosu:: Kb * pastovus. Daugelio klavišų šių konstantų pavadinimai yra lengvai atspėjami. Pavyzdžiui, rodyklių klavišai yra Gosu:: KbLeft, Gosu:: KbRight, Gosu:: KbUp ir „Gosu“: „KbDown“. Išsamų sąrašą žiūrėkite „Gosu“ modulio dokumentacija.

instagram viewer

Įvesties įvykiai pristatomi į Gosu:: langas instancija. Pagrindinėje kilpoje, prieš atnaujinti vadinamas, „Gosu“ pristatys įvykius visiems mygtukams, kurie buvo paspausti arba atleisti. Tai padaroma paskambinus mygtukas zemyn ir užsisagstyti metodai, praleidžiant klavišo arba mygtuko ID.

Viduje mygtukas zemyn ir užsisagstyti metodus, dažnai rasite a atvejis pareiškimas. Tai ne tik labai funkcionalus, bet ir labai elegantiškas bei išraiškingas būdas nuspręsti, ką daryti atsižvelgiant į tai, kuris mygtukas buvo paspaustas ar paleistas. Toliau pateiktas trumpas pavyzdys, ką a mygtukas zemyn metodas gali atrodyti. Jis turėtų būti dedamas į jūsų Gosu:: langas poklasio ir uždarys langą (baigiant programą), kai Pabegti paspaudžiamas klavišas.

Lengva, tiesa? Praplėskime tai. Čia yra Žaidėjas klasė. Paspaudus kairįjį ir dešinįjį klavišus, jis gali judėti kairėn ir dešinėn. Atminkite, kad šią klasę taip pat turi mygtukas zemyn ir užsisagstyti metodai. Jie veikia taip pat, kaip ir metodai nuo a Gosu:: langas poklasis. Gosu nieko nežino Žaidėjas nors mes paskambinsime Žaidėjasmetodai rankiniu būdu iš Gosu:: langasmetodai. Galima rasti išsamų, vykdomą pavyzdį čia.

Jei įvykiais grindžiamas įvestis nėra jūsų stilius, galite užduoti bet kurią užklausą Gosu:: langas Norėdami pamatyti, ar bet kuriuo metu nėra paspaustas mygtukas ar klavišas. Galite nepaisyti mygtukas zemyn ir užsisagstyti viso atšaukimo.

Norėdami paklausti Gosu:: langas Norėdami sužinoti, ar nėra paspaustas klavišas, paskambinkite mygtukas zemyn? metodas su mygtuko, kurį norite patikrinti, ID. Nepamirškite šio skambučio klaustuko! Jei paskambins button_down („Gosu“: „KbLeft“), būsi ataskaitų teikimas mygtuką paspauskite prie Gosu:: langas poklasis. Net jei nenustatėte jokio atgalinio ryšio metodo, tėvų klasė, Gosu:: langas bus. Nebus klaidų, ji tiesiog neveiks taip, kaip tikėjotės. Tik nepamiršk to klaustuko!

Čia yra Žaidėjas klasė perrašyta naudoti mygtukas zemyn? vietoj įvykių. Yra visas tinkamas naudoti pavyzdys čia. Šiuo metu įvestis tikrinama atnaujinti metodas. Taip pat pastebėsite, kad šis pavyzdys yra trumpesnis, bet, mano manymu, ne toks elegantiškas.

Pelės mygtukai yra tvarkomi taip pat, kaip klaviatūros ir žaidimų pulto mygtukai. Galite juos abu užduoti mygtukas zemyn? ir renginiai su mygtukas zemyn ir užsisagstyti. Tačiau apie pelės judėjimą galima tik paklausti, nėra jokių pelės judėjimo įvykių. Gosu:: langas's pele_x ir pele_y metodai pateikia pelės žymeklio X ir Y koordinates.

Atminkite, kad X ir Y koordinatės yra susijusios su žaidimo langu. Taigi, pavyzdžiui, jei pelė yra viršutiniame kairiajame kampe, ji bus šalia koordinatės (0,0). Taip pat, jei pelės žymiklis yra lauke žaidimo lango, jis vis tiek praneš, kur rodyklė yra lango atžvilgiu. Taigi abu pele_x ir pele_y gali būti mažesnis nei nulis ir didesnis už lango plotį ar aukštį.

Ši programa parodys naują momentą visur, kur spustelėsite pelę. Atminkite, kad jis naudoja tiek įvykių pagrįstą įvestį (paspaudimams), tiek užklausos pagrįstą įvestį (norint gauti pelės vietą). Galimas visas paleidžiamas failas čia.