Esimerkkejä aloittelijoille.

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
User avatar
Substance
Active Member
Posts: 234
Joined: Fri Mar 14, 2008 5:48 pm

Re: Esimerkkejä aloittelijoille.

Post by Substance »

Onkohan tää jokin cb bugi koska valikko funktioilla esimerkki mavittaa mulla :o

pieni muuntelu korjasi:

Code: Select all

    ClsColor cbwhite 'Taustavari valkoiseksi

    Repeat

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

    DrawScreen
    Forever

loppu:
End

    '------------
    '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
Substance aka LittleGreen
Red Encounter - shoot'em uppia - lataus
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Esimerkkejä aloittelijoille.

Post by Koodiapina »

Vihje: Koodin sisentäminen helpottaa virheiden löytämistä.
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Esimerkkejä aloittelijoille.

Post by Ilkka »

Minultakin yksi esimerkki.
Auton vaihteiden vaihtaminen.
-Mukana ei kiihtyvyyttä. :lol:

koodi:

Code: Select all

'/////AUTON VAIHTEET\\\\' 

FrameLimit 40 'rajoittaa pelin nopeutta.

ukko = LoadObject("media/car.bmp",72) 'lataa auton näytölle.

Vaihde=0 'muuttuja vaihde, tätä tarvitaan vaihteisiin.

Repeat 'PÄÄSILMUKKA
    
    If LeftKey() Then TurnObject ukko,4 'kääntää auton vasemmalle.
    If RightKey() Then TurnObject ukko,-4 'kääntää auton oikealle.
       
    If KeyHit(48) Then 'Jos Painat näppäintä B, 
      vaihde=vaihde+1 'silloin vaihde muuttuu yhden suuremmaksi.
    EndIf 
    
    If KeyHit(47) Then 'Jos Painat näppäintä V, 
      vaihde=vaihde-1 'silloin vaihde muuttuu yhden pinemmäksi.
    EndIf
  
    If UpKey() And vaihde=1 Then MoveObject ukko,2 'Jos painat ylös-nuoli näppäintä ja vaihde on 1,
    'silloin liikuta autoa eteenpäin vauhdilla 2.
    If UpKey() And vaihde=2 Then MoveObject ukko,4 'Jos painat ylös-nuoli näppäintä ja vaihde on 2,
    'silloin liikuta autoa eteenpäin vauhdilla 4.
    If UpKey() And vaihde=3 Then MoveObject ukko,6 'Jos painat ylös-nuoli näppäintä ja vaihde on 3,
    'silloin liikuta autoa eteenpäin vauhdilla 6.
    If UpKey() And vaihde=4 Then MoveObject ukko,8 'Jos painat ylös-nuoli näppäintä ja vaihde on 4,
    'silloin liikuta autoa eteenpäin vauhdilla 8.
    If UpKey() And vaihde=5 Then MoveObject ukko,10 'Jos painat ylös-nuoli näppäintä ja vaihde on 5,
    'silloin liikuta autoa eteenpäin vauhdilla 10.
    If DownKey() And vaihde=1 Then MoveObject ukko,-2 'Jos painat ylös-nuoli näppäintä ja vaihde on 1,
    'silloin liikuta autoa taaksepäin vauhdilla 2.
      
     
 Text 10,20,"Vaihde:"+vaihde 'Kirjoittaa näytölle mikä vaihde on päällä.
  
DrawScreen 'Piirtää kaiken tämän näytölle

Forever 'Lopettaa Silmukan
    
Vaihteilla 1-5 auto liikkuu ;)
toivottavasti saatte selvää selityksestä :D
-värikäs
Image
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Esimerkkejä aloittelijoille.

Post by Koodiapina »

Värikäs, eikös tuo vaihdejärjestelmä olisi järkevämpi toteuttaa näin?

Code: Select all

if upkey() then moveobject ukko,vaihde*2
EDIT: Paitsi, että koodissasihan voisi olla miten suuri vaihde tahansa. Sen saat muutettua:

Code: Select all

vaihde = vaihde - (vaihde > maksimi)
vaihde = vaihde + (vaihde < 0)
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Esimerkkejä aloittelijoille.

Post by Ilkka »

Grandi wrote:Värikäs, eikös tuo vaihdejärjestelmä olisi järkevämpi toteuttaa näin?

Code: Select all

if upkey() then moveobject ukko,vaihde*2
EDIT: Paitsi, että koodissasihan voisi olla miten suuri vaihde tahansa. Sen saat muutettua:

Code: Select all

vaihde = vaihde - (vaihde > maksimi)
vaihde = vaihde + (vaihde < 0)
Joo. kiitos ku neuvoit ton muutto jutun kato oon itekki alottelija. tää saattaa
teille kokeneille koodareille tuntua helpolta, mut mulle tää oli oikeesti kohtuullisen vaikea. :D
Image
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Esimerkkejä aloittelijoille.

Post by Koodiapina »

Tuon saa näemmä toteutettua yhdelläkin rivillä, mutta silloin se ei enää ole kovin hyvä esimerkki aloittelijoille:

Code: Select all

vaihde = vaihde + ((vaihde < 1) - (vaihde > maksimi))
Laitan tähän esimerkin hiirellä toimivasta valikosta, joita on pyydetty aika useasti.

Code: Select all

    SCREEN 800,600
   
    ' itse esimerkki
    While True
        ' painikkeista voi tällä tavalla tehdä ehtolauseita, koska ne palauttavat
        ' toden (true, 1) kun niitä on painettu. Tällöin ehtolausekkin muuttuu
        ' todeksi, ja silloin toteutetaan haluttu asia.
        If button(10,10,100,20,"Peliin") Then MakeError "Tässä on "+Chr(34)+"peli"+chr(34)+" :)"
        If button(10,40,100,20,"Häivy") then end
        DrawScreen
    Wend
   
    Function Button(x As integer,y As integer,w As integer,h As integer,t As String,s As integer = 5)
        ' painikkeen koodi
        If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
            If MouseDown(1) Then Color 200,200,200 Else Color 190,190,190
            If MouseUp(1) Then Return True
        Else
            Color 220,220,220
        EndIf
        Box x+s,y,w-(s*2),h    ' painikkeen pohja
        Box x,y+s,w,h-(s*2)
        Circle x,y,s*2
        Circle x+w-s*2,y,s*2
        Circle x+w-s*2,y+h-s*2,s*2
        Circle x,y+h-s*2,s*2
        ' painikkeen otsikko
        Color cbblack
        CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
    EndFunction 
Last edited by Koodiapina on Sun Apr 27, 2008 12:12 pm, edited 1 time in total.
User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: Esimerkkejä aloittelijoille.

Post by elmo123 »

Koodasin samanlaisen palloefektin kuin makesmi koodasi Xdim:iin. Alottelijat voivat kehittyessään lukea koodia ja tajuta sen toimintaperiaatetta. :D

Code: Select all

SCREEN 800, 600, 0, 0
img1 = MakeImage(800, 600)
img2 = MakeImage(800, 600)

MaskImage img1, cbWhite
MaskImage img2, cbWhite

ang3# = 180
ClsColor cbWhite
Repeat

    

    ang1# = WrapAngle(ang1# + 3)
    ang2# = WrapAngle(ang2# + 0.45)
    ang3# = WrapAngle(ang3# - 3)
    ang4# = WrapAngle(ang4# + 0.5)

    DrawToImage img1

        Cls

        Color cbDarkBlue

        Circle 350 + Cos(ang1#) * (Cos(ang2#) * 50) - 32, 300 - Sin(ang1#) * (Sin(ang2#) * 50) - 32, 64

        Color cbWhite

        Circle 450 + Cos(ang3#) * (Cos(ang4#) * 50) - 32, 300 - Sin(ang3#) * (Sin(ang4#) * 50) - 32, 64


    DrawToImage img2

        Cls


        Color cbDarkRed

        Circle 450 + Cos(ang3#) * (Cos(ang4#) * 50) - 32, 300 - Sin(ang3#) * (Sin(ang4#) * 50) - 32, 64

        Color cbWhite

        Circle 350 + Cos(ang1#) * (Cos(ang2#) * 50) - 32, 300 - Sin(ang1#) * (Sin(ang2#) * 50) - 32, 64


    DrawToScreen

    DrawImage img1, 0, 0
    DrawImage img2, 0, 0

    DrawScreen

Forever
Kiinnostuin pelien tekemisestä ennen 1. luokkaa.
Sitten 3. luokalla tuli CB. Ja siitä se alkoi.

Blender! TF2! CB! Game Maker! Nokia-mollaus! Kitaransoitto! Breakdance! MadTracker! Minecraft!
Olw1 -Guest

Re: Esimerkkejä aloittelijoille.

Post by Olw1 -Guest »

Värikäs wrote:Minultakin yksi esimerkki.
Auton vaihteiden vaihtaminen.
-Mukana ei kiihtyvyyttä. :lol:
Kunhan pääsen kotiin niin pistän hieman kehittyneemmän systeemin,joka on kyllä aika purkkaa mutta siinä on kiihtyvyys,kunnon kääntyvyys(eli kääntyvyys ei ole heti maksimi,kun painat sivulle),jarrut(eivätkä nekään pysäytä autoa heti) ja jos ottaa liikaa kierroksia pienillä vaihteilla,niin vauhti hidastuu.

Pitää vain kommentoida sitä hieman,että siitä saa jtn selvää.

-Olw1
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Esimerkkejä aloittelijoille.

Post by Olwi »

Autoesimerkki tulee kohta jos jaksan siistiä sen,mutta nyt ensin saatte valikkoesimerkin pienellä värikikkailulla.
Kommentoimatonta koodia,olkaa hyvät:

Code: Select all

SCREEN 800,600,cbfullscreen
r=128
g=0
b=256
rc=0
gc=0
bc=0

Repeat
Color r,g,b 
Box 0,0,1000,1000,1



If MouseX()>350 And MouseX()<470 And MouseY()>150 And MouseY()<180 Then 
Box 345,145,130,40
EndIf
Color r,b,g
If MouseX()>350 And MouseX()<470 And MouseY()>200 And MouseY()<230 Then 
Box 345,195,130,40
EndIf
Color b,r,g
If MouseX()>350 And MouseX()<470 And MouseY()>250 And MouseY()<280 Then 
Box 345,245,130,40
EndIf
Color b,r,g
Box 350,150,120,30
Color g,b,r
Box 350,200,120,30
Color r,b,g
Box 350,250,120,30
Color r,g,b
Text 355,160,"Aloita peli"
Text 355,210,"Tekijät"
Text 355,260,"Lopeta peli"

If r=0 Then rc=1
If rc=1 Then r=r+2
If r=256 Then rc=0
If rc=0 Then r=r-2

If g=0 Then gc=1
If gc=1 Then g=g+2
If g=256 Then gc=0
If gc=0 Then g=g-2

If b=0 Then bc=1
If bc=1 Then b=b+2
If b=256 Then bc=0
If bc=0 Then b=b-2
Color cbwhite
If MouseX()>350 And MouseX()<470 And MouseY()>150 And MouseY()<180 And MouseHit(1) Then 
MakeError peli
EndIf


If MouseX()>350 And MouseX()<470 And MouseY()>200 And MouseY()<230 And MouseHit(1) Then 
MakeError peli
EndIf
If MouseX()>350 And MouseX()<470 And MouseY()>250 And MouseY()<280 And MouseHit(1) Then 
MakeError peli



EndIf


DrawGame
Color cbblack
Text 0,150,"MouseX"+MouseX()
Text 0,160,"MouseY"+MouseY()
Text 0,120,"Red:"+r
Text 0,90,"FPS"+FPS()
Text 0,130,"Green:"+g

Text 0,140,"Blue:"+b
DrawScreen
Forever
Huuda mun ip:tä!
Marcoder
Active Member
Posts: 120
Joined: Tue Aug 28, 2007 8:21 am

Re: Esimerkkejä aloittelijoille.

Post by Marcoder »

Grandi wrote:Tuon saa näemmä toteutettua yhdelläkin rivillä, mutta silloin se ei enää ole kovin hyvä esimerkki aloittelijoille:

Code: Select all

vaihde = vaihde + ((vaihde < 1) - (vaihde > maksimi))
Ja sama ilman purkkakoodia:

Code: Select all

vaihde = Min(Max(1, vaihde), maksimi)
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: Esimerkkejä aloittelijoille.

Post by nevssons »

select esimerkki: (käytetty mahollisimman paljon selectiä)

Code: Select all

alku:
ikä=Rand (1,14)
Text 10,10,"Sinulla on koira joka on "+ikä+" vuotta vanha."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey

kr=6

vaihe1: 

If van=10 Then
ikä=ikä+1
van=0
Goto synttäri
EndIf

If ikä=15 Then Goto vkuolema

van=van+1

ei5:

ran=Rand(1,7)
Select ran
Case 1
Goto sairaus
Case 2
Goto hätä
Case 3
Goto pissi
Case 4
Goto kakki
Case 5
If ikä=14 Then Goto vkuolema Else Goto ei5
Case 6
Goto nälkä
Case 7
Goto vesi
End Select


synttäri:
Text 10,10,"Koirallasi on synttärit."
Text 10,20,"Koirasi on nyt "+ikä
Text 152,20,"vuotta vanha."
Text 10,40,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

ruoka:
Text 10,10,"Koiranruoka on loppu."
Text 10,30,"1. Osta lisää"
Text 10,40,"2. Älä osta"
DrawScreen
WaitKey
key=GetKey() 
Select key
Case 49
Goto orjask
Case 50
Goto kuolema
Default 
Goto ruoka
End Select 

orjask:
Text 10,10,"Ostit ruokaa ja annoit sitä koirallesi."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

vesi:
Text 10,10,"Koirallasi on jano eikä kipossa ole vettä."
Text 10,30,"1. Anna koiralle vettä"
Text 10,40,"2. Älä tee mitään"
DrawScreen
WaitKey
key=GetKey() 
Select key
Case 49
Goto vesi2
Case 50
Goto kuolema
Default 
Goto nälkä
End Select 

vesi2:
Text 10,10,"Annoit koiralle vettä."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

nälkä:
Text 10,10,"Koirallasi on nälkä"
Text 10,30,"1. Anna koiralle ruokaa"
Text 10,40,"2. Älä tee mitään"
DrawScreen
WaitKey
key=GetKey() 
Select key
Case 49
kr=kr-1
If kr=0 Then Goto ruoka Else Goto nalka2
Case 50
Goto kuolema
Default 
Goto nälkä
End Select 

nalka2:

Text 10,10,"Annoit koiralle ruokaa."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

hätä:
Text 10,10,"Koirasi tahtoo ulos."
Text 10,30,"1. Vie koira ulos"
Text 10,40,"2. Älä tee mitään"
DrawScreen
WaitKey
key=GetKey() 
Select key
Case 49
Goto lenkiltä
Case 50
Goto päästö
Default 
Goto hätä
End Select 

lenkiltä:
Text 10,10,"Tulit juuri lenkiltä."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

päästö:
ran=Rand(1,3)
Select ran
Case 1
Goto kakki
Case 2
Goto pissi
Case 3
Goto vaihe1
End Select

kakki:
Text 10,10,"Koirasi kakki lattialle."
Text 10,30,"1. Siivoa jäljet"
DrawScreen 
WaitKey 
key=GetKey() 
Select key
Case 49
Goto jätös
Default 
Goto kakki
End Select 

jätös:
Text 10,10,"Siivosit jätökset."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

pissi:
Text 10,10,"Koirasi pissi lattialle."
Text 10,30,"1. Siivoa jäljet"
DrawScreen 
WaitKey 
key=GetKey() 
Select key
Case 49
Goto jätös
Default 
Goto pissi
End Select 

sairaus:
Text 10,10,"Koirasi on sairas."
Text 10,30,"1. Vie koira sairaalaan"
Text 10,40,"2. Anna koiran kuolla"
DrawScreen
WaitKey 

key=GetKey() 
Select key
Case 49
Goto sairaala
Case 50
Goto kuolema
Default 
Goto sairaus
End Select 

sairaala:
ran=Rand(1,10)
Select ran
Case 1
Goto kuolema
Default 
Goto parani
End Select

parani:
Text 10,10,"Koirasi parani."
Text 10,30,"(Jatka painamalla näppäintä)"
DrawScreen 
WaitKey
Goto vaihe1

kuolema:
Text 10,10,"Koirasi valitettavasti kuoli."
Text 10,30,"1. Aloita uusi peli"
Text 10,40,"2. Lopeta peli"
DrawScreen
WaitKey 

key=GetKey() 
Select key
Case 49
Goto Alku
Case 50
End 
Default 
Goto kuolema
End Select 

vkuolema:
Text 10,10,"Koirasi valitettavasti kuoli vanhuuteen."
Text 10,30,"1. Aloita uusi peli"
Text 10,40,"2. Lopeta peli"
DrawScreen
WaitKey 

key=GetKey() 
Select key
Case 49
Goto Alku
Case 50
End 
Default 
Goto kuolema
End Select 
Koodarina kohtalainen, henkilönä vittumainen
Image
MikkoK
Devoted Member
Posts: 813
Joined: Thu Jun 05, 2008 2:13 pm
Location: City 17

Re: Esimerkkejä aloittelijoille.

Post by MikkoK »

Grandi wrote:Tuon saa näemmä toteutettua yhdelläkin rivillä, mutta silloin se ei enää ole kovin hyvä esimerkki aloittelijoille:

Code: Select all

vaihde = vaihde + ((vaihde < 1) - (vaihde > maksimi))
Laitan tähän esimerkin hiirellä toimivasta valikosta, joita on pyydetty aika useasti.

Code: Select all

Koodia jota muokkasin...
Otin vapauden muokata koodiasi ja nyt se on periaatteessa kokonainen valikko taustakuvineen kaikkineen.

Code: Select all

        SCREEN 800,600
        tausta = MakeObjectFloor ()
        taustakuva = LoadImage ("Media\grass.bmp")
        PaintObject tausta, taustakuva
        ' itse esimerkki
        While True
            ' painikkeista voi tällä tavalla tehdä ehtolauseita, koska ne palauttavat
            ' toden (true, 1) kun niitä on painettu. Tällöin ehtolausekkin muuttuu
            DrawGame
            If button(350,150,100,20,"Uusi peli") Then MakeError "Tässä on "+Chr(34)+"peli"+chr(34)+" :)"
           If button(350,180,100,20,"Asetukset") Then MakeError "Tässä on "+Chr(34)+"asetukset"+chr(34)+" :)"
           If button(350,210,100,20,"Poistu") then End
            DrawScreen
        Wend
       
        Function Button(x As integer,y As integer,w As integer,h As integer,t As String,s As integer = 5)
            ' painikkeen koodi
            If MouseX()>x And MouseY()>y And MouseX()<x+w And MouseY()<y+h Then
                If MouseDown(1) Then Color 200,200,200 Else Color 190,190,190
                If MouseUp(1) Then Return True
            Else
                Color 220,220,220
            EndIf
            Box x+s,y,w-(s*2),h    ' painikkeen pohja
            Box x,y+s,w,h-(s*2)
            Circle x,y,s*2
            Circle x+w-s*2,y,s*2
            Circle x+w-s*2,y+h-s*2,s*2
            Circle x,y+h-s*2,s*2
            ' painikkeen otsikko
            Color cbblack
            CenterText x+w/2,y+h/2-TextHeight(t)/2,t$
        EndFunction

Code: Select all

#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Esimerkkejä aloittelijoille.

Post by Koodiapina »

Eikös se valikon taustakuva olisi järkevin hoitaa ihan pelkällä kuvalla? Minusta ei ole hyvä asia tunkea objekteja (tai objectflooreja) joka paikkaan.
MikkoK
Devoted Member
Posts: 813
Joined: Thu Jun 05, 2008 2:13 pm
Location: City 17

Re: Esimerkkejä aloittelijoille.

Post by MikkoK »

Grandi wrote:Eikös se valikon taustakuva olisi järkevin hoitaa ihan pelkällä kuvalla? Minusta ei ole hyvä asia tunkea objekteja (tai objectflooreja) joka paikkaan.
Ok ja mites tämä onnistuu? En jaksa manuaalia plärätä.
Offtopic:
Tämän alueen 901:n viesti!

Code: Select all

#aha. @ IRCNet
<Grandi> Voit laittaa jo valmiiks hailaittiin "Amis-Mikko", koska alan kutsua sua sillä nimellä.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Esimerkkejä aloittelijoille.

Post by Koodiapina »

Näin:

Code: Select all

    kuva = LoadImage("media/map.bmp")
    While Not False
        DrawImage kuva,0,0
        DrawScreen 
    Wend 
EDIT: Nevssons: Ei mitään, se on vaan hauskannäköinen :)
Last edited by Koodiapina on Sun Aug 24, 2008 1:29 pm, edited 1 time in total.
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: Esimerkkejä aloittelijoille.

Post by nevssons »

Grandi wrote:Näin:

Code: Select all

    kuva = LoadImage("media/map.bmp")
    While Not False
        DrawImage kuva,0,0
        DrawScreen 
    Wend 
Pakko kysyä:
Mitä järkeä tuossa silmukassa on?
Sen voisi hoitaa yksinkertaisemmin:

Code: Select all

Repeat
Forever
tai edes

Code: Select all

While true
wend
Koodarina kohtalainen, henkilönä vittumainen
Image
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Esimerkkejä aloittelijoille.

Post by DatsuniG »

Tässä olisi todella simppeli funktio. Nimi ei ole varmaankaan paras mahdollinen : / mutta en keksinyt muuta.

Code: Select all

Dialogi("Hei maailma, tämä on dialogi testi!",100) ' Kokeillaan funktiota

WaitKey 



    Function Dialogi(teksti$,nopeus)
    kirjaimet=Len(teksti$) ' Lasketaan kirjainten määrä
    
    For i=1 To kirjaimet
        kirjain$=Mid(teksti$,i,1) 'Aloitetaan ensimmäisestä kirjaimesta ja käydään läpi koko lause
        Wait nopeus ' Odotetaan hetken
        Write kirjain$  ' Kirjoitetaan kirjain
    Next i ' Seuraava kirjain

Print "" ' Seuraava funktio aloittaa uudelta riviltä
    
EndFunction 
Hengität nyt manuaalisesti.
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Esimerkkejä aloittelijoille.

Post by Ilkka »

DatsuniG wrote:Tässä olisi todella simppeli funktio. Nimi ei ole varmaankaan paras mahdollinen : / mutta en keksinyt muuta.

Code: Select all

Dialogi("Hei maailma, tämä on dialogi testi!",100) ' Kokeillaan funktiota

WaitKey 



    Function Dialogi(teksti$,nopeus)
    kirjaimet=Len(teksti$) ' Lasketaan kirjainten määrä
    
    For i=1 To kirjaimet
        kirjain$=Mid(teksti$,i,1) 'Aloitetaan ensimmäisestä kirjaimesta ja käydään läpi koko lause
        Wait nopeus ' Odotetaan hetken
        Write kirjain$  ' Kirjoitetaan kirjain
    Next i ' Seuraava kirjain

Print "" ' Seuraava funktio aloittaa uudelta riviltä
    
EndFunction 
Kts, tästä on varmasti hyötyä sitten kun aloitan pienen RPG-pelin teon. Harjoittelen sitä varten ;)
Image
User avatar
Ilkka
Active Member
Posts: 201
Joined: Mon Oct 08, 2007 8:01 am

Re: Esimerkkejä aloittelijoille.

Post by Ilkka »

Päätimpä pistää tänne esimerkin auton rikkimenosta. Tarkemmat selostukset on tekstissa, koodin mukana.
Eli, TÖRMÄÄTHÄN paikalla olevaan autoon. : )
Code:

Code: Select all

'--------------AUTO RIKKI: VÄRIKKÄÄN ESIMERKIT -2 -------------------------'

FrameLimit 40 'rajoitetaan ohjelman nopeutta

auto=LoadObject("media/car2.bmp",72)'luodaan objecti nimeltä auto
vast=LoadObject("media/car2.bmp")'luodaan objecti nimeltä vast
PositionObject auto,0,40'sijoiteteaan objecti auto 

vauhti#=0' luodaan muuttuja vauhti
damage#=100' luodaan muuttuja damage
Repeat'silmukka

    SetupCollision auto,vast,1,1,2' asetetaan törmäystunnistus
    damage2=CountCollisions(auto)' tarkistetaan objectin auto-törmäykset
    If damage2 Then damage-10' jos törmäyksiä on, silloin auton damagesta miinustetaan 10
    
    ClsColor cbblue' pohjaväri taustasta siniseksi
 
    If KeyDown(203) And vauhti>0 Then TurnObject auto,5' kääntö vain jos on vauhtia
    If KeyDown(205) and vauhti>0 Then TurnObject auto,-5' kääntö toiseen suuntaan vain jos on vauhtia
   
    If KeyDown(200) Then 'jos painetaan ylänuolta, silloin
    vauhti+0.5' vauhtia lisätään 0.5
    Else' jos ei paineta
    vauhti-0.2' vauhtia vähennetään 0.2
    EndIf' lopetetaan jos lauseke
  
    If vauhti<0 Then vauhti=0 ' jos vauhti on pienempi kuin 0 silloin vauhti on 0
   
    If damage>80 Then' jos damage on suurempi kuin 80 silloin
      If vauhti>5 Then vauhti=5' jos vauhti on suurempi kuin 5 silloin vauhti on 5
    EndIf' lopetetaan jos lauseke
    
    If damage<80 And damage>50 Then' jos damage on pienempi kuin 80 ja suurempi kuin 50, silloin 
      If vauhti>3.5 Then vauhti=3.5' jos vauhti on suurempi kuin 3.5 silloin vauhti on 3.5
    EndIf' lopetetaan jos lauseke

    If damage<50 And damage>1 Then' jos damage on pienempi kuin 50 ja suurempi kuin 1, silloin
      If vauhti>1.5 Then vauhti=1.5' jos vauhti on suurempi kuin 1.5 silloin vauhti on 1.5
    EndIf' lopetetaan jos lauseke
   
    If damage=0 Then vauhti=0' jos damage=0 silloin vauhti=0
   
    If damage<0 Then damage=0' jos damage on pienempi kuin 0 silloin damage on 0
      
    MoveObject auto,vauhti' liikuta autoa, muuttujan VAUHTI, mukaan
  
    If damage=0 Then Text 100,100,"Crashed!!"' jos damage on 0 silloin tulee teksti : Crashed!!

  Text 10,10,"Damage:"+damage' kentälle tulee teksti Damage: ,joka kertoo paljon autossa on damagea
  Text 10,30,"Speed:"+vauhti' kertoo auton vauhdin

  DrawScreen' piirrä kaikki tämä näytölle
Forever' lopeta repeat silmukka

'---------------------------- TIIVISTELMÄ---------------------------'
' jos sinun ajama auto törmää toiseen autoon
' silloin autostasi vähenee damage
' jos damage on nolla silloin auto ei liiku , auto on rikki
' mitä pienempi damage sitä hiljempaa auto kulkee
Image
DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Esimerkkejä aloittelijoille.

Post by DatsuniG »

Olipas tylsää joten tein tämmöisen funkkarin joka piirtää kuution kavaljeeriprojektion.

x=Kuution x-koordinaatti
y=Kuution y-koordinaatti
_w=Kuution leveys
_h=Kuution korkeus
_z=Kuution pituus

Code: Select all

x=50
y=50

Repeat


x=x+(RightKey()-LeftKey())*2
y=y+(UpKey()-DownKey())*-2

Cube(x,y,40,62,32)
DrawScreen
Forever 



Function Cube(x,y,_w,_h,_z)


Line x,y,x+_w,y
Line x+_w,y,x+_w,y+_h
Line x+_w,y+_h,x,y+_h
Line x,y+_h,x,y

x=x-(_z/2)
y=y-(_z/2)

Line x,y,x+_w,y
Line x+_w,y,x+_w,y+_h
Line x+_w,y+_h,x,y+_h
Line x,y+_h,x,y

Line x+(_z/2),y+(_z/2),x,y
Line x+(_z/2)+_w,y+(_z/2),x+_w,y
Line x+_w+(_z/2),y+(_z/2)+_h,x+_w,y+_h
Line x+(_z/2),y+_h+(_z/2),x,y+_h


EndFunction 
EDIT:

Newcomerista -> Memberiksi : )

Hengität nyt manuaalisesti.
Post Reply