Helppo päävalikko

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Helppo päävalikko

Post by kaneli2000 »

Eli tässä olisi nyt aikas helppo päävalikko. Se toimii vain, jos pelisi käyttää tilemappia/mappeja.

Olen itse aika uusi, joten tämä esimerkkikin on aika kökkö. Päivitelkää ihmeessä ideaani, te isot CB jumalat ^^.

Tarvitset kartan, jos haluat kokeilla tätä käytännössä. Voin tehdä sellaisen liitteeksi myöhemmin.

Code: Select all

FrameLimit 40

mappi=LoadMap("Media\kartan nimi tähän.til","Media\tilesetin nimi tähän.bmp") 'lataa kartta
ukko=LoadObject("Media\pelaajan kuvan nimi tähän.bmp")'lataa ukkeli

Repeat

If LeftKey() Then TurnObject ukko,10'käännä ukkoa, jos painetaan vasenta nuolta
If RightKey() Then TurnObject ukko,-10'sama oikealle
If UpKey() Then MoveObject ukko,4

If GetMap(3,ObjectX(ukko),ObjectY(ukko))=1 Then MakeError "Tässä on nyt se peli :)."'Jos ukko menee tileen jonka datanumero on 1, peli alkaa

If GetMap(3,ObjectX(ukko),ObjectY(ukko))=2 Then End'Jos ukko menee tileen jonka datanumero on 2, ohjelma sulkeutuu

DrawScreen

Forever
JOS et tiedä miten mappiin tehdään datakerros, niin minä kerron:
-avaa tilester
-avaa haluamasi kartta/luo uusi
-valitse DATA kohta oikealta näkyviin niin, että joka paikka on täynnä pieniä nollia
-klikkaa DATA tekstiä niin, että piirrettävän tilen paikalle tulee sana DATA ja sen alle jonkinlainen juttu, johon voi kirjoittaa
-valitse numeroja kirjoita se
-"piirrä" numero minne haluat

näin!
I see the rainbow rising
zedo

Re: Helppo päävalikko

Post by zedo »

Ihan hauska, itekki joskus oon ton tapasta miettiny :)
Tulin kuitenkin tulokseen, että piirsin kuvan "nappula" ja jos mouseup(1) ja samaan aikaan hiiri on kuvan kohdalla, nii sitte goto aloita.
Ei ole kätevin tapa, mutta en ole jaksanut vaihtaakaan enää. Vastaisuudessa sitten toisin.

Jännää tekstiä kyl mulla, mutta mahdollisesti tajuttavissa :D

Jos jotaki pitäis valita, nii soveltaisin nykyään tota sun juttuas, mut et se kattois hiiren koordinaatit ja vaatis gotoon lisäks mouseup(1):n.
Se olis mun mielestä kätevin.
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Helppo päävalikko

Post by kaneli2000 »

Itsekin käytän tät, tosin syystä etten osaa muitakaan tehdä :D ja onhan tuo aika siistikin, pelattava päävalikko...
I see the rainbow rising
User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Helppo päävalikko

Post by TheDuck »

Vaikka tää onkin hauska niin monet haluavat perinteisen valikon eikä pelattavaa... Tai ainakin mun mielestä, mutta tapasi on omaperäinen :) Tässä kumminkin perinteinen valintavalikko, nuolinäppäimet ja enter ;)

Code: Select all

//ASETUKSET!! SÄÄDÄ MIELEISIKSI//
Const VALIKKO_KOKO = 2 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
//^^//

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="New game" //uus peli
    valinta(1)="Load game" //lataa peli
    valinta(2)="Exit" //ja poistu

//silmukka
While Not KeyHit(cbkeyreturn)
    For i=0 To VALIKKO_KOKO //käydään läpi kaikki valinnat
       Color cbred //vaihdetaan väri punaiseksi
       If i=p Then Box ScreenWidth()/2-(TextWidth(valinta(i))/2)-9,ScreenHeight()/2+i*TextHeight(valinta(i))*2-9,TextWidth(valinta(i))+18,TextHeight(valinta(i))+18,0 //piirretään laatikko valitun kohdan ympärille... - Matikkaa :)
       Color cbwhite //vaihdetaan väri valkoiseksi
       Text ScreenWidth()/2-(TextWidth(valinta(i))/2),ScreenHeight()/2+i*TextHeight(valinta(i))*2,valinta(i) //kirjoitetaan valinta ruudulle oikeaan kohtaan... - Matikkaa :)
    Next i
    If KeyHit(200) Then //jos painetaan näppäintä alas siirrytään valinnoissa alaspäin
        p-1 
    ElseIf KeyHit(208) Then //jos taas ylös niin ylöspäin
        p+1
    EndIf 
    If p>VALIKKO_KOKO Then p=0 //jos mennään yli vaointojen määrän palataan alkuun
    If p<0 Then p=VALIKKO_KOKO //jos mennään ali 0 mennään maksimivalintaan
    DrawScreen
Wend 

If p=0 Then MakeError "Se onse uusi peli! :)" //jos valittiin new game
If p=1 Then MakeError "Ei tallennettuja pelejä..." //jos valittiin load game
If p=2 Then End //jos valittiin poistuminen
PS: Sori jos kukaan ei saa selvää :D
^^
User avatar
esa94
Guru
Posts: 1855
Joined: Tue Sep 04, 2007 5:35 pm

Re: Helppo päävalikko

Post by esa94 »

Vlaka, jossei muistu mieleen, niin olethan säkin käyttänyt pelattavaa valikkoa. Siis legendaarisessa Haamu Mission 4:ssa minipelivalikkona. Tosin tämä on paljon paremmin toteutettu. Ihan hyvin tehty, kaneli.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Helppo päävalikko

Post by Koodiapina »

Tuo on hieman huono esimerkki siinä mielessä, että sitä ei voi suoraan kokeilla. Näyttäis kuitenkin olevan kelpo koodi.

Tuo datan tarkistus kannattaa toteuttaa näin:

Code: Select all

Select GetMap(3,ObjectX(ukko),ObjectY(ukko))
     Case 1: ' tehtävä
     Case 2: ' tehtävä
     Case 348: ' tehtävä
EndSelect
Koska manuaalin mukaan select - case rakenne on nopeampi kuin tavallinen ehtolause. Lisäksi tuo on ainakin minun mielestäni selkeämpi silloin kun tehtäviä on paljon.
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Helppo päävalikko

Post by kaneli2000 »

esa94 wrote:Vlaka, jossei muistu mieleen, niin olethan säkin käyttänyt pelattavaa valikkoa. Siis legendaarisessa Haamu Mission 4:ssa minipelivalikkona. Tosin tämä on paljon paremmin toteutettu. Ihan hyvin tehty, kaneli.
jee, kerrankin saan hyvää palautetta! ^^
I see the rainbow rising
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Helppo päävalikko

Post by kaneli2000 »

Grandi wrote:Tuo on hieman huono esimerkki siinä mielessä, että sitä ei voi suoraan kokeilla. Näyttäis kuitenkin olevan kelpo koodi.

Tuo datan tarkistus kannattaa toteuttaa näin:

Code: Select all

Select GetMap(3,ObjectX(ukko),ObjectY(ukko))
     Case 1: ' tehtävä
     Case 2: ' tehtävä
     Case 348: ' tehtävä
EndSelect
Koska manuaalin mukaan select - case rakenne on nopeampi kuin tavallinen ehtolause. Lisäksi tuo on ainakin minun mielestäni selkeämpi silloin kun tehtäviä on paljon.
käy se näinkin. sanoinhan, että päivitelkää ideaani isot cb jumlata.
I see the rainbow rising
Olwi
Devoted Member
Posts: 557
Joined: Sun Dec 30, 2007 4:15 pm
Location: Muhos

Re: Helppo päävalikko

Post by Olwi »

En voi nyt arvioida kun ei ole CB:tä tällä koneella.

Sanokaapa mitä tykkäätte tästä?
Elkää katsoko koodia vaan se mitä siitä tulee,muuten juututte purkkaan kiinni.
Tehty about 2kk sit:D

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ä!
User avatar
elmo123
Active Member
Posts: 153
Joined: Sun Sep 09, 2007 4:19 pm

Re: Helppo päävalikko

Post by elmo123 »

Code: Select all

Repeat

    If TextBut(200, 130, "Uusi peli", cbDarkRed, cbRed) Then MakeError "No game! One bad joke :)"

    TextBut(200, 150, "Lataa peli", 0, 0, 0, 0, 0, 0, cbSilver, ON)

    If TextBUt(200, 170, "Lopeta", cbDarkRed, cbRed) Then End

    DrawScreen

Forever




Function TextBut(x#, y#, txt$, r1, g1, b1, r2, g2, b2, r3 = 0, g3 = 0, b3 = 0, disabled = 0)

    r = getRGB(RED)
    g = getRGB(GREEN)
    b = getRGB(BLUE)

    If disabled Then Color r3, g3, b3 : Goto Prnt

    If MouseX() > x# - TextWidth(txt$) / 2.0 - 1 And MouseX() < x# + TextWidth(txt$) / 2.0 + 1 And MouseY() > y# - TextHeight(txt$) / 2.0 - 1 And MouseY() < y + TextHeight(txt$) / 2.0 + 1 Then

        Color r2, g2, b2
        If MouseHit(1) Then clicked = 1

    Else

        Color r1, g1, b1

    EndIf

    Prnt:

    CenterText x#, y#, txt$, 2

    Color r, g, b

    Return clicked

EndFunction
Tähän ei menyt kuin kuutisen minuuttia.
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!
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Helppo päävalikko

Post by Koodiapina »

Elmo123: Ei ole välttämättä kovin selkeää, jos laitetaan aliohjelmia funktioiden sisälle. Muuten ihan kätevä koodi.
Jonhu

Re: Helppo päävalikko

Post by Jonhu »

Code: Select all

SCREEN 1024,768,24
FrameLimit 30
kuva = LoadObject("Media\car.bmp", 72)
kuva1 = LoadObject("Media\car.bmp", 72)
kuva2 = LoadObject("Media\car2.bmp", 72)
kuva3 = LoadObject("Media\car2.bmp", 72)
poistu = LoadObject("Media\poistu.jpg", 72)

x=0
y=1
z=1
Osumia_auto = 0
Osumia_auto2 = 0
Const Ammusnopeus = 8
Const latausnopeus = 5
Const autojennopeus = 8
Const autojenkäännösnopeus = 5
Const peruutusnopeus = 2
Const CPUautonnopeus = 7
Const CPU_reagointiaika = 300   // 1000  = 1 sec
Const CPU_amupumis_etäisyys = 200


Repeat //                           valikko
    

    Color cborange
    Box 350,20,400,100,0
    Text 450,50, "Valitse pelaajien määrä"
    Text 905,8, "Versio 0.01"
    Text 450,350, "       Valitse Kenttä"
    Box 460,340,200,40,0

    PositionObject kuva1, -70 ,147
    PositionObject kuva2, 350 ,165
    PositionObject kuva3, 350 ,125
    PositionObject kuva, -350,310
    TurnObject kuva,5 
    
    If kentta=1 Then Color cbred
    If kentta<1 Or kentta>1 Then Color cborange
    Box 200,400,300,60,0
    Text 250, 430, "1. Orginal map"  
    
    If kentta=3 Then Color cbred
    If kentta<3 Or kentta>3 Then Color cborange
    Box 200,500,300,60,0
    Text 250, 530, "3. BigRace map"  
    
    If kentta=2 Then Color cbred
    If kentta<2 Or kentta>2 Then Color cborange
    Box 600,400,300,60,0
    Text 650, 430, "2. Race map"
    
    If x=1 Then Color cbred
    If x<1 Or x>1 Then Color cborange
    Box 200,200,300,80,0
    Text 250, 230, "1. Yksi pelaaja"   //200,199...200,278..499..278
    
    If x=2 Then Color cbred
    If x<2 Or x>2 Then Color cborange
    Box 600,200,300,80,0
    Text 650, 230, "2. Kaksi pelaajaa"
    Color cborange
    If vihu_elossa=ON Then Color cbred
    Box 645,248,60,20,0
    Text 650,250, "CPU"
    Color cborange
    If vihu_elossa=OFF Then Color cbred
    Box 745,248,60,20,0
    Text 750,250, "Human"
    Color cborange
    If y=0 Then Color cbred
    If y<0 Or y>0 Then Color cborange
    Box 980,30,36,30,0   //off
    Text 905, 38, "          OFF"
    If y=1 Then Color cbred
    If y<1 Or y>1 Then Color cborange
    Box 940,30,40,30,0   // on 
    Text 905, 38, "      ON"
    Color cborange
    Text 905, 38, "Musa"
    //Text 905, 38, "Musa  ON  OFF"
    
    
    Box 900,700,100,50,0
    Text 950, 725, "Exit"
    PositionObject poistu, 412 ,-342
    
    If x=1 Or x=2 And kentta=1 Or kentta=2 Then Color cbwhite
    
    Box 30,700,100,30,0
    Text 38, 710, "Start  GO"
    If MouseX()>645 And MouseX()<705 And MouseY()<308 And MouseY()>248 Then
        If MouseUp(1)
            vihu_elossa=ON    //player2 CPU
        EndIf
    EndIf
    If MouseX()>745 And MouseX()<805 And MouseY()<308 And MouseY()>248 Then
        If MouseUp(1)
            vihu_elossa=OFF   //player2 Human
        EndIf
    EndIf
     If MouseX()>200 And MouseX()<500 And MouseY()<278 And MouseY()>199 Then
        If MouseUp(1)
            x=1          //players 1
        EndIf
    EndIf
    
    If MouseX()>600 And MouseX()<900 And MouseY()<278 And MouseY()>199 Then
        If MouseUp(1)
            x=2          //players 2
        EndIf
    EndIf
    
    If MouseX()>200 And MouseX()<500 And MouseY()<460 And MouseY()>400 Then
        If MouseUp(1)
            kentta=1     // kenttä 1
        EndIf
    EndIf

    If MouseX()>600 And MouseX()<900 And MouseY()<460 And MouseY()>400 Then
        If MouseUp(1)
            kentta=2    // kenttä 2
        EndIf
    EndIf
    
    If MouseX()>200 And MouseX()<500 And MouseY()<560 And MouseY()>500 Then
        If MouseUp(1)
            kentta=3     // kenttä 3
        EndIf
    EndIf
    
    If MouseX()>940 And MouseX()<980 And MouseY()<60 And MouseY()>30 Then
        If MouseUp(1)
            y=1  //musa päällä
        EndIf
    EndIf
    If MouseX()>981 And MouseX()<1016 And MouseY()<60 And MouseY()>30 Then
        If MouseUp(1)
            y=0    //musa pois
        EndIf
    EndIf
    If MouseX()>30 And MouseX()<130 And MouseY()<730 And MouseY()>700 Then
        If MouseDown(1) 
            If x=1 Or x=2 And kentta=1 Or kentta=2 Then Color cbred
                Box 30,700,100,30,0
                Text 38, 710, "Start  GO"
                DrawScreen
                Wait 700
                Gosub alku
      EndIf
    EndIf
    
    If MouseX()>900 And MouseX()<1000 And MouseY()<750 And MouseY()>700 Then
        If MouseUp(1)
            Color cbred
            Box 900,700,100,50,0
            Text 950, 725, "Exit"
            DrawScreen
            Wait 500
            End
        EndIf
    EndIf



    If y=1 Then
    
    If SoundPlaying(musa)=0 Then 
        musa = PlaySound ("Media\SK_Battle2.mp3")
        If Rand(1,2)=1 Then 
            
            SetSound musa,0,100,-100 'vasen kajari
        Else
            SetSound musa,0,100,100 'oikea kajari
        EndIf
    EndIf
    EndIf
    If y=0 Then StopSound musa
    //RotateObject car5,0
    //PositionObject car5, 300,500
    //TurnObject car5, 5
  //  Text 10,1, MouseX()
   // Text 10,11, MouseY()
    DrawScreen


Forever
End
Tässä minun vähän hutasten tehty valikko.. Lisäilty aina nappeja, kun tarvetta on tullut... Olen käyttänyt CoolBasiciä kaksi päivää, ja tämä on minusta EHDOTTOMASTI helpoin ohjelmointikieli.
Jonhu

Re: Helppo päävalikko

Post by Jonhu »

Code: Select all

SCREEN 1024,768,24
FrameLimit 30
kuva = LoadObject("Media\car.bmp", 72)
kuva1 = LoadObject("Media\car.bmp", 72)
kuva2 = LoadObject("Media\car2.bmp", 72)
kuva3 = LoadObject("Media\car2.bmp", 72)
poistu = LoadObject("Media\poistu.jpg", 72)

x=0  
y=1
z=1
Repeat //                           valikko
   

    Color cborange
    Box 350,20,400,100,0
    Text 450,50, "Valitse pelaajien määrä"
    Text 905,8, "Versio 0.01"
    Text 450,350, "       Valitse Kenttä"
    Box 460,340,200,40,0

    PositionObject kuva1, -70 ,147
    PositionObject kuva2, 350 ,165
    PositionObject kuva3, 350 ,125
    PositionObject kuva, -350,310
    TurnObject kuva,5
   
    If kentta=1 Then Color cbred
    If kentta<1 Or kentta>1 Then Color cborange
    Box 200,400,300,60,0
    Text 250, 430, "1. Orginal map" 
   
    If kentta=3 Then Color cbred
    If kentta<3 Or kentta>3 Then Color cborange
    Box 200,500,300,60,0
    Text 250, 530, "3. BigRace map" 
   
    If kentta=2 Then Color cbred
    If kentta<2 Or kentta>2 Then Color cborange
    Box 600,400,300,60,0
    Text 650, 430, "2. Race map"
   
    If x=1 Then Color cbred
    If x<1 Or x>1 Then Color cborange
    Box 200,200,300,80,0
    Text 250, 230, "1. Yksi pelaaja"   //200,199...200,278..499..278
   
    If x=2 Then Color cbred
    If x<2 Or x>2 Then Color cborange
    Box 600,200,300,80,0
    Text 650, 230, "2. Kaksi pelaajaa"
    Color cborange
    If vihu_elossa=ON Then Color cbred
    Box 645,248,60,20,0
    Text 650,250, "CPU"
    Color cborange
    If vihu_elossa=OFF Then Color cbred
    Box 745,248,60,20,0
    Text 750,250, "Human"
    Color cborange
    If y=0 Then Color cbred
    If y<0 Or y>0 Then Color cborange
    Box 980,30,36,30,0   //off
    Text 905, 38, "          OFF"
    If y=1 Then Color cbred
    If y<1 Or y>1 Then Color cborange
    Box 940,30,40,30,0   // on
    Text 905, 38, "      ON"
    Color cborange
    Text 905, 38, "Musa"
    //Text 905, 38, "Musa  ON  OFF"
   
   
    Box 900,700,100,50,0
    Text 950, 725, "Exit"
    PositionObject poistu, 412 ,-342
   
    If x=1 Or x=2 And kentta=1 Or kentta=2 Then Color cbwhite
   
    Box 30,700,100,30,0
    Text 38, 710, "Start  GO"
    If MouseX()>645 And MouseX()<705 And MouseY()<308 And MouseY()>248 Then
        If MouseUp(1)
            vihu_elossa=ON    //player2 CPU
        EndIf
    EndIf
    If MouseX()>745 And MouseX()<805 And MouseY()<308 And MouseY()>248 Then
        If MouseUp(1)
            vihu_elossa=OFF   //player2 Human
        EndIf
    EndIf
     If MouseX()>200 And MouseX()<500 And MouseY()<278 And MouseY()>199 Then
        If MouseUp(1)
            x=1          //players 1
        EndIf
    EndIf
   
    If MouseX()>600 And MouseX()<900 And MouseY()<278 And MouseY()>199 Then
        If MouseUp(1)
            x=2          //players 2
        EndIf
    EndIf
   
    If MouseX()>200 And MouseX()<500 And MouseY()<460 And MouseY()>400 Then
        If MouseUp(1)
            kentta=1     // kenttä 1
        EndIf
    EndIf

    If MouseX()>600 And MouseX()<900 And MouseY()<460 And MouseY()>400 Then
        If MouseUp(1)
            kentta=2    // kenttä 2
        EndIf
    EndIf
   
    If MouseX()>200 And MouseX()<500 And MouseY()<560 And MouseY()>500 Then
        If MouseUp(1)
            kentta=3     // kenttä 3
        EndIf
    EndIf
   
    If MouseX()>940 And MouseX()<980 And MouseY()<60 And MouseY()>30 Then
        If MouseUp(1)
            y=1  //musa päällä
        EndIf
    EndIf
    If MouseX()>981 And MouseX()<1016 And MouseY()<60 And MouseY()>30 Then
        If MouseUp(1)
            y=0    //musa pois
        EndIf
    EndIf
    If MouseX()>30 And MouseX()<130 And MouseY()<730 And MouseY()>700 Then
        If MouseDown(1)
            If x=1 Or x=2 And kentta=1 Or kentta=2 Then Color cbred
                Box 30,700,100,30,0
                Text 38, 710, "Start  GO"
                DrawScreen
                Wait 700
                Gosub alku
      EndIf
    EndIf
   
    If MouseX()>900 And MouseX()<1000 And MouseY()<750 And MouseY()>700 Then
        If MouseUp(1)
            Color cbred
            Box 900,700,100,50,0
            Text 950, 725, "Exit"
            DrawScreen
            Wait 500
            End
        EndIf
    EndIf



    If y=1 Then
   
    If SoundPlaying(musa)=0 Then
        musa = PlaySound ("Media\SK_Battle2.mp3")
        If Rand(1,2)=1 Then
           
            SetSound musa,0,100,-100 'vasen kajari
        Else
            SetSound musa,0,100,100 'oikea kajari
        EndIf
    EndIf
    EndIf
    If y=0 Then StopSound musa
    //RotateObject car5,0
    //PositionObject car5, 300,500
    //TurnObject car5, 5
  //  Text 10,1, MouseX()
   // Text 10,11, MouseY()
    DrawScreen


Forever
End

alku:   // ohjelma alkaa
Return
Unohdin poistaa mun turhat muuttujat, ja pistää tohon loppuun "alku: return"
taidan rekisteröityä, että voin editoida viestejäni
User avatar
valscion
Moderator
Moderator
Posts: 1599
Joined: Thu Dec 06, 2007 7:46 pm
Location: Espoo
Contact:

Re: Helppo päävalikko

Post by valscion »

Jonhu wrote:Unohdin poistaa mun turhat muuttujat, ja pistää tohon loppuun "alku: return"
taidan rekisteröityä, että voin editoida viestejäni
Tuo return komento palauttaa koodin suorittamisen vain takaisin siihen kohtaan, mistä GoSubbia kutsuttiin. Eli se ei aloita koodiasi alusta.

btw. rekisteröinti on hyvästä ;)
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Helppo päävalikko

Post by kaneli2000 »

Tuommoisen vähän perinteisemmän menun opin (viimeinkin!!!!!) tekemään:

Code: Select all

'Lataa "New game" -nappula. Napissa on hyvä lukea "New game", mutta
'CoolBasicin "Media"-kansiossa ei ole moista namiskaa, ja sinun pitää
'piirtää se itse.
newgame=LoadObject("Media\buttoni.bmp")
PositionObject newgame,0,30

'Lataa "Exit" -nappula. Exit -napissa on hyvä lukea "Exit", mutta
'CollBasicin "Media"-kansiossa ei ole sellaistakaan namiskaa, ja sinun
'pitää piirtää sekin itse.
exitgame=LoadObject("Media\buttoni.bmp")
PositionObject exitgame,0,-30

'Lataa hiiri
hiiri=LoadObject("Media\crosshair.bmp")

'Pääsilmukka
Repeat

'Hiiriobjekti pistetään "oikean" hiiren päälle ja oikea hiiri piilotetaan
PositionObject hiiri,MouseWX(),MouseWY()
ShowMouse OFF

'Jos "valehiiri" on newgame -napin päällä ja hiiren vasenta nappulaa painetaan,
'mennään peliin.
If ObjectsOverlap(hiiri,newgame) And MouseHit(1) Then MakeError "Tässä on nyt se peli"

'Jos "valehiiri" menee exitgame -napin päälle ja painetaan hiiren vas. nappulaa,
'peli lopetetaan.
If ObjectsOverlap (hiiri,exitgame) And MouseHit(1) Then End

DrawScreen

Forever
Onhan se vähän kökkö, mutta hyvä aloittelijoille?

EDIT: Katsoin tuota Jonhun menua, ja se oli aikas hieno! Itsellä ei taidot riittäisi.
I see the rainbow rising
Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Helppo päävalikko

Post by Henkru »

Miksi valikko täytyy toteuttaa objeckteilla? En tietenkään sano et se on väärin, mutta eikö objekctit ole tarkoitettu itse "peliin", Ukot, ammukset ja jne.
Miksei vaikka näin.

Code: Select all

Const VALIKKO = 0
Const PELI = 1

quit = 1

While quit = 1
    If mode = VALIKKO Then
        If Button("Peli", ScreenWidth()/2 - TextWidth("Peli")/2, 100) Then mode = PELI
        If Button("Poistu",  ScreenWidth()/2 - TextWidth("Poistu")/2, 120) Then quit = 0
    ElseIf mode = PELI
        CenterText ScreenWidth()/2, ScreenHeight()/2, "Peli", 2
        If Button("Valikoon", 10, 10) Then mode = VALIKKO
    EndIf 
    DrawScreen 
Wend 




Function Button(txt$, x, y)
    r=getRGB(RED)
    g=getRGB(GREEN)
    b=getRGB(BLUE)
    If MouseON(x,y, TextWidth(txt$), TextHeight(txt$)) Then
        Color 56,62,184
        If MouseHit(1) = 1 Then Color r,g,b : Return 1
    Else
        Color 255,172,0 
    EndIf 
    Text x,y,txt$
    Color r,g,b
    Return 0
EndFunction 

Function MouseON(x, y, w, h)
    If MouseX() >= x And MouseX() <= x+w And MouseY() >= y And MouseY()<= y+h Then Return 1
EndFunction 
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Helppo päävalikko

Post by rami123 »

tässä olisi tälläinen valikko :lol:

Code: Select all

' esimerkki valikko     Tehnyt Rami
//////////////////////////////////////////////////////////////////////// 
SCREEN 800,800
FrameLimit 40
SetWindow "Valikko esimerkki"
'ruudun koko , nopeus ja peli ikkunan nimi


   kuva = LoadImage ("tähän kuvan nimi koko 800,800.png")
'ladataan tausta kuva

   uusi = LoadObject("tähän uusi peli painike Koko ei  suuri.png")
PositionObject uusi,0,30
'uusi peli painike kuva ladataan

   poistu = LoadObject("tähän poistu peli painike Koko ei suuri.png")
PositionObject poistu,0,-30
'poistu pelistä painike kuva ladataan

   hiiri = LoadObject("tähän hiiren kuva Koko pieni.png")
'ladataan hiiren kuva
'-----------------------------------------------------------------------
'silmukka

Repeat

DrawImage kuva,0,0

PositionObject hiiri,MouseWX(),MouseWY()
ShowMouse OFF


If ObjectsOverlap(hiiri,uusi) And MouseHit(1) Then End
 'kun hiirellä painetaan uusi peli alkaa  korjaa end   
 'esim GOTO käskyllä ja se minne haluat menenvän koodissa esim peliin
If ObjectsOverlap (hiiri,poistu) And MouseHit(1) Then End
'kun hiirellä painetaan poistutaan pelistä

'-----------------------------------------------------------------------
'vaikka näin:  kun korjaat  ensin endin gotolla..

'Peli:

'kartta = loadmap ("Tähän tilemapin nimi.til","ja tähän Tilesetin nimi.png")
'JA kaikkea muuta mitä haluat peliin...

DrawScreen
Forever 
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: Helppo päävalikko

Post by Eräs cb koodaaja »

rami123 wrote:tässä olisi tälläinen valikko :lol:

Code: Select all

koodia 
Joo just. Ton tekemiseen meni varmaan about 10 minsaa.
Sitte. Miksi niitä objekteja käytetään valikoissa, kun ne saadaan helposti toteutettua ilmankin. Kuvilla tai ihan vaan piirtokomeinnoillakin saa tehtyä valikoita kohtuu helposti. Lisäksi erillisten kuvatiedostojen käyttö on turhaa, paitsi jos haluaa jotain uuber hienoo jota ei piirtokomeinnoilla voi tehdä.
Objekteja siis käytetään pelissä(siihen ne on tarkoitettu) ja kuvia tai piirtokomentoja valikoissa.
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Helppo päävalikko

Post by Koodiapina »

Ja miksi aliohjelma sijoitettaisiin silmukan sisälle?
User avatar
kaneli2000
Guru
Posts: 1059
Joined: Mon Mar 17, 2008 2:40 pm
Location: Lempäälä

Re: Helppo päävalikko

Post by kaneli2000 »

Emmä tiiä, kysy joltain muulta :D. En oo oikein menu-asioita harjotellu, paitsi tuota pelattavaa versiota.
I see the rainbow rising
Post Reply