Pelės įvestis
Naudojantis žaidimas moduliu, galima programuoti interaktyvias programas, reaguojančias į pelės paspaudimus. Į pelės signalus reaguoja arba žaidimo Scena, arba ant šios scenos sudėti Daiktai (taip pat ir Veikėjai bei Dekoracijos, kurie paveldi visas savo savybes iš Daikto).
Pelės signalai
Programa gali reaguoti į šiuos pelės signalus:
- pelęUžvedus
- pelęJudinant
- pelęNuvedus
- pelęPaspaudus
- pelęAtleidus
- pelęPaspaudusDešinįKlavišą
- pelęAtleidusDešinįKlavišą
Veiksmų (komandų) registravimas
Norint, kad programa reaguodama į pelės signalą atliktų kokį nors veiksmą, reikia registruoti savo sukurtą komandą (procedūrą/funkciją). Dėmėsio! Tokios komandos privalo turėti lygiai du parametrus, į kuriuos pelės signalas automatiškai įrašys X ir Y koordinates.
Registruoti šiuos veiksmus galima reaguoti tiek žaidimo Scenai, tiek ir ant šios scenos sudėtiems Daiktams. Jeigu scenos neturite, galima pelės signalus registruoti tiesiog žaidimui, pavyzdžiui, žaidimas.pelęPaspaudus.
reikalingas žaidimas
komanda klikt(x, y):
rašyk("pelė paspausta koordinatėse", x, "ir", y)
žaidimas.pelęPaspaudus( klikt )
SVARBU! Reikia nurodyti tik komandos pavadinimą, be parametrų ir be skliaustelių:
reikalingas žaidimas
komanda klikt(x, y):
rašyk("pelė paspausta koordinatėse", x, "ir", y)
# KLAIDA:
# žaidimas.pelęPaspaudus( klikt(10, 10) )
# Teisingai:
žaidimas.pelęPaspaudus( klikt )
Telefonai, planšetės ir kiti liečiami ekranai
Ne visi įrenginiai turi peles: kai kurie (pvz., mobilieji telefonai, planšetiniai kompiuteriai arba kompiuteriai su liečiamaisiais ekranais) yra valdomi liečiant ekraną pirštais arba specialiais rašikliais. Tačiau Angies programos reaguoja į piršto prisilietimą taip pat, kaip ir į pelės paspaudimą - tai yra, palietus ekraną, iškviečiami signalai pelęPaspaudus, pelęJudinant ir pelęAtleidus.
Daikto prikabinimas prie pelės
Žr komandas Daiktas.prisikabinkPriePelės() ir Daiktas.atsikabinkNuoPelės()
Daiktas bus judinamas per ekraną, judinant pelės kursorių.
reikalingas žaidimas
pilis = žaidimas.Daiktas("pav/pilis1.png", x=300, y=300)
komanda prikabinkPilį(naujasX, naujasY):
pilis.prisikabinkPriePelės()
komanda palikPilį(naujasX, naujasY):
pilis.atsikabinkNuoPelės()
pilis.pelęPaspaudus(veiksmas = prikabinkPilį)
pilis.pelęAtleidus(veiksmas = palikPilį)
Pavyzdžiai
Daikto perkėlimas į naują vietą ekrane
reikalingas žaidimas
pilis = žaidimas.Daiktas("pav/pilis1.png", x=300, y=300)
komanda perkelkPilį(naujasX, naujasY):
pilis.atsirask(x = naujasX, y=naujasY)
žaidimas.pelęPaspaudus(veiksmas = perkelkPilį)
Taško padėjimas pelės paspaudimo vietoje
reikalingas žaidimas
medis = žaidimas.Daiktas("pav/medis1.png", x=100, y=100)
komanda pasodinkMedį(naujasX, naujasY):
medis.atsirask(x = naujasX, y=naujasY)
medis.padėkTaškelį()
žaidimas.pelęPaspaudus(veiksmas = pasodinkMedį)
Linijos piešimas iš vieno taško į kitą
Daiktai gali piešti keliaudami iš vienos vietos į kitą (žr. Daiktas.pradėkPiešti ir Daiktas.nustokPiešti ). Tokiu būdu galima linijomis sujungti pelės paspaudimo taškus.
Štai pavyzdys, kaip Veikėjas vaikšto piešdamas liniją iš vieno taško į kitą, pagal pelės paspaudimus:
reikalingas žaidimas
reikalinga herojai
karys = herojai.karys
karys.atsirask(100, 100)
karys.pradėkPiešti()
komanda sujunkTaškus(naujasX, naujasY):
karys.keliaukĮ(x = naujasX, y=naujasY)
žaidimas.pelęPaspaudus(veiksmas = sujunkTaškus)
Daikto nutempimas iš vienos vietos į kitą
reikalingas žaidimas
pilis = žaidimas.Daiktas("pav/pilis1.png", x=300, y=300)
komanda pilieJudėkSuPele(naujasX, naujasY):
pilis.prisikabinkPriePelės()
komanda pilieAtsiraskNaujojeVietoje(naujasX, naujasY):
pilis.atsikabinkNuoPelės()
pilis.pelęPaspaudus(pilieJudėkSuPele)
pilis.pelęAtleidus(pilieAtsiraskNaujojeVietoje)
Globalių kintamųjų naudojimas
Jeigu reikia naudoti kintamuosius už pelės komandos ribų, naudokite globalius kintamuosius - tai yra, už komandos ribų sukurtus kintamuosius komandos bloke pažymėkite kaip global.
reikalingas žaidimas
paspaudimai = 0
komanda padidinkPaspaudimus(x,y):
globalus paspaudimai
paspaudimai = paspaudimai + 1
rašyk("paspausta", paspaudimai, "kartų")
žaidimas.pelęPaspaudus(padidinkPaspaudimus)
Visa specifikacija
- pelęUžvedus ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama užvedus pelės kursorių virš Daikto arba Scenos.
Pavyzdžiui:
reikalingas žaidimas
medis = žaidimas.Daiktas('pav/medis1.png', 300, 300)
komanda rašykKadPelėUžvesta(x, y):
rašyk("pelė užvesta ant medžio")
medis.pelęUžvedus ( rašykKadPelėUžvesta )
- pelęJudinant ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama judinant pelės kursorių virš Daikto arba Scenos.
- pelęNuvedus ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama patraukus pelės kursorių nuo Daikto arba Scenos.
Pavyzdžiui:
reikalingas žaidimas
medis = žaidimas.Daiktas('pav/medis1.png', 300, 300)
komanda rašykKadPelėNuvesta(x, y):
rašyk("pelė patraukta nuo medžio")
medis.pelęNuvedus( rašykKadPelėNuvesta )
- pelęPaspaudus ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama paspaudus pelės kairį mygtuką.
Pavyzdžiui:
reikalingas žaidimas
medis = žaidimas.Daiktas('pav/medis1.png', x=200, y=230)
komanda pranyk(pelėsX, pelėsY):
medis.pasislėpk()
medis.pelęPaspaudus( veiksmas = pranyk )
- pelęAtleidus ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama atleidus pelės kairį mygtuką.
reikalingas žaidimas
pilis = žaidimas.Daiktas("pav/pilis1.png", 300, 300)
komanda pilieAtsiraskNaujojeVietoje(naujasX, naujasY):
pilis.atsirask(naujasX, naujasY)
žaidimas.pelęPaspaudus(pilieAtsiraskNaujojeVietoje)
- pelęPaspaudusDešinįKlavišą ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama paspaudus pelės dešinįjį mygtuką.
- pelęAtleidusDešinįKlavišą ( veiksmas ) - registruojama komanda
veiksmas, kuri iškviečiama atleidus pelės dešinįjį mygtuką.