-
Notifications
You must be signed in to change notification settings - Fork 1
Minipelien alustaminen ja rakenne
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.
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 ID/logo.png. Jos kuva ei ole 100x100, se venytetään automaattisesti. Peli täytyy myös lisätä Games.CB tiedoston alkuun Include-komennolla ja MAIN_Start() funktion Select...Case rakenteeseen, että se voidaan käynnistää. Lisättävänä on 2 riviä:
Case "TUNNUS"
TUNNUS_Game()
Tämän lisäksi tulee lisätä MAIN_Stop() function Select...Case rakenteeseen, että se voidaan sulkea oikein pelin loputtua tai virhetilanteessa. Lisättävänä on 2 riviä:
Case "TUNNUS"
TUNNUS_End()
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("ID")
kutsusta ja TUNNUS_Game(GameData)
-funktiosta. Funktio sisältää itse pelin. Peli kirjoittaa lopputuloksen funktiolla API_PlayerPoints(pelaajaNro, pisteet)
, 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). Vaihtoehtoisesti voit tarkistaa API_PlayerTeam(pelaajaNro) pelaajan tiimin numeron.
Tiedot saadaan API_GetData(GameData, haettavaTietue)
. Lista haettavien tietueiden vakioista: (todo: tee lista :D )