Jos olet vasta tullut CB:n pariin, mutta olet käynyt manuaalin sekä oppitunnit läpi ja haluat nyt mennä eteenpäin niin esimerkeistä on hyvä opetella lisää, kunhan sen opettelun tekee oikein. Jos olet aloittanut pelin tekemisen ja joku esimerkki sopisi siihen hyvin, älä kopioi sitä suoraan peliisi, vaan mieluummin koodaa itse rivi riviltä. Vaikka täysin samanlaiseksi kuin esimerkki. Näin ainakin varmasti luet sen esimerkin läpi ja jotain voi jäädä päähänkin.
Yleensä esimerkit on kommentoitu, joten jos et tiedä, tai et ole varma, mitä jokin kohta esimerkissä tekee lue sen yläpuolella tai vieressä oleva kommentti! (On myös mahdollista että kommentit löytyvät eri paikasta, mutta nuo kaksi ovat yleisempiä kommentien paikkoja) Jos et tiedä mitä jokin komento tekee, eikä sitä ole kerrottu kommenteissa, voit tuplaklikata komentoa CB:n editorissa jolloin manuaalin aukeaa kyseinen komento. (Jos et löydä vastausta, etsi foorumeilta -> ei löydy -> Tyhmät Kysymykset -aihe!)
Esimerkkien tekijät
Jotta aloittelijatkin pääsisivät jyvälle esimerkistä on kommentointi tärkeää. Lisäksi myös kannattaa aina yrittää tehdä virheetöntä sekä siistiä koodia. Esimerkkiä miltä koodien pitäisi näyttää ja miltä ei.
Code: Select all
ukko = LoadObject("Media\guy.bmp", 72)
Repeat
If LeftKey() Then
MoveCamera -1
x - 1
EndIf
If RightKey() Then
MoveCamera 1
x + 1
EndIf
If UpKey() Then MoveCamera 0, 1
If DownKey() Then MoveCamera 0, -1
DrawScreen
Forever
Code: Select all
//Ladataan objekti muuttujaan ukko
ukko = LoadObject("Media\guy.bmp", 72)
//Aloitetaan silmukka
Repeat
//Kameran ohjaus, MoveCamera liikuttaa kameraa
If LeftKey() Then
MoveCamera -1
x = x - 1
EndIf
If RightKey() Then
MoveCamera 1
x = x + 1
EndIf
If UpKey() Then MoveCamera 0, 1
If DownKey() Then MoveCamera 0, -1
//Piirretää ruutu
DrawScreen
Forever
Code: Select all
//Ladataan objekti muuttujaan ukko
ukko = LoadObject("Media\guy.bmp", 72)
//Aloitetaan silmukka
Repeat
//Kameran ohjaus
If LeftKey() Then
MoveCamera -1
x = x - 1
EndIf
If RightKey() Then
MoveCamera 1
x = x + 1
EndIf
If UpKey() Then MoveCamera 0, 1
If DownKey() Then MoveCamera 0, -1
DrawScreen
Forever
Voit myös koittaa erikokoisia sisennyksiä. 4 merkkiä on CB:ssä oletus ja 8 merkkiä käytetään jonkin verran. Yhden merkin sisennyksiäkin näkee, mutta ne ovat monesti turhan pieniä.
Mutta miten näitä sisennyksiä sitten oikeasti tehdään?
Kerron ensin missä kohti yleensä sisennetään. Kaikilla on oma tyylinsä ja tapansa, mutta tämä on nyt miten minä olen tottunut sisentämään. Idea on että jokaisen uuden koodilohkon alettua sisennettäisiin. (Kuvittele vaikka että kaikki mikä lopetetaan johonkin komentoon (If lopetetaan EndIf komentoon) niin niiden sisällä olevat asiat pitää sisentää)
Sisennetään kaikki loopit; For ... Next, Repeat ... Until, While ... Wend jne. Kaikki rakenteet; If ... EndIf, Select ... Case jne.
Tässä on esimerkkejä mitä kuuluu sisentää ja miten. Tab sisentää (Nappi Caps Lockin yläpuolella) ja Shift+Tab menee yhden sisennyksen taaksepäin. Voit myös valita suuremman alueen kerralla jonka haluat sisentää maalaamalla tekstin.
Code: Select all
//Sisennetään uuden koodilohkon alkaessa
DrawToImage img
//Sisennetään, Tab
Dot 0,0
//Shift+Tab menee yhden sisennyksen taaksepäin
DrawToScreen
If 1 = 1 Then
//Myös sisäkkäiset koodilohkot sisennetään
If 1<>1 Then
Print "Not possible!"
Else //Edellinen koodilohko loppuu Else komentoon ja tästä alkaa taas uusi. Myös ElseIf:n kanssa näin.
Print "Hello World!"
EndIf //Koodilohko loppuu nyt EndIf komentoon
ElseIf 1 = 0 Then
Print "This also isn't possible!"
EndIf
//Eli If -> Uusi koodilohko -> Else, ElseIf, EndIf -> Koodilohko loppuu ja uusi voi alkaa
Repeat //Koodilohko 1
For i = 0 To 9 //Koodilohko 2
If i = 5 Then //Koodilohko 3
Print i
EndIf //Koodilohko 3 loppuu
Next i //Koodilohko 2 loppuu
Forever //Koodilohko 1 loppuu
//Ylemmässä esimerkissä voit huomata, että sisennettynä on helpompi nähdä mitkä asiat kuuluvat koodilohkon sisälle. Tämä helpoittaa siis myös virheiden etsintää, varsinkin jos virheenä on että ei löydä rakenteen lopetusta (Endif jne).
Type LOHKO
Field obj
EndType
Select 2
Case 1
Print "1"
Case 2
Print "2"
Case 3
Print "3"
Default
Print "?"
EndSelect
Jos olet vasta niin alussa projektin tekoa että et ole vielä keksinyt ideaa, niin älä istu siinä koneen ja editorin edessä miettimässä ideaa. Hyvät ideat eivät synny niin, kokemuksesta ja Assembly tapahtumassa olleessa seminaarissa opittu.
Mutta kun hyvä idea on keksitty ja koodia alkaa tulemaan, niin seis. Jos aiot tehdä hyvän pelin niin älä aloita sen koodaamista heti alkuun, suunnittelu on todella tärkeä osa pelien kehittämisessä. Suunnittele hyvin pelisi ennen koodaamisen aloittamista.
Punnitse myös taitojasi: Oletko varma, että taitosi riittävät projektin aloittamiseen sekä valmiiksi saamiseen? Jos mielestäsi et ole, tai et ole varma, niin en kiellä sinua aloittamasta projektia. Aloita se projekti jos innostusta löytyy opetteluun projektin aikanakin, mutta älä kerro foorumeilla, että olet tekemässä projektia mitä et ehkä koskaan saa valmiiksi.
Koodatessasi on hyvä käyttää sisennyksiä sekä pitää koodi muutenkin siistinä, helpottaa huomattavasti virheiden etsinnässä. Kommentointi on myös hyödyksi isommissa projekteissa, koska et välttämättä enää muista mitä tietyssä kohdassa tehtiin ja sinulla kuluu aikaa sen selvittämisessä. Pilko myös todella suuret projektit osiin, komento Include yhdistää koodit sitten yhteen. Tietääkseni CB:n editori ei tykkää lähemmäs 6000:n rivin koodeista. (Ei ole täysin varmaa tietoa!)
Kun peli on siinä vaiheessa, että voit mielestäsi julkaista sen, niin mieti vielä kerran. Tarkista suunnitelmasi läpi ja testaa peliäsi, onko se sellainen kuin piti? Bugejakin voi esiintyä ja ne pitäisi korjata ennen julkaisua. Mutta jos pelisi näyttää ihan hyvältä, lukuunottamat bugeja ja ne ovat mielestäsi korjattavissa niin voinet huoletta kertoa foorumeilla projektistasi tässä vaiheessa. Mutta, vähintään pelistä screenshot (Eli kuva pelistä toiminnassa).
Voit myös laittaa peliäsi jakoon ns. "beta" tai "alpha" versiona, jos näin teet niin painota asiaa, jottei peliäsi testaajat luule sitä "valmiiksi" versioksi. Tässä myös varmasti tulet saamaan monenmoista palautetta, positiivista sekä negatiivista. Negatiivisen palautteen myötä kehitä peliäsi niiltä osin mistä annettiin sitä palautetta.
Kun pelisi on täysin valmis julkaise se foorumeilla, screenshot mukaan jottei ihmisten tarvitse ladata sikaa säkissä ja jos olet tehnyt pelisi beta tai alpha versiolle topikin niin julkaise se valmiskin siellä, ihmiset eivät välttämättä pidä useista topikeista samalle pelille.
Kerro myös ihmisille, että oletko vielä silti aikomassa jatkaa peliä vai et. Niin ihmisten ei tarvitse alkaa kyselemään jatkoversionkaan perään turhaan.
Tietääkseni yleensä alpha versio on alkeellisempi versio kuin beta, puhuin järjestyksessä beta ja alpha syystä, että CB-pelien keskuudessa kutsutaan keskeneräisiä pelejänsä enemmän betoiksi.
Minne laitan projektini?
"Tässä uusimman projektini osoite: C:\Program Files\CoolBasic\ProjectX\" Ei näin. Sinun täytyy lähettää projektisi nettiin jotta muut käyttäjät voivat ladata sen. CoolBasicin foorumeilla on mahdollista laittaa viesteihin liitetiedostoja, se onnistuu kirjoittaessasi viestiä alhaalta. Huomaa, että exejä ei ole sallittu, joten pakkaa tiedostosi ZIP tai RAR arkistoon.
Koko liian suuri?
Palvelimella ei ole rajattomasti tilaa, joten et voi välttämättä lähettää liitetiedostona 1337 megatavun kokoista peliäsi CoolBasicin palvelimelle, tällöin käytä jotain uppipalvelua. Suosin suomalaista dropbox palvelua, sielläkin on tosin 30MiB:n kokorajoitus (Vähän alle 30Mt). Ja vielä Jaren perustama K-Pelit johon voit luoda uuden topikin pelillesi ja omaan kategoriaansa. Jos upit pelisi sivuston kautta niin kokorajoitus on 128mt, jos pelisi on suurempi kuin 128mt voit lähettää tiedoston suoraan Jarelle, joka lisännee pelisi palvelimelle.