Esimerkkejä aloittelijoille.

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
Alkku
Newcomer
Posts: 7
Joined: Thu Aug 30, 2007 6:02 pm

Esimerkkejä aloittelijoille.

Post by Alkku » Thu Aug 30, 2007 6:17 pm

Eli päätinpäs tehdä tämän aiheen, kun se edellisessäkin oli ja varmasti aloittelijoille hyödyllisiä koodeja sieltä löytyi. Eli siis pistetään tänne helpot, pienet ja tarpeelliset esimerkit. Ei siis mitään 3 riviä joissa on: Repeat, Drawscreen ja Forever, vaan siis vähän suurempia ja hyödyllisempiä.

Valikko funktioilla:

Code: Select all

ClsColor cbwhite 'Taustavari valkoiseksi

Repeat

If painike(30,40,"Poistu") Then End 'Esimerkki toiminnasta

DrawScreen
Forever

'------------
'FUNKTIO
'------------

Function painike(reunaX,reunaY,txt$)

clr=1 'Clr on 1

x = TextWidth(txt$)
y = TextHeight(txt$)
Color 0,175,22

If MouseX()<reunaX+x+6 And MouseX()>reunaX And MouseY()<reunaY+y+6 And MouseY()>reunaY Then
If MouseHit(1) Then paalla=True
If clr=1 Then Color 55,254,23
Else
paalla=False


EndIf 'Lopetetaan if -lause


Box reunaX,reunaY,x+6,y+6 ,ON 'Laatikko

Color cbblack

Box reunaX,reunaY,x+6,y+6,OFF 'Reunat laatikolle

Text reunaX+3,reunaY+3,txt$ 'Teksti toimimaan oikealle kohdalle

Return paalla 'Palauttaa arvon
End Function 'Lopetetaan funktio
Palloja taulukoilla:

Code: Select all

//Esimerkki taulukoiden käytöstä.


'.............
'Latausteksti
'.............

fontti=LoadFont("Times new roman", 42)
minifontti=LoadFont("times new roman", 18)

SetFont fontti
Color cbblue
Text 100,100,"LADATAAN"

SetFont minifontti
Color cbwhite
Text 130,150,"Taulukkoesimerkki 0.2"

DrawScreen

'---------------------------------------
'OHJELMA
'---------------------------------------

Dim pisteet(50)    'Luodaan 50 pistettä
Dim korkeudet(50)  'Luodaan 50:lle pisteelle omat korkeutensa


For i = 2 To 50 'FOR -looppi pisteitä ja korkeuksia kohden
   korkeudet(i)=Rand(-150,150) 'Arvotaan jokaiselle pisteelle oma korkeus
   pisteet(1)=LoadObject("media\bullet.bmp",72) 'Ladataan yksi piste
   ShowObject pisteet(1), OFF 'Piilotetaan ensimmäinen piste
   pisteet(i)=CloneObject(pisteet(1)) 'Tehdään pisteestä (1) klooneja
   PositionObject pisteet(i), Rand(-600,-200),korkeudet(i) 'Asetetaan pisteet tiettyyn paikkaan
Next i

Repeat

For i = 2 To 50 'FOR -looppi pisteitä ja korkuksia kohden repeat -loopin ulkopuolella
   If ObjectX(pisteet(i))>200 Then
        PositionObject pisteet(i),-200,korkeudet(i) 'Aseteaan pisteet eri korkeudelle, jos ne menee ruudun oikeaan laitaan
        korkeudet(i)=Rand(-150,150) 'Arvotaan uudet korkeudet
   EndIf    
   MoveObject pisteet(i), 3 'Liikutetaan pisteitä
Next i


DrawScreen
Forever
EDIT: Nyt pitäisi molempien koodien toimia. Valitan ääkkösten puuttumista, mutta ohjelmassa käytetty fontti muuttaa ne kiinaksi.
Last edited by Alkku on Thu Aug 30, 2007 9:34 pm, edited 1 time in total.

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Esimerkkejä aloittelijoille.

Post by tuhoojabotti » Thu Aug 30, 2007 8:32 pm

tuossa painike koodissa olevat x ja y muuttujat mihin niitä tarvitsee jos ne ovat kuitenkin textheight ja textwidht?
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Esimerkkejä aloittelijoille.

Post by TheDuck » Thu Aug 30, 2007 9:14 pm

Yksinkertainen kimpoileva tulipallo CB:n peruskartassa...

Code: Select all

FrameLimit 40 

kartta = LoadMap("Media\cdm2.til","Media\tileset.bmp")
PlayObject kartta,0,0,1

tulipallo = LoadObject ("Media\fireball.bmp",72)

SetupCollision tulipallo, kartta, 1, 4, 2
TurnObject tulipallo,Rand(0,360)

palloplusx#=Cos(ObjectAngle(tulipallo))*6
palloplusy#=Sin(ObjectAngle(tulipallo))*6


Repeat

TranslateObject tulipallo,palloplusx#,palloplusy#
TurnObject tulipallo,40

        If CountCollisions(tulipallo) Then
            angle=CollisionAngle(tulipallo,1)
            If angle=0 Or angle=180 Then
                palloplusx#= -palloplusx#
            EndIf
            If angle=90 Or angle=270 Then
                palloplusy#= -palloplusy#
            EndIf
            TranslateObject tulipallo,palloplusx#,palloplusy#
        EndIf

    UpdateGame

    CloneCameraPosition tulipallo

    DrawScreen

Forever
EDIT:

Oho... Kommentit uupuu ;S

^^

Alkku
Newcomer
Posts: 7
Joined: Thu Aug 30, 2007 6:02 pm

Re: Esimerkkejä aloittelijoille.

Post by Alkku » Thu Aug 30, 2007 9:36 pm

tuhoojabotti wrote:tuossa painike koodissa olevat x ja y muuttujat mihin niitä tarvitsee jos ne ovat kuitenkin textheight ja textwidht?
Ohoh... Tuollainen oli tosiaan päässyt sinne lipsahtamaan. En muistanut tarkistaa niitä. Valitettavasti kommentointi on tiessään, koska jouduin korjaamaan koodia aika paljon.

User avatar
temu92
Web Developer
Web Developer
Posts: 1226
Joined: Mon Aug 27, 2007 9:56 pm
Location: Gamindustri
Contact:

Re: Esimerkkejä aloittelijoille.

Post by temu92 » Thu Aug 30, 2007 10:16 pm

Omassa käytössäni paljon ollut kuvanumero koodi on varmasti kätsy
http://cbkk.systec.fi/koodi.php?id=81

Ei jaksanu pastea sitä tänne tilaa viemään, jotenka seuraa linkkiä

Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Esimerkkejä aloittelijoille.

Post by Henkru » Fri Aug 31, 2007 8:45 am

Eli yksin kertainen type-esimerkki. En sitten tiedä soveltuuko aloitelioille, mut kuitenkin.
Kun klikkaa hiirenvas. palloa niin se katoaa ja sitten kun painaa hiirenoik. niin kaikki tulee takasin

Code: Select all

Type ympyrät //Määritellään uusi Type
Field x //asetetaan typeen uusi muutuja x
Field y //asetetaan typeen uusi muutuja y
Field piilotettu //asetetaan typeen uusi muutuja piilotettu
EndType //Lopetetaan typen määrittely

For i=1 To 5 //silmukka alkaa
pallo.ympyrät = New(ympyrät) //ulodaan jäsen kokoelmaan
pallo\x = Rand(0,250) // arvotaan x:n rvo
pallo\y = Rand(0,250) // arvotaan y:n arvo
pallo\piilotettu = 0 // piilotettu muutuja 0
Next i

Repeat //pääsilmukka

For pallo.ympyrät = Each ympyrät //käydään läpi kaikki tyypin jäsenet
If pallo\piilotettu = 0 Then Circle pallo\x, pallo\y, 15 //jos pallon piilotettu muutuja on 0 niin piiretäänse

If hiirion(pallo\x, pallo\y, 15,15, 1) And pallo\piilotettu = 0 Then pallo\piilotettu = 1 //jos hiiren oikeaa painetaan niin muuttuu pallon piilotettu muutuja 1
Next pallo.ympyrät

If MouseHit(2) Then //jos hiiren vasentanappia painetaan niiin kaikien allojen piilotettu muutuja muuttuu nollaksi
For pallo.ympyrät = Each ympyrät //käydään läpi kaikki tyypin jäsenet
pallo\piilotettu = 0 //asetetaan jäsenen piilotettu muutuja 0:si
Next pallo.ympyrät
EndIf

DrawScreen //päivitetään näyttö-
Forever

Function hiirion(Xp,Yp,Lx,Ly, nappi)
Return (MouseX()>XP And MouseY()>YP And MouseX()<(XP+LX) And MouseY()<(YP+LY) And MouseHit(nappi) )
End Function

Kauhu

Re: Esimerkkejä aloittelijoille.

Post by Kauhu » Sun Sep 02, 2007 9:06 pm

Näin viime vuonna kun joku neuvo jotain jossai ongelma osiossa niin tässä mun esimerkissä on niitä käytetty. Eli täs ois alottijoille lähinnä miten ase vaihtuu ja äänet pärisee taustalla. Suurin osa kuvista on coolbasicin mukana tulleita. ja niin kun sanottu jo että koodi on aika purkka ,
kun en jaksanu alkaa korjailemaa sitä . Enkä tajunnu miten saa sellasen hienon osote nappulan tohon niin tuo osote pitää kopioida sit ehkä sinne osote paikkaa tai sinne ihmeen juttuu :mrgreen:

tossa se linkki

http://up.servut.us/3329.sota_peli

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Esimerkkejä aloittelijoille.

Post by koodaaja » Sun Sep 02, 2007 9:27 pm

Simppeli valikko (kommentoitu versio) :

Code: Select all

valinta = 0 'valittuna on kohta "uusi peli"
Repeat
    Text 10, 10, "Uusi peli" 'tulostetaan tekstit, sekä nuoli, jonka paikka määräytyy valinnan mukaan
    Text 10, 30, "Lopeta  "
    Text 85, 10+valinta*20, "<--"
    If KeyHit(cbkeyup) Or KeyHit(cbkeydown) Then valinta = NOT valinta 'mikäli painetaan ylös tai alas, valinta-muuttujan arvoa vaihdetaan ( 0<->1 )
    If KeyHit(28) And valinta = 0 Then peli() 'jos "uusi peli" on valittuna ja painetaan enteriä, mennään peliin
    DrawScreen
Until (KeyHit(28) And valinta = 1)'jos "lopeta" on valittuna ja painetaan enteriä, ohjelma poistuu pääloopista ja sulkeutuu

Function peli() 'itse peli tulee tänne
    ClearKeys 'tämä, jotta vanhaa enterin painallusta, jolla tänne siirryttiin, ei enää tunnisteta, jolloin looppi loppuisi alkuunsa
    Repeat
        Text 10, 10, "peli" 'peli tähän, lataukset toki ennen repeattia
        DrawScreen
    Until KeyHit(28)
    ClearKeys 'jälleen, jottei viimeisin enterin painallus vaikuta enää valikkoloopissa
    Return 0'palataan valikkoon, ei välttämätön
End Function

HOhottaja

Re: Esimerkkejä aloittelijoille.

Post by HOhottaja » Thu Sep 20, 2007 2:01 pm

muokattu tekstipeli esimerkki

Code: Select all


'A TEXT ADVENTURE 
'======================================== 

alku:
ClearText'poistaa tekstin ruudusta
ClearKeys
CloseInput

AddText "mitä haluat tehdä??"
AddText ""
AddText "1. mene ulos"
AddText "2. mene kalalle"
AddText "3. syö omena"
AddText ""

Repeat

    c=Input("?")
    
    DrawScreen'piirtää ruutuun
    
Until KeyHit(cbkeyreturn)

Select c
    Case 1
        GoTo ulos
    Case 2
        GoTo kalastus
    Case 3
        GoTo syö
    Default
        AddText "mitä?"
        DrawScreen
        Wait 2000
        GoTo alku
End Select
        
'---------------------------------------

ulos:
ClearText'poistaa tekstin ruudusta
ClearKeys
CloseInput

AddText "OK, olet nyt ulkona mitä teet?"
AddText ""
AddText "1. mene takaisin sisälle"
AddText "2. mene kalalle"
AddText ""

Repeat'silmukka

    c=Input("?")
    
    DrawScreen
    
Until KeyHit(cbkeyreturn)

Select c
    Case 1
        GoTo alku
    Case 2
        GoTo kalastus
    Default
        AddText "mitä?"
        DrawScreen
        Wait 2000
        GoTo ulos
End Select

'---------------------------------------

kalastus:
ClearText
ClearKeys
CloseInput

AddText "peli läpi sait hauen."
AddText "löytyy perusteista englannin kielellä!"

DrawScreen
Wait 10000
End

'---------------------------------------

syö:
ClearText
ClearKeys
CloseInput

AddText "rousk rousk mousk."

DrawScreen
Wait 3000

Goto alku
Last edited by Astigma on Thu Sep 20, 2007 10:09 pm, edited 1 time in total.
Reason: Oli !osattu käyttää code-tagia...

User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: Esimerkkejä aloittelijoille.

Post by CCE » Thu Sep 20, 2007 7:21 pm

Yksinkertainen vinkki, kuinka saada musiikki looppaamaan?

Code: Select all

music = 0 // ilman tätä ohjelma heittää MAVia
Repeat

       If SoundPlaying(music) = False Then
            music=PlaySound("Media\SK_Battle2.mp3")
       EndIf

	Text 10,10,"Musiikki looppaa!"
    DrawScreen

Until EscapeKey()

User avatar
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: Esimerkkejä aloittelijoille.

Post by jabanii » Fri Sep 21, 2007 11:15 pm

Esimerkki, miten vaihdetaan näyttötilaa ilman, että mediat menetetään. Sisältää myös opastusta lataustekstin ja funktioiden tekoon. Koodi on myös rakennettu hieman C++ tyyliin.

Code: Select all

//Määritellään muuttujat
Global Pelaaja, Pelaaja_X, Pelaaja_Y, Pelaajan_nimi As String, Ruoho, Maasto

init(800,600) 'Alustetaan peli näyttötilalle 800x600
Main() 'Siirrytään pääohjelma

Function init(sWidth, sHeight, sColor=0, sMode=1)

    SCREEN sWidth, sHeight, sColor, sMode 'Asetetaan näyttötila
    
    LoadingText() 'Lataus palkki
    
    //Lataaminen
    Pelaaja = LoadObject("Media\guy.bmp",180) 'Ladataan ukko
    LoadingText(30)
    Ruoho = LoadImage("Media\grass.bmp")
    LoadingText(60)
    Maasto = MakeObjectFloor()
    LoadingText(100)
    PaintObject Maasto, Ruoho
    
    //Sijoitetaan objektit
    PositionObject Pelaaja, Pelaaja_X, Pelaaja_Y
    
    //Muuttujien alkuarvot
    Pelaajan_nimi = "Ukko 1"
    
    //Lisää tekstit
    AddText "Vaihda näyttötilaa ENTER -näppäimellä."
    
    ClearKeys 'Alustaa näppäimistö puskurin
    
End Function

Function Main()
    
    Tila = 0
    
    Repeat
    
    //Objektin liikkuvuus
    If RightKey() Then TurnObject Pelaaja, -3
    If LeftKey() Then TurnObject Pelaaja, 3
    
    If UpKey() Then MoveObject Pelaaja, 4
    If DownKey() Then MoveObject Pelaaja, -4
    
    If KeyHit(28) Then
        Save()
        Init(800,600,0, Tila)
        If Tila = 0 Then Tila = 1 Else Tila = 0
    EndIf
    
    //Aloitetaan piiträminen
    DrawGame
    
        Text 0,25, "Pelaaja: "+Pelaajan_nimi
        
    DrawScreen
    Until EscapeKey()

End Function

Function Save()

    //Napataan sijoitukset
    Pelaaja_X = ObjectX(Pelaaja)
    Pelaaja_Y = ObjectY(Pelaaja)

End Function

Function LoadingText(ltPercent=0)

    DrawGame
    Cls
    Text ScreenWidth()/2-TextWidth("Ladataan asetuksia: "+ltPercent+"%")/2, ScreenHeight()/2-TextHeight("Ladataan asetuksia: "+ltPercent+"%")/2, "Ladataan asetuksia: "+ltPercent+"%"
    DrawScreen
    
End Function 

coolariko

Re: Esimerkkejä aloittelijoille.

Post by coolariko » Sat Sep 22, 2007 7:00 pm

tein koodin jossa energia vähenee kun painaa s nappia

Code: Select all

elämä=100 'lisätään elämät
FrameLimit 40 'rajoittaa pelin nopeutta
Repeat 'silmukka
Text 0,0,"elämät :"+elämä 'lisää elämät kuvaan
If KeyDown(cbkeys) Then elämä -1 'kun painaa s niin elämä vähenee
If elämät=elämä +2 Then MakeError "elämä loppu"'kun elämä loppuu niin tekee errorin
DrawScreen'päivittää näytön
Forever'loputtomaan! 





User avatar
Bagard
Newcomer
Posts: 46
Joined: Sun Aug 26, 2007 4:56 pm
Location: Finland

Re: Esimerkkejä aloittelijoille.

Post by Bagard » Mon Sep 24, 2007 12:06 pm

jabanii wrote:Esimerkki, miten vaihdetaan näyttötilaa ilman, että mediat menetetään. Sisältää myös opastusta lataustekstin ja funktioiden tekoon. Koodi on myös rakennettu hieman C++ tyyliin.
Kaikkien määritteleminen globaaliksi on kyllä aika huono keino. Itse olen käyttänyt tässä aliohjelmaa, joka on sijoitettu ohjelman alkuun. Ohjelman käynnistyessä tuo aliohjelma suoritetaan automaattisesti, ja resoluution vaihdossa kutsutaan tuota aliohjelmaa uudestaan. Eli:

Code: Select all

SCREEN 800, 600

LoadMedia:
    // ladataan kaikki kuvat & fontit yms...
Return

Repeat
    // päälooppi
Forever

User avatar
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: Esimerkkejä aloittelijoille.

Post by jabanii » Wed Sep 26, 2007 6:02 am

Bagard wrote:
jabanii wrote:Esimerkki, miten vaihdetaan näyttötilaa ilman, että mediat menetetään. Sisältää myös opastusta lataustekstin ja funktioiden tekoon. Koodi on myös rakennettu hieman C++ tyyliin.
Kaikkien määritteleminen globaaliksi on kyllä aika huono keino. Itse olen käyttänyt tässä aliohjelmaa, joka on sijoitettu ohjelman alkuun. Ohjelman käynnistyessä tuo aliohjelma suoritetaan automaattisesti, ja resoluution vaihdossa kutsutaan tuota aliohjelmaa uudestaan. Eli:

Code: Select all

SCREEN 800, 600

LoadMedia:
    // ladataan kaikki kuvat & fontit yms...
Return

Repeat
    // päälooppi
Forever
Joo. Luokkien puutteen takia ajattelin, että selkeiten sen saa globaaleilla, kun mielestäni GoSub ja GoTo tekevät aika sekavaa koodia (Toisin GoSub on vähäsen selkeämpi kuin GoTo). Assemblyssähän ei ole funktioita, joten siinä joudutaan kikkailemaan pinojen ja subejen kanssa.

User avatar
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: Esimerkkejä aloittelijoille.

Post by koodaaja » Fri Nov 02, 2007 3:43 pm

Tämä kun näyttää olevan aivan kuollut ja kuopattu, niin otan lapion käteen ja postaan uuden esimerkin, joka on tosin koneella ollut jo kauan:

Code: Select all

Repeat

    i#  = i + 1.1'muita hyviä AINAKIN 2.2 ja 2.5, lisää saa testata - hienommat jopa kertoa =F
    j# = j - 1.00'tätäkin voisi periaatteessa muokata
    
    x# = Cos(WrapAngle(i))*15 + Cos(WrapAngle(j))*10'haetaan ulompi rengas + sisempi rengas
    y# = -Sin(WrapAngle(i))*15 - Sin(WrapAngle(j))*10' -koordinaatit
    
    Dot x+ScreenWidth()/2 - 15/2,y+ScreenHeight()/2 - 15/2'piirretään
    
    DrawScreen OFF'ilman offia?
    
Until KeyHit(28)
Se siis piirtää sellaisen hienon kuvion, jonka nimeä en tiedä. Yksinkertainen ja lyhyt, mutta opettaa kivasti sini/kosini -kikkailua.

User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 6:48 pm

Re: Esimerkkejä aloittelijoille.

Post by Substance » Sat Mar 15, 2008 9:20 pm

Teinpä tällaisen waypoint jutun , aika yksinkertainen

Code: Select all

SCREEN 800,500

DrawToWorld ON

ukko=LoadObject ("media\soldier.bmp",72)

a1 = MakeObject()
a2 = MakeObject()
a3 = MakeObject()
a4 = MakeObject()
a5 = MakeObject()
a6 = MakeObject()

x1=0
y1=0
x2=Rand(-100,100)
y2=Rand(-100,100)
x3=Rand(-200,200)
y3=Rand(-200,200)
x4=Rand(-300,300)
y4=Rand(-300,300)
x5=Rand(-300,300)
y6=Rand(-400,400)

PositionObject a1,x1,y1
PositionObject a2,x2,y2
PositionObject a3,x3,y3
PositionObject a4,x4,y4
PositionObject a5,x5,y5
PositionObject a6,x6,y6

lol=a1

Repeat

Color cbred
DrawGame
Line x1,y1,x2,y2
Line x2,y2,x3,y3
Line x3,y3,x4,y4
Line x4,y4,x5,y5
Line x5,y5,x6,y6
Line x6,y6,x1,y1

PointObject ukko,lol
MoveObject ukko,2

If lol=a1
If ObjectsOverlap (ukko,a1) Then
 lol=a2
EndIf
EndIf
If lol=a2
If ObjectsOverlap (ukko,a2) Then
 lol=a3
EndIf
EndIf
If lol=a3
If ObjectsOverlap (ukko,a3) Then
 lol=a4
EndIf
EndIf
If lol=a4
If ObjectsOverlap (ukko,a4) Then
 lol=a5
EndIf
EndIf
If lol=a5
If ObjectsOverlap (ukko,a5) Then
 lol=a6
EndIf
EndIf
If lol=a6
If ObjectsOverlap (ukko,a6) Then
 lol=a1
EndIf
EndIf

CloneCameraPosition ukko

DrawScreen
Forever
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Esimerkkejä aloittelijoille.

Post by MaGetzUb » Sat Mar 15, 2008 10:19 pm

Oletko kuullut taulukosta? Jos et, suosittelen että kirjoitat cb:n manuaalin hakuun Dim ja sieltä löyrät tarkemmat ohjeet.
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm
Contact:

Re: Esimerkkejä aloittelijoille.

Post by Koodiapina » Sat Mar 15, 2008 10:31 pm

Tyyppikokoelmatkin on ihan jees.
Olen liian älykäs ollakseni väärässä. Jos olet kanssani eri mieltä, suosittelen sinua pohtimaan omaa elämänkatsomustasi ja sen perusteita.

User avatar
JATothrim
Tech Developer
Tech Developer
Posts: 606
Joined: Tue Aug 28, 2007 6:46 pm
Location: Kuopio

Re: Esimerkkejä aloittelijoille.

Post by JATothrim » Sat Mar 15, 2008 10:44 pm

LitleGreen, Olisiko kannattanut käyttää kenties taulukoita :shock: ? Kuuden muuttujan hallitseminen tuolla tavalla on HUONO esimerkki, vaikka ohjelma tekeekin mitä lupasit. Lisäksi koko esimerkkiä ei ole kommentoitu, viivalle olisit saanut koordinaatit objektista. :( aloittelijan kannalta.
muokattu:

Code: Select all

SCREEN 800,600

DrawToWorld ON

ukko=LoadObject ("media\soldier.bmp",72)

Const WayPointteja=6
//Taulukko WayPointeille
Dim WayPoint(WayPointteja)
//Luodaan WayPointit. (Näkymättömiä objekteja)
For i=1 To WayPointteja
	WayPoint(i) = MakeObject()
	PositionObject WayPoint(i),Rand(-500,500),Rand(-500,500)
Next i

MennäänKotiWayPointtia=1

Repeat

	Color cbred
	DrawGame
	
	//piirretään waypointtien välille viivat
	For i=2 To WayPointteja
		Line ObjectX(WayPoint(i-1)),ObjectY(WayPoint(i-1)),ObjectX(WayPoint(i)),ObjectY(WayPoint(i))
	Next i
	
	//liikutetaan ukkoa kohti waypointtia
	PointObject ukko,WayPoint(MennäänKotiWayPointtia)
	MoveObject ukko,2
	//jos ukko saavutti waypointin, siirrytään seuraavaan waypointtiin
	If ObjectsOverlap(ukko,WayPoint(MennäänKotiWayPointtia))
		MennäänKotiWayPointtia=MennäänKotiWayPointtia+1
		//jos kaikki waypointit käytiin jo läpi aloitetaan alusta
		If MennäänKotiWayPointtia>WayPointteja Then MennäänKotiWayPointtia=1
	EndIf
	
	CloneCameraPosition ukko
	
	DrawScreen
Forever
-On selkeästi impulsiivinen koodaaja joka...
ohjelmoi C++:lla rekursiivisesti instantioidun templaten, jonka jokainen instantiaatio instantioi sekundäärisen singleton-template-luokan, jonka jokainen instanssi käynistää säikeen tulostakseen 'jea'.

User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 6:48 pm

Re: Esimerkkejä aloittelijoille.

Post by Substance » Sun Mar 16, 2008 9:12 am

Joo... Olenpahan vasta aloittelija :? niin en tommosiin taulukoihin ole tutustunut, joten taidampa tutustua
EDIT:

Hehe, en enää.

Last edited by Substance on Mon Feb 02, 2009 6:27 pm, edited 1 time in total.
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus

Post Reply