Tervetuloa, vieras – 0 kirjautunutta jäsentä paikalla. – Rekisteröidy tai kirjaudu sisään.

Tämä on vain-luku-versio K-pelit-sivustosta:

  • Vanhojen tiedostojen lataaminen on mahdollista.
  • Sisältösivut ovat suurimmaksi osaksi näkyvillä.
  • (Vanha sivusto on konvertoitu lähes kokonaan staattiseksi, PHP:ta on vain pieni pätkä, tietokantaa ei ole.)

Seuraavat asiat eivät toimi:

  • Ei kirjautumista.
  • Ei viestien / uuden sisällön kirjoittamista.
  • Ei uusien tiedostojen uploadaamista.
  • Käyttäjät-sivu ei toimi.
  • Kävijälaskurien lukemat ovat vuosien takaa, eivätkä kasva.
  • Varmaan moni muukaan asia ei toimi.

Jos jotakin oleellista puuttuu/on rikki (esimerkiksi jokin sisältö/tiedosto jonka olet tänne aikoinaan lisännyt) tai haluat muuten vain tulla juttelemaan, niin j -at- jare.fi -sähköpostiosoite on sopiva kanava siihen :). Voit ottaa yhteyttä myös, mikäli haluat jonkin vanhan sisältösi poistettavan sivustolta.

T. Jare 12.3.2021.

CoolBasic: Näin luetaan ja kirjoitetaan koodia

Viltzu
Poistunut käyttäjä

Liittynyt 15.3.2009
Ikä 25.87 v.

Teksti on alunperin CoolBasic -foorumeille laitettu, siirsin tännekkin. Ohjeita voi käyttää myös muiden ohjelmointikielten parissa.

Esimerkkien lukijat ja käyttäjät

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.

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


Ei näin. Alempaan on lisätty sisennykset, kommentointi sekä pieni kohta jossa x:n arvoa muutattaessa käytetäänkin tapaa x = x + 1, tämä siksi että jos aloittelija haluaa lisätä muuttujaan toisen muuttujan arvon, ei x + y tulisi toimimaan.

//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


On myös hyvä käyttää tyhjiä välejä joissain kohti, nekin helpottavat koodin lukua huomattavasti. Sekä kommentoinnin määrä vähän riippuu kuinka kokeneille ohjelmoijille esimerkki on suunnattu. Pidä mielessä, että kaikkea ei välttämättä tarvitse kommentoida. Komennot voi esimerkin lukija itsekkin selvittää manuaalista tarvittaessa.

//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


Selvästi, tyhjät välit saattavat joko hankaloittaa lukemista ja esimerkin ymmärtämistä, mutta oikein tehtynä ne helpottavat sitä. (Eli toisinkuin minun esimerkissä.)

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.

//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



Projektien tekijät

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ään 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ä negatiivistä. 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?
CoolBasicin 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 Linkki dropbox palvelua, sielläkin on tosin 30MiB:n kokorajoitus (Vähän alle 30Mt).

Tai tänne kpeleihin, kokorajoitus on 128mt!

Hakukoneiden seurantaloki

Viestit

Jare
Poistunut käyttäjä
Jare

Liittynyt 2.12.2007
Ikä 32.31 v.
Kotisivut

Hieno artikkeli! :)

Huomautan että valitettavasti sivuston koodilohko ei vieläkään toimi oikein sisennysten kanssa. Korjaan vian seuraavassa päivityksessä.

Btw. Pilkun viilaus: Muuttujan arvon asettaminen lausekkeella x + y on mahdollista CoolBasicissa. Eli tällöin x:n arvoa kasvatetaan y:n arvolla. Tosin tämä ei onnistu silloin, jos lausekkeessa toinen muuttuja on taulukon solu, tyypin kenttä tai muun lausekkeen paluuarvo. Eli:

//Toimii:
x = 2
y = 3
x + y
Print x //Tulostaa 5


//Ei toimi
Dim taulukko(3)
x = 2
taulukko(2) = 3
x + taulukko(2) //Syntaksivirhe

//Ei toimi
Type tyyppi
Field kenttä
EndType
x = 2
jäsen.tyyppi = New(tyyppi)
jäsen\kenttä = 3
x + jäsen\kenttä //Syntaksivirhe

//Ei toimi
x = 2
x + Abs(-3) //Syntaksivirhe

[K-pelit lukuina] Kävijöitä sivulla 989 kpl, käyntejä/sivulatauksia 1926.