Skip to content

Minipelien alustaminen ja rakenne

aXu-AP edited this page Apr 14, 2012 · 8 revisions

Minipelien lisääminen CoolBasic Party Packiin on pyritty tekemään mahdollisimman helpoksi ja yksinkertaiseksi. Tällä hetkellä minipeli sisältää vain 3 pakollista koodiriviä, jotta peli on käyttökelpoinen. Sen lisäksi tarvitaan 2 tiedostoa pelin tietojen hakemiseksi.

Alustaminen

Minipeli lisätään kokoelmaan kutsumalla API_AddGame(nimi$). Funktio lataa muut tiedot tiedostosta Games/pelin nimi/gameinfo.ini. Tiedosto on tavallinen asetustiedosto, jossa voi olla seuraavat arvot (täytetty esimerkkitiedoilla):

#Pakolliset tiedot (puuttuminen aiheuttaa virheilmoituksen):
#Pelin nimi (mahdollisimman kuvaava)
Name = Napinpainamispeli
#Pelin selite (kertoo pelin tavoitteen ja voittoehdon)
Desc = Paina nappia ensimmäisenä!
#Pelaajien kontrollit (näppäimiin viitataan %näppäimen vakio%, esim. %ACTION1%)
Controls = %ACTION1%: voita peli
#Pelaajien kokoonpanot, jos peli tukee useampia, erotetaan pilkuilla. Mahdolliset arvot ALLvs, 1vsALL, TEAMvs
PlayerSetup = ALLvsALL

#Vapaaehtoiset tiedot (käytetään oletusarvoja, jos ei ilmoiteta tai epäkelpo arvo):
#Minimimäärä pelaajia (oletus 1)
MinPlayers = 2
#Maksimimäärä pelaajia (0 eli oletus suurin mahdollinen)
MaxPlayers = 0

#Tukeeko peli tekoälyn ohjaamia hahmoja (YES/NO, oletus NO)?
SupportAI = YES
#Tukeeko peli tasoitusta (YES/NO, oletus NO)? Jos ei, pääpeli muokkaa lopputulosta tasoitusarvojen mukaan
SupportHandicap = NO
#Mille vaikeustasolle peli on suunnitelty (1-3) vai tukeeko kaikkia (0, oletus)
Difficulty = 0

Pelillä täytyy myös olla logo. Logo on 100x100 kokoinen png-tiedosto, tallennettuna Games/pelin nimi/logo.png. Jos kuva ei ole 100x100, se venytetään automaattisesti. Peli täytyy myös lisätä Games.CB tiedoston MAIN_Start() funktion Select...Case rakenteeseen, että se voidaan käynnistää. Lisättävänä on 2 riviä:

		Case "pelin_nimi"
			TUNNUS_Game(GameData)

Rakenne

Jokaiselle pelille on oma tunnus, jota tulee käyttää kaikkien globaalisti näkyvien nimien etuliitteenä. Tunnus sisältää kaksi kirjainta, jotka kertovat pelin tekijän (esim. aXu => AX) ja kaksi numeroa, jotka kertovat pelin järjestysnumeron lähtien nollasta (esim. aXun kolmas peli => AX02) sekä alaviivan (esim. AX02_Taulukko). Peli koostuu pienimmillään API_AddGame("nimi") kutsusta ja TUNNUS_Game(GameData) -funktiosta. Funktio sisältää itse pelin. Peli kirjoittaa lopputuloksen taulukkoon API_PlayerScore(pelaajaNro), jokaiselle pelaajalle karttuneet pisteet (huom. taulukko alustetaan täyteen nollia aina ennen minipeliä. Varsinainen pistetilanne tallennetaan toiseen taulukkoon). Funktion palautusarvoa ei lueta (eli funktion ei tarvitse palauttaa mitään).

GameData on muistipala, joka sisältää senhetkisen minipelin asetukset, kuten pelaajamäärän, handicapit (vaikeustaso) ja pelaajien kokoonpanon. Pelaajat on järjestetty valmiiksi niin, että 1vsALL kokoonpanolla ykköspelaaja on yksin ja TEAMvs ensimmäinen puolisko pelaajista on toisessa joukkueessa ja loput toisessa (parittomalla määrällä isompi joukkue ensin). Tiedot saadaan API_GetData(GameData, haettavaTietue). Lista haettavien tietueiden vakioista: (todo: tee lista :D )