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.