-
Notifications
You must be signed in to change notification settings - Fork 0
Tutorial Pong_sl
Izberite svoj jezik / Choisissez votre langue / Wählen Sie Ihre Sprache:
English | Français | Deutsch | Italiano | Español | Português | Slovenščina | Українська | Русский
V tej vadnici boš ustvaril klasično igro Pong - eno od prvih videoiger, ki je bila kdaj narejena! Pong je igra za dva igralca, kjer vsak igralec nadzira veslo in poskuša zadeti žogo čez veslo nasprotnika, da zbira točke.
Kaj se boš naučil:
- Ustvarjanje likov za vesla, žogo in stene
- Obvladovanje vnosov tipkovnice za dva igralca
- Oteženje objektov med seboj
- Sledenje in prikaz točk obeh igralcev
- Uporaba globalnih spremenljivk
Težavnost: Začetnik Prednastavka: Prednastavka za začetnike
Preden začnemo, razumejmo, kaj potrebujemo:
| Element | Namen |
|---|---|
| Žoga | Skaklje med igralcema |
| Levo veslo | Igralec 1 nadzira s tipkama W/S |
| Desno veslo | Igralec 2 nadzira z gornjim/spodnjim puščico |
| Stene | Zgornja in spodnja meja |
| Cilji | Nevidni predeli za vsakim veslom za zaznavanja točkovanja |
| Prikaz točk | Prikazuje točke obeh igralcev |
- V Drevesu virov desno klikni na Likove in izberi Ustvari lik
- Poimenuj ga
spr_ball - Klikni Uredi lik da odpreš urejevalnik likov
- Nariši majhen bel krog (približno 16x16 pikslov)
- Klikni V redu da shraniš
Ustvarili bomo dve vesli - eno za vsakega igralca:
Levo veslo (Igralec 1):
- Ustvari nov lik imenovan
spr_paddle_left - Nariši dolg, tanek pravokotnik, upognjen kot oklepaj ")" - priporočena modra barva
- Velikost: približno 16x64 pikslov
Desno veslo (Igralec 2):
- Ustvari nov lik imenovan
spr_paddle_right - Nariši dolg, tanek pravokotnik, upognjen kot oklepaj "(" - priporočena rdeča barva
- Velikost: približno 16x64 pikslov
- Ustvari nov lik imenovan
spr_wall - Nariši trdno pravokotnik (siva ali bela barva)
- Velikost: 32x32 pikslov (raztegnili ga bomo v sobi)
- Ustvari nov lik imenovan
spr_goal - Naredi ga 32x32 pikslov
- Pusti ga prosojnega ali naredi trdno barvo (v igri bo nevidna)
![]()
Objekt stene ustvari meje na vrhu in dnu igrišča.
- Desno klikni na Predmete in izberi Ustvari predmet
- Poimenuj ga
obj_wall - Nastavi lik na
spr_wall - Označite okence "Trdna" - to je pomembno za odbijanje!
- Ni potrebnih dogodkov - stena se samo nahaja tam

- Ustvari nov predmet imenovan
obj_paddle_left - Nastavi lik na
spr_paddle_left - Označite okence "Trdna"
Dodaj dogodke tipkovnice za gibanje:
Dogodek: Pritisk na tipko W
- Dodaj dogodek → Tipkovnica → Pritisk W
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
-8(premika se navzgor)
Dogodek: Spustitev tipke W
- Dodaj dogodek → Tipkovnica → Spustitev W
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
0(preneha se premikati)
Dogodek: Pritisk na tipko S
- Dodaj dogodek → Tipkovnica → Pritisk S
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
8(premika se navzdol)
Dogodek: Spustitev tipke S
- Dodaj dogodek → Tipkovnica → Spustitev S
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
0(preneha se premikati)
Dogodek: Trčenje z obj_wall
- Dodaj dogodek → Trčenje → obj_wall
- Dodaj akcijo: Gibanje → Odbij se (konfiguracija ni potrebna — vedno se odbije od trdnih predmetov)
- Ustvari nov predmet imenovan
obj_paddle_right - Nastavi lik na
spr_paddle_right - Označite okence "Trdna"
Dodaj dogodke tipkovnice za gibanje:
Dogodek: Pritisk na gornji puščico
- Dodaj dogodek → Tipkovnica → Pritisk Gor
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
-8
Dogodek: Spustitev gornje puščice
- Dodaj dogodek → Tipkovnica → Spustitev Gor
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
0
Dogodek: Pritisk na spodnjo puščico
- Dodaj dogodek → Tipkovnica → Pritisk Dol
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
8
Dogodek: Spustitev spodnje puščice
- Dodaj dogodek → Tipkovnica → Spustitev Dol
- Dodaj akcijo: Gibanje → Nastavi navpično hitrost
- Nastavi navpično hitrost na
0
Dogodek: Trčenje z obj_wall
- Dodaj dogodek → Trčenje → obj_wall
- Dodaj akcijo: Gibanje → Odbij se (konfiguracija ni potrebna — vedno se odbije od trdnih predmetov)

- Ustvari nov predmet imenovan
obj_ball - Nastavi lik na
spr_ball
Dogodek: Ustvari
- Dodaj dogodek → Ustvari
- Dodaj akcijo: Gibanje → Začni se premikati (smer)
- Izberi diagonalno polje v 3x3 izbirniku smeri (ne ravno navzgor ali navzdol)
- Nastavi hitrost na
6
Dogodek: Trčenje z obj_paddle_left
- Dodaj dogodek → Trčenje → obj_paddle_left
- Dodaj akcijo: Gibanje → Odbij se (konfiguracija ni potrebna — vedno se odbije od trdnih predmetov)
Dogodek: Trčenje z obj_paddle_right
- Dodaj dogodek → Trčenje → obj_paddle_right
- Dodaj akcijo: Gibanje → Odbij se (konfiguracija ni potrebna — vedno se odbije od trdnih predmetov)
Dogodek: Trčenje z obj_wall
- Dodaj dogodek → Trčenje → obj_wall
- Dodaj akcijo: Gibanje → Odbij se (konfiguracija ni potrebna — vedno se odbije od trdnih predmetov)

Cilji so nevidni predeli za vsakim veslom. Ko žoga vstopi v cilj, nasprotnik zbere točko.
- Ustvari nov predmet imenovan
obj_goal_left - Nastavi lik na
spr_goal - Odkljukaj "Vidna" - cilj bi moral biti neviden
- Označite okence "Trdna"
- Ustvari nov predmet imenovan
obj_goal_right - Nastavi lik na
spr_goal - Odkljukaj "Vidna"
- Označite okence "Trdna"
global.p1score/global.p2score sta spremenljivki po meri, ena za
vsakega igralca — vgrajena akcija Set Score tukaj ne ustreza, saj
vedno zapiše enotni vgrajeni rezultat, brez možnosti, da bi kazala na
ime spremenljivke. Set Variable je prava akcija za spremenljivko
po meri in podpira obseg global:
Pojdi nazaj k obj_ball in dodaj te dogodke:
Dogodek: Trčenje z obj_goal_left
- Dodaj dogodek → Trčenje → obj_goal_left
- Dodaj akcijo: Gibanje → Skoči na začetni položaj (ponastavi žogo)
- Dodaj akcijo: Nadzor → Set Variable
- Spremenljivka:
p2score - Vrednost:
1 - Obseg:
global - Označite "Relative" (dodaja 1 trenutnim točkam)
- Spremenljivka:
Dogodek: Trčenje z obj_goal_right
- Dodaj dogodek → Trčenje → obj_goal_right
- Dodaj akcijo: Gibanje → Skoči na začetni položaj
- Dodaj akcijo: Nadzor → Set Variable
- Spremenljivka:
p1score - Vrednost:
1 - Obseg:
global - Označite "Relative"
- Spremenljivka:

- Ustvari nov predmet imenovan
obj_score - Lik ni potreben
Dogodek: Ustvari
- Dodaj dogodek → Ustvari
- Dodaj akcijo: Nadzor → Set Variable
- Spremenljivka:
p1score, Vrednost:0, Obseg:global
- Spremenljivka:
- Dodaj akcijo: Nadzor → Set Variable
- Spremenljivka:
p2score, Vrednost:0, Obseg:global
- Spremenljivka:
Dogodek: Risanje
- Dodaj dogodek → Risanje
- Dodaj akcijo: Risanje → Nariši besedilo
- Besedilo:
Igralec 1: - X:
10 - Y:
10
- Besedilo:
- Dodaj akcijo: Risanje → Nariši spremenljivko
- Spremenljivka:
global.p1score - X:
100 - Y:
10
- Spremenljivka:
- Dodaj akcijo: Risanje → Nariši besedilo
- Besedilo:
Igralec 2: - X:
10 - Y:
30
- Besedilo:
- Dodaj akcijo: Risanje → Nariši spremenljivko
- Spremenljivka:
global.p2score - X:
100 - Y:
30
- Spremenljivka:

- Desno klikni na Sobe in izberi Ustvari sobo
- Poimenuj jo
room_pong - Nastavi velikost sobe (npr. 640x480)
Postavi predmete:
-
Stene: Postavi instance
obj_wallvzdolž zgornjih in spodnjih robov sobe -
Levo veslo: Postavi
obj_paddle_leftblizu levega roba, naravnano navpično -
Desno veslo: Postavi
obj_paddle_rightblizu desnega roba, naravnano navpično -
Žoga: Postavi
obj_ballv sredino sobe -
Cilji:
- Postavi instance
obj_goal_leftvzdolž levega roba (za veslom) - Postavi instance
obj_goal_rightvzdolž desnega roba
- Postavi instance
-
Prikaz točk: Postavi
obj_scorekjerkoli (nima lika, samo izrisuje besedilo)
Primer razporeditve sobe:
[STENA STENA STENA STENA STENA STENA STENA STENA STENA STENA]
[CILJ] [VESLO_L] [ŽOGA] [VESLO_D] [CILJ]
[CILJ] [VESLO_L] [VESLO_D] [CILJ]
[CILJ] [CILJ]
[STENA STENA STENA STENA STENA STENA STENA STENA STENA STENA]

- Klikni Zaženi ali pritisni F5 da testiraš svojo igro
- Igralec 1 uporablja W (gor) in S (dol)
- Igralec 2 uporablja Gornjo puščico in Spodnjo puščico
- Poskusi zadeti žogo čez veslo nasprotnika!
Naredi žogo hitrejšo vsakič, ko zadene veslo. speed tukaj ni
neposredno uporabna — v tem pogonu je to hitrost animacije spritea,
ne hitrost gibanja — zato hitrost žoge sledi v spremenljivki po meri:
- V dogodku Ustvari za
obj_balldodaj Nadzor → Set Variable (Spremenljivka:ball_speed, Vrednost:6) takoj za akcijo Začni se premikati. - V vsakem dogodku trčenja z veslom, po akciji Odbij se, dodaj
Nadzor → Set Variable (Spremenljivka:
ball_speed, Vrednost:0.5, označeno "Relative"), nato Gibanje → Nastavi hitrost z vrednostjoself.ball_speed, da uveljaviš novo hitrost ob ohranitvi trenutne smeri (Odbij se jo je že obrnil).
Dodaj zvoke kadar:
- Žoga zadene veslo
- Žoga zadene steno
- Igralec zbere točko
Dodaj preverjanje v dogodek risanja:
- Če
global.p1score >= 10, prikaži "Igralec 1 je zmagal!" - Če
global.p2score >= 10, prikaži "Igralec 2 je zmagal!"
| Problem | Rešitev |
|---|---|
| Žoga gre skozi veslo | Prepričaj se, da imajo vesla označeno "Trdna" |
| Veslo se ne ustavi pri stenah | Dodaj dogodek trčenja z obj_wall |
| Točke se ne posodabljajo | Preveri, da se imena spremenljivk natančno ujemajo (global.p1score, global.p2score) |
| Žoga se ne premika | Preveri, da ima dogodek ustvarjanja akcijo gibanja |
Čestitke! Ustvaril si popolno igro Pong za dva igralca! Naučil si se:
- Kako upravljati vhode tipkovnice za dva različna igralca
- Kako uporabiti dogodke spustitve tipke za zaustavitev gibanja
- Kako narediti, da se objekti odbijajo med seboj
- Kako uporabiti globalne spremenljivke za sledenje točkam
- Kako prikazati besedilo in spremenljivke na zaslonu
- Prednastavka za začetnike - Pregled začetniških lastnosti
- Vadnica: Breakout - Ustvari igro razbijanja opek
- Referenca Dogodkov - Popolna dokumentacija dogodkov
- Popolna Referenca Akcij - Vse razpoložljive akcije