miten tehä uuspeli,lopeta valikon

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

miten tehä uuspeli,lopeta valikon

Post by nassi-setä » Sat Sep 01, 2007 9:11 pm

miten sellasen vois toteuttaa helposti?

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

Re: miten tehä uuspeli,lopeta valikon

Post by koodaaja » Sat Sep 01, 2007 9:45 pm

Code: Select all

valinta = 0
Repeat
    Text 10, 10, "Uusi peli"
    Text 10, 30, "Lopeta  "
    Text 85, 10+valinta*20, "<--"
    if KeyHit(cbkeyup) Or KeyHit(cbkeydown) Then valinta = NOT valinta
    DrawScreen
Until Keyhit( 28 )
If valinta = 1 Then End

Print "peli"
WaitKey

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: miten tehä uuspeli,lopeta valikon

Post by nassi-setä » Sun Sep 02, 2007 2:37 pm

miten tehä sillee et ku elkku loppuu nii palaa takas alkuun

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

Re: miten tehä uuspeli,lopeta valikon

Post by Henkru » Sun Sep 02, 2007 2:58 pm

Koodaajan esimerkkiä pohjana käyttäen vaikka näin.

Code: Select all

SAFEEXIT OFF
Repeat
    If MODE = 0 Then 
        Text 10, 10, "Uusi peli"
        Text 10, 30, "Lopeta  "
        Text 85, 10+valinta*20, "<--"
        If KeyHit(cbkeyup) Or KeyHit(cbkeydown) Then valinta = NOT valinta
        
        If KeyHit(28) And valinta = 1 Then End
        If KeyHit(28) And valinta = 0 Then MODE = 1
    ElseIf MODE = 1 
        Text 0,0, "Tässsä Peli. "
        Text 0, 13, "Takaisin päävalikkoon pääset painamalla ESC"
        If KeyHit(1) Then MODE = 0
    EndIf 
    DrawScreen
Forever 

Eli jos MODE-muutuja on 0 niin ollaan päävalikossa ja jos se on 1 niin ollaan itsepelissä.

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

Re: miten tehä uuspeli,lopeta valikon

Post by koodaaja » Sun Sep 02, 2007 5:21 pm

Itse tekisin sen näin:

Code: Select all

valinta = 0
Repeat
    Text 10, 10, "Uusi peli"
    Text 10, 30, "Lopeta  "
    Text 85, 10+valinta*20, "<--"
    If KeyHit(cbkeyup) Or KeyHit(cbkeydown) Then valinta = NOT valinta
    If Keyhit(28) And valinta = 0 Then peli()
    DrawScreen
Until (KeyHit(28) And valinta = 1)

Function peli()
    ClearKeys
    Repeat
        Text 10, 10, "peli"
        DrawScreen
    Until Keyhit(28)
    ClearKeys
    Return 0
End Function

FuJi
Member
Posts: 70
Joined: Tue Aug 28, 2007 3:09 pm

Re: miten tehä uuspeli,lopeta valikon

Post by FuJi » Sun Sep 02, 2007 5:31 pm

Minä itse käyttäisin funktiota nappien luontiin.

Tässä funktio:

Code: Select all

Function nappi(x,y,txt$)
   w = 120
   h = TextHeight(txt$)
   a = 0
   If MouseX()>x And MouseY()>y And MouseX()<x+w+4 And MouseY()<y+h+4 Then a = 1
   If a Then Color cbDarkBlue Else Color cbLightBlue
   Box x, y, w+4,h+4
   Color 0,0,0
   Box x, y, w+4, h+4, 0
   Text x+2, y+2, txt$
   If a And MouseHit(1) Then Return 1
End Function
Ja käytännössä tämä toimisi näin:

Code: Select all

if nappi(15,15,"Nappi") Then End
Noiden numeroiden tilalle tulee napin koordinaatit (x,y) ja tuolla lopussa tuo end lopettaa ohjelman.

nassi-setä
Newcomer
Posts: 25
Joined: Tue Aug 28, 2007 8:29 pm

Re: miten tehä uuspeli,lopeta valikon

Post by nassi-setä » Thu Sep 06, 2007 5:46 pm

joo sit taas kyselisin tyhmii
miten vioisi tehä kaupan pelii?

FuJi
Member
Posts: 70
Joined: Tue Aug 28, 2007 3:09 pm

Re: miten tehä uuspeli,lopeta valikon

Post by FuJi » Sat Sep 08, 2007 1:15 pm

nassi-setä wrote:joo sit taas kyselisin tyhmii
miten vioisi tehä kaupan pelii?
Itselläni on tällaisen kaupan koodi yhdessä pelissäni, jota en ole vähään aikaa tehnyt.
Sen voi toteuttaa esimerkiksi pelkillä if ehtolauseilla. Tässä pieni esimerkkikoodi if ehtolauseilla toteutettuu kauppasysteemiin:

Code: Select all

SCREEN 800,600
ClsColor cbBlue

raha = 1000 //rahaa aloitettaessa

//tuotteiden muuttuja (onko tuote ostettu)
prosessori = 2 //2 = ei ostettu, 1 = ostettu
emolevy = 2
kovalevy = 2

kauppa: 
Cls

Repeat  
    Text 10,10, "Rahaa: " +raha 
    Text 10,30, "Paina ENTER nähdäksesi ostamasi tavarat."
    
    If nappi(100,500, "Prosessori 50e") Then 
        prosessori = 1
        raha -50
        //jos raha ei riitä
        If raha < 50 Then Gosub ei_rahaa
    EndIf 
    
    If nappi(230,500, "Emolevy 75e") Then 
        emolevy = 1
        raha -75
        If raha < 75 Then Gosub ei_rahaa
    EndIf 
    
    If nappi(100,520, "Kovalevy 80e") Then 
        kovalevy = 2
        raha -80
        If raha < 80 Then Gosub ei_rahaa
    EndIf
    
    
    If KeyDown(cbKeyReturn) Then Gosub tavarat
    
DrawScreen
Forever 


ei_rahaa:
Cls 

Text 10,10, "Sinulla ei ole tarpeeksi rahaa."
Text 10,30, "Paina ENTER palataksesi takaisin"

DrawScreen
WaitKey
Return 

tavarat: 
Cls 

Repeat 
    Text 10,10, "Paina ENTER palataksesi takaisin."

    If prosessori = 1 Then 
        Text 100,50, "Prosessori: 3.0GHz"
    Else 
        Text 100,50, "Ei prosessoria"
    EndIf 
    
    If emolevy = 1 Then 
        Text 100,80, "Emolevy: Versio 1"
    Else
        Text 100,80, "Ei emolevyä"
    EndIf 
    
    If kovalevy = 1 Then 
        Text 100,110, "Kovalevy: 100GB"
    Else 
        Text 100,110, "Ei kovalevyä"
    EndIf
    
    If KeyDown(cbKeyReturn) Then Gosub kauppa

DrawScreen
Forever  


//nappi funktio
Function nappi(x,y,txt$)
   w = 120
   h = TextHeight(txt$)
   a = 0
   If MouseX()>x And MouseY()>y And MouseX()<x+w+4 And MouseY()<y+h+4 Then a = 1
   If a Then Color cbDarkBlue Else Color cbLightBlue
   Box x, y, w+4,h+4
   Color 0,0,0
   Box x, y, w+4, h+4, 0
   Text x+2, y+2, txt$
   If a And MouseHit(1) Then Return 1
End Function 
Tästä voit sitten itse muokata haluamasi.

Post Reply