Innen: Hungarian Scratch-Wiki
Az Érinted ()? blokk egy Érzékelő blokk és egy Logikai blokk is egyben. Ez az utasításblokk azt ellenőrzi, hogy az adott szereplő érinti-e az egérmutatót, a játéktér szélét vagy egy másik szereplőt. Ha az adott szereplő érinti a kiválasztott objektumot, akkor a blokk igaz értékkel tér vissza, ha nem érinti, akkor hamissal.
Az utasításblokk másképpen viselkedik, amikor a szereplő eltüntettük. Más szereplőkkel való érintkezéskor hamis értéket ad, azonban amikor az egérrel vagy a játéktér szélével érintkezik, akkor igaz értékkel tér vissza.
Példák a használatra
Mivel az utasításblokk azt ellenőrzi, hogy egy adott szereplő érint-e egy objektumot, ezért leginkább arra használják, hogy észleljék az összeütközéseket.
Néhány gyakori felhasználási mód az Érinted ()? utasításblokkra::
- A szereplő mozgatása addig, amíg nem érinti a játéktér szélét
ismételd eddig: <érinted: [játéktér széle v]?> menj (3) lépést
- Az egyik szereplő kerget egy másikat addig, amíg a kergető nem érinti a másik szereplőt
ismételd eddig: <érinted: [Szereplő2 v]?> nézz [Szereplő2 v] irányába menj (3) lépést end mondd: [Elkaptalak!] (2) mp-ig
- Golyók megállítása, amikor a falhoz ütköznek
mindig ha <érinted: [Fal v]?> akkor tűnj el
- A labirintusban, amikor a szereplő zsákutcába került
mindig ha <érinted: [Labirintus fala v]?> akkor mondd [Zsákutca!] (1) mp-ig
- Annak ellenőrzése, hogy a szereplő érinti-e az egérmutatót
zz-ra kattintáskor mindig ha <érinted: [Labirintus fala v]?> akkor jelmez legyen [Kiemelt v] különben jelmez legyen [Normál v]
- Annak ellenőrzése, hogy a játékos érinti-e az ellenséget a játékban
mindig ha <érinted: [Ellenség v]?> akkor mondd [Játék vége!] [minden v] álljon le
Kapcsolódó javaslat
Néhány Scratcher szeretne egy olyan utasításblokkot, amely 2 szereplő érintkezését vizsgálja. Ennek a blokknak az lenne az előnye, hogy egy 3. szereplőre ruházza azt a képességet, hogy a másik két szereplő érintkezését vizsgálja.
<[Szereplő1 v] érinti [Szereplő2 v]-t? ::sensing>
Ezt egy globális változóval tudjuk reprodukálni úgy, hogy az egyik szereplőnél vizsgáljuk az érintkezést, majd beállítjuk az értéket, így:
// Szereplő1-ben [Érintés ellenőrzése v] üzenet érkezésekor ha <érinted: [Szereplő2 v]?> akkor (Szereplő1 érinti Szereplő2-t?) legyen [igen] különben (Szereplő1 érinti Szereplő2-t?) legyen [nem] end // Bárhol ellenőrheted az érintkezést küldj üzenetet [Érintés ellenőrzése v] és várj ha <(Szereplő1 érinti Szereplő2-t?) = [igen]> akkor // Rakj ide bármit, amit akarsz, hogy történjen, amikor ők érintkeznek különben// put what you want if they aren't here end