Ammus ongelma (CB:stä en löytänyt)

Voit pyytää apua ohjelmointiongelmiin täältä.
Image
Member
Posts: 59
Joined: Sat May 09, 2009 3:28 pm

Re: Ammus ongelma (CB:stä en löytänyt)

Post by Image »

Niin, ja tuo pätkä poistaa ammuksen, jos se menee liian kauas.

Äänen nimi on minulla Media-kansiossa, jota en ole muokkaillut, Machine gun 1, ja koodissa on Machinegun1.
Lisäsin myös CloneCameraPositionin, että kamera seuraa ukkelia.
Uusi korjattu koodi
No toivottavasti nyt toimii x)
EDIT:

Toimmiii :D Muuten miten saa sellasen asetus valikon että voi valita resoluution ja äänen voimakkuuden jne.

Awaclus
Forum Veteran
Posts: 2939
Joined: Tue Aug 28, 2007 2:50 pm

Re: Ammus ongelma (CB:stä en löytänyt)

Post by Awaclus »

Image wrote:
EDIT:

Toimmiii :D Muuten miten saa sellasen asetus valikon että voi valita resoluution ja äänen voimakkuuden jne.

Resoluution valinta pelin alkuun (ennen median latausta) vaikka näin:

Code: Select all

AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"
DrawScreen
Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto peli
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto peli
    If KeyHit (cbkey3) Theh SCREEN 300, 6400, 0, 0: Goto peli
Forever
Resoluutiothan tuossa olivat päin honkia, mutta sait pointin.

Näin taas valitaan äänenvoimakkuus mihin tahansa päin peliä.

Code: Select all

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
DrawScreen
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
Until volume <> 10
Jos teet äänenvoimakkuuden näin, niin sitten, kun kirjoittaisit koodiin "PlaySound haulikko", niin kirjoitatkin "PlaySound haulikko, volume". Katsele sitten manuaalista vielä näitä komentoja, että
1. Osaat muokata koodia sellaiseksi, kuin haluat
2. Opit jotain
.
Image
Member
Posts: 59
Joined: Sat May 09, 2009 3:28 pm

Re: Ammus ongelma (CB:stä en löytänyt)

Post by Image »

Tänks, hei nyt on taas robleema, kun mulla on sellane jännä ohje valikko ja sit se tuleva asetukset valikko, niin miten voisi tehä silleen napin jossa lukee TAKAISIN ja siitä menee takaisin tai sitten kun painaa entteriä niin se menisi sinne päävalikkoon. Nyt siinä on sellane robleema (jos on "Ohjeet" valikossa) niin painaa mitä tahansa näppäintä ja se menee peliin.. toivottavasti jotain selvää sai.
EDIT:

Tuo ongelma on jotenkin korjattu toistaiseksi. Nyt tulis tällänen kun menen tässä tuonne "Asetukset" valikkoon nii se pysähtyy koko peli? Apua? ps. sori tää älytön kysely :s mä en vaan löydä tuolta manuaalista tai muualta foorumilta paljoa mitään.. ja ajattelin että tähän olisi ollut sama laittaa tuo onkelma.

Code: Select all

Const VALIKKO_KOKO = 4 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
SCREEN 550,413

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="Uusi peli" //uus peli
    valinta(1)="Lataa peli" //lataa peli
    valinta(2)="Ohjeet" //ja poistu
    valinta(3)="Asetukset"
    valinta(4)="Lopeta"


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 Goto paikka1
If p=1 Then MakeError "lol" 
If p=2 Then End 
Repeat

If p=3 Then Gosub paikka2


 DrawScreen

Until EscapeKey()


End



paikka2:
Locate 50,50
AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"
DrawScreen
Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto paikka1 
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto paikka1
    If KeyHit (cbkey3) Then SCREEN 300, 6400, 0, 0: Goto paikka1


Locate 100,150

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
DrawScreen
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
Until volume <> 10
Forever
Return


If p=3 Then End





paikka1:

FrameLimit 40
SCREEN 640,480,16,cbfullscreen

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

ukko1 = LoadObject ("Media\soldier.bmp",72)

ääniAmmu = LoadSound ("Media\machine gun 1.wav")

SetupCollision ukko1, kartta, 1, 4, 2

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type



pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

Repeat

   
    If LeftKey() Then TurnObject ukko1,5
    If RightKey() Then TurnObject ukko1,-5
    If UpKey() Then MoveObject ukko1,2
    If DownKey() Then MoveObject ukko1,-2
   CloneCameraPosition ukko1
        If KeyDown(cbKeySpace) And reload=0 Then
        PlaySound ääniAmmu,50

        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)

        CloneObjectPosition luoti\obj,ukko1               

        CloneObjectOrientation luoti\obj,ukko1           
        reload=5       
    EndIf
   
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
       
    Next luoti

   


DrawGame

   
    DrawScreen

Until EscapeKey()
[/edit]
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Ammus ongelma (CB:stä en löytänyt)

Post by skorpioni-cb »

Image wrote:Tänks, hei nyt on taas robleema, kun mulla on sellane jännä ohje valikko ja sit se tuleva asetukset valikko, niin miten voisi tehä silleen napin jossa lukee TAKAISIN ja siitä menee takaisin tai sitten kun painaa entteriä niin se menisi sinne päävalikkoon. Nyt siinä on sellane robleema (jos on "Ohjeet" valikossa) niin painaa mitä tahansa näppäintä ja se menee peliin.. toivottavasti jotain selvää sai.
EDIT:

Tuo ongelma on jotenkin korjattu toistaiseksi. Nyt tulis tällänen kun menen tässä tuonne "Asetukset" valikkoon nii se pysähtyy koko peli? Apua? ps. sori tää älytön kysely :s mä en vaan löydä tuolta manuaalista tai muualta foorumilta paljoa mitään.. ja ajattelin että tähän olisi ollut sama laittaa tuo onkelma.

Code: Select all

Const VALIKKO_KOKO = 4 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
SCREEN 550,413

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="Uusi peli" //uus peli
    valinta(1)="Lataa peli" //lataa peli
    valinta(2)="Ohjeet" //ja poistu
    valinta(3)="Asetukset"
    valinta(4)="Lopeta"


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 Goto paikka1
If p=1 Then MakeError "lol" 
If p=2 Then End 
Repeat

If p=3 Then Gosub paikka2


 DrawScreen

Until EscapeKey()


End



paikka2:
Locate 50,50
AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"
DrawScreen
Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto paikka1 
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto paikka1
    If KeyHit (cbkey3) Then SCREEN 300, 6400, 0, 0: Goto paikka1


Locate 100,150

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
DrawScreen
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
Until volume <> 10
Forever
Return


If p=3 Then End





paikka1:

FrameLimit 40
SCREEN 640,480,16,cbfullscreen

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

ukko1 = LoadObject ("Media\soldier.bmp",72)

ääniAmmu = LoadSound ("Media\machine gun 1.wav")

SetupCollision ukko1, kartta, 1, 4, 2

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type



pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

Repeat

   
    If LeftKey() Then TurnObject ukko1,5
    If RightKey() Then TurnObject ukko1,-5
    If UpKey() Then MoveObject ukko1,2
    If DownKey() Then MoveObject ukko1,-2
   CloneCameraPosition ukko1
        If KeyDown(cbKeySpace) And reload=0 Then
        PlaySound ääniAmmu,50

        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)

        CloneObjectPosition luoti\obj,ukko1               

        CloneObjectOrientation luoti\obj,ukko1           
        reload=5       
    EndIf
   
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
       
    Next luoti

   


DrawGame

   
    DrawScreen

Until EscapeKey()
[/edit]
Älä laita molempia asetuksia samaan, koska silloin molemmat valitaan. Voisit laittaa esim. Näin, että siirryt näyttötila-asetuksista gotolla ääniin tai laita kaksi erillistä valikkolohkoa asetukset-paikkaan. Koodina:

Code: Select all

Const VALIKKO_KOKO = 4 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
SCREEN 550,413

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="Uusi peli" //uus peli
    valinta(1)="Lataa peli" //lataa peli
    valinta(2)="Ohjeet" //ja poistu
    valinta(3)="Asetukset"
    valinta(4)="Lopeta"


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 Goto paikka1
If p=1 Then MakeError "lol" 
If p=2 Then End 
Repeat

If p=3 Then Gosub paikka2


 DrawScreen

Until EscapeKey()


End



paikka2:


const MÄÄRÄ=1

dim valikko(MÄÄRÄ)

valikko(0)="Resoluutio"
valikko(1)="Äänen voimakkuus"

While Not KeyHit(cbkeyreturn)
    For i=0 To MÄÄRÄ //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 resu
if p=1 then goto ääni

paikka1:

FrameLimit 40
SCREEN 640,480,16,cbfullscreen

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

ukko1 = LoadObject ("Media\soldier.bmp",72)

ääniAmmu = LoadSound ("Media\machine gun 1.wav")

SetupCollision ukko1, kartta, 1, 4, 2

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type



pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

Repeat

   
    If LeftKey() Then TurnObject ukko1,5
    If RightKey() Then TurnObject ukko1,-5
    If UpKey() Then MoveObject ukko1,2
    If DownKey() Then MoveObject ukko1,-2
   CloneCameraPosition ukko1
        If KeyDown(cbKeySpace) And reload=0 Then
        PlaySound ääniAmmu,50

        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)

        CloneObjectPosition luoti\obj,ukko1               

        CloneObjectOrientation luoti\obj,ukko1           
        reload=5       
    EndIf
   
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
       
    Next luoti

   


DrawGame

   
    DrawScreen

Until EscapeKey()

resu:

Locate 50,50
AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"

Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto paikka1 
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto paikka1
    If KeyHit (cbkey3) Then SCREEN 300, 6400, 0, 0: Goto paikka1
  DrawScreen
forever 

ääni:

Locate 100,150

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
  DrawScreen
Until volume <> 10

Ja tämä on ehkä vähän offia, mutta:

@Chaosworm: Mitä järkeä laittaa DrawScreen pois silmukasta, kun
Manuaali wrote:... DRAWSCREEN. DRAWSCREEN-komentoa ei kannata käyttää kuin kerran ohjelmassasi, yleensä pääloopin lopussa. ...
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Image
Member
Posts: 59
Joined: Sat May 09, 2009 3:28 pm

Re: Ammus ongelma (CB:stä en löytänyt)

Post by Image »

skorpioni-cb wrote:
Image wrote:Tänks, hei nyt on taas robleema, kun mulla on sellane jännä ohje valikko ja sit se tuleva asetukset valikko, niin miten voisi tehä silleen napin jossa lukee TAKAISIN ja siitä menee takaisin tai sitten kun painaa entteriä niin se menisi sinne päävalikkoon. Nyt siinä on sellane robleema (jos on "Ohjeet" valikossa) niin painaa mitä tahansa näppäintä ja se menee peliin.. toivottavasti jotain selvää sai.
EDIT:

Tuo ongelma on jotenkin korjattu toistaiseksi. Nyt tulis tällänen kun menen tässä tuonne "Asetukset" valikkoon nii se pysähtyy koko peli? Apua? ps. sori tää älytön kysely :s mä en vaan löydä tuolta manuaalista tai muualta foorumilta paljoa mitään.. ja ajattelin että tähän olisi ollut sama laittaa tuo onkelma.

Code: Select all

Const VALIKKO_KOKO = 4 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
SCREEN 550,413

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="Uusi peli" //uus peli
    valinta(1)="Lataa peli" //lataa peli
    valinta(2)="Ohjeet" //ja poistu
    valinta(3)="Asetukset"
    valinta(4)="Lopeta"


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 Goto paikka1
If p=1 Then MakeError "lol" 
If p=2 Then End 
Repeat

If p=3 Then Gosub paikka2


 DrawScreen

Until EscapeKey()


End



paikka2:
Locate 50,50
AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"
DrawScreen
Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto paikka1 
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto paikka1
    If KeyHit (cbkey3) Then SCREEN 300, 6400, 0, 0: Goto paikka1


Locate 100,150

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
DrawScreen
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
Until volume <> 10
Forever
Return


If p=3 Then End





paikka1:

FrameLimit 40
SCREEN 640,480,16,cbfullscreen

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

ukko1 = LoadObject ("Media\soldier.bmp",72)

ääniAmmu = LoadSound ("Media\machine gun 1.wav")

SetupCollision ukko1, kartta, 1, 4, 2

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type



pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

Repeat

   
    If LeftKey() Then TurnObject ukko1,5
    If RightKey() Then TurnObject ukko1,-5
    If UpKey() Then MoveObject ukko1,2
    If DownKey() Then MoveObject ukko1,-2
   CloneCameraPosition ukko1
        If KeyDown(cbKeySpace) And reload=0 Then
        PlaySound ääniAmmu,50

        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)

        CloneObjectPosition luoti\obj,ukko1               

        CloneObjectOrientation luoti\obj,ukko1           
        reload=5       
    EndIf
   
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
       
    Next luoti

   


DrawGame

   
    DrawScreen

Until EscapeKey()
[/edit]
Älä laita molempia asetuksia samaan, koska silloin molemmat valitaan. Voisit laittaa esim. Näin, että siirryt näyttötila-asetuksista gotolla ääniin tai laita kaksi erillistä valikkolohkoa asetukset-paikkaan. Koodina:

Code: Select all

Const VALIKKO_KOKO = 4 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
SCREEN 550,413

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="Uusi peli" //uus peli
    valinta(1)="Lataa peli" //lataa peli
    valinta(2)="Ohjeet" //ja poistu
    valinta(3)="Asetukset"
    valinta(4)="Lopeta"


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 Goto paikka1
If p=1 Then MakeError "lol" 
If p=2 Then End 
Repeat

If p=3 Then Gosub paikka2


 DrawScreen

Until EscapeKey()


End



paikka2:


const MÄÄRÄ=1

dim valikko(MÄÄRÄ)

valikko(0)="Resoluutio"
valikko(1)="Äänen voimakkuus"

While Not KeyHit(cbkeyreturn)
    For i=0 To MÄÄRÄ //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 resu
if p=1 then goto ääni

paikka1:

FrameLimit 40
SCREEN 640,480,16,cbfullscreen

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

ukko1 = LoadObject ("Media\soldier.bmp",72)

ääniAmmu = LoadSound ("Media\machine gun 1.wav")

SetupCollision ukko1, kartta, 1, 4, 2

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type



pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

Repeat

   
    If LeftKey() Then TurnObject ukko1,5
    If RightKey() Then TurnObject ukko1,-5
    If UpKey() Then MoveObject ukko1,2
    If DownKey() Then MoveObject ukko1,-2
   CloneCameraPosition ukko1
        If KeyDown(cbKeySpace) And reload=0 Then
        PlaySound ääniAmmu,50

        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)

        CloneObjectPosition luoti\obj,ukko1               

        CloneObjectOrientation luoti\obj,ukko1           
        reload=5       
    EndIf
   
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
       
    Next luoti

   


DrawGame

   
    DrawScreen

Until EscapeKey()

resu:

Locate 50,50
AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"

Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto paikka1 
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto paikka1
    If KeyHit (cbkey3) Then SCREEN 300, 6400, 0, 0: Goto paikka1
  DrawScreen
forever 

ääni:

Locate 100,150

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
  DrawScreen
Until volume <> 10

Ja tämä on ehkä vähän offia, mutta:

@Chaosworm: Mitä järkeä laittaa DrawScreen pois silmukasta, kun
Manuaali wrote:... DRAWSCREEN. DRAWSCREEN-komentoa ei kannata käyttää kuin kerran ohjelmassasi, yleensä pääloopin lopussa. ...
Sori ku lainasin koko viestin mutta ihan sama.. Nyt tässä huomasin tän viestin ja kopioin sen suoraan tonne CoolBasiciin ja rivillä 91 on joku

Code: Select all

If p=0 Then resu
if p=1 Then Goto ääni
Tuo resu? :O
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Ammus ongelma (CB:stä en löytänyt)

Post by skorpioni-cb »

Resu=resoluutio.
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Image
Member
Posts: 59
Joined: Sat May 09, 2009 3:28 pm

Re: Ammus ongelma (CB:stä en löytänyt)

Post by Image »

skorpioni-cb wrote:Resu=resoluutio.
mut tulee errori sellane.. kopsaahan toi koodi ja kato
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Ammus ongelma (CB:stä en löytänyt)

Post by skorpioni-cb »

:oops: Goto unohtui siitä

Code: Select all

If p=0 then resu
jutusta.
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 3:48 pm
Location: Turku

Re: Ammus ongelma (CB:stä en löytänyt)

Post by skorpioni-cb »

Code: Select all

Const VALIKKO_KOKO = 4 //taulukon koko, valintojen määrä -1 eli jos valintoja on 3 niin tähän tulee numero 2! TAULUKKO ALKAA NOLLASTA
SCREEN 550,413

Dim valinta(VALIKKO_KOKO) As String //luodaan taulukko valinnoille
    valinta(0)="Uusi peli" //uus peli
    valinta(1)="Lataa peli" //lataa peli
    valinta(2)="Ohjeet" //ja poistu
    valinta(3)="Asetukset"
    valinta(4)="Lopeta"


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 Goto paikka1
If p=1 Then MakeError "lol"
If p=2 Then End
Repeat

If p=3 Then Goto paikka2


DrawScreen

Until EscapeKey()

paikka1:

FrameLimit 40

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

ukko1 = LoadObject ("Media\soldier.bmp",72)

ääniAmmu = LoadSound ("Media\machine gun 1.wav")

SetupCollision ukko1, kartta, 1, 4, 2

Type AMMUS 'luo kokoelma, jonka nimi on AMMUS
    Field obj 'yksi kenttä nimeltään 'obj'
End Type



pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

Repeat

   
    If LeftKey() Then TurnObject ukko1,5
    If RightKey() Then TurnObject ukko1,-5
    If UpKey() Then MoveObject ukko1,2
    If DownKey() Then MoveObject ukko1,-2
   CloneCameraPosition ukko1
        If KeyDown(cbKeySpace) And reload=0 Then
        PlaySound ääniAmmu,50

        luoti.AMMUS = New(AMMUS)
        luoti\obj=CloneObject(pati)

        CloneObjectPosition luoti\obj,ukko1               

        CloneObjectOrientation luoti\obj,ukko1           
        reload=5       
    EndIf
   
    If reload>0 Then reload=reload-1


    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
       
    Next luoti

   


DrawGame

   
    DrawScreen

Until EscapeKey()

paikka2:

Const MÄÄRÄ=1

Dim valikko(MÄÄRÄ)

valikko(0)="Resoluutio"
valikko(1)="Äänen voimakkuus"

While Not KeyHit(cbkeyreturn)
    For i=0 To MÄÄRÄ //käydään läpi kaikki valinnat
       Color cbred //vaihdetaan väri punaiseksi
       If i=p Then Box ScreenWidth()/2-(TextWidth(valikko(i))/2)-9,ScreenHeight()/2+i*TextHeight(valikko(i))*2-9,TextWidth(valikko(i))+18,TextHeight(valikko(i))+18,0 //piirretään laatikko valitun kohdan ympärille... - Matikkaa :)
       Color cbwhite //vaihdetaan väri valkoiseksi
       Text ScreenWidth()/2-(TextWidth(valikko(i))/2),ScreenHeight()/2+i*TextHeight(valikko(i))*2,valikko(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>MÄÄRÄ Then p=0 //jos mennään yli vaointojen määrän palataan alkuun
    If p<0 Then p=MÄÄRÄ //jos mennään ali 0 mennään maksimivalintaan

DrawScreen

Wend

If p=0 Then Goto resu
If p=1 Then Goto ääni


resu:

Locate 50,50
AddText "Valitse resoluutio"
AddText "1. 3 * 64 Window"
AddText "2. 3 * 64 Fullscreen"
AddText "3. 300 * 6400 Fullscreen"

Repeat
    If KeyHit (cbkey1) Then SCREEN 3, 64: Goto paikka1
    If KeyHit (cbkey2) Then SCREEN 3, 64, 0, 0: Goto paikka1
    If KeyHit (cbkey3) Then SCREEN 300, 6400, 0, 0: Goto paikka1
  DrawScreen
Forever

ääni:

Locate 100,150

AddText "Valitse voimakkuus"
AddText "1. Ei ääntä"
AddText "2. ½ ääni"
AddText "3. kokonainen ääni"
volume = 10
Repeat
    If KeyHit (cbkey1) Then volume = 0
    If KeyHit (cbkey2) Then volume = 50
    If KeyHit (cbkey3) Then volume = 100
  DrawScreen
Until volume <> 10
Muuten toimiva, mutta valikko ja värit ei toimi.
En tiedä, mitä tiedän, mutta tiedän ettei se ole mitään kaunista.

I know not what I know, but I do know that it's not beautiful.
Post Reply