Page 134 of 154

Re: Tyhmät kysymykset

Posted: Wed Mar 25, 2009 5:34 pm
by valscion
cool-driver wrote:Mihin tuo kohtaan koodia tuo koodinpätkä pitää pistää ja mihin EndIf?

E: Laitoin tuon muuttujien alle ja heti loppuun ja muutin sen tähän muotoon:

Code: Select all

If päivä = 31 Then
    päivä = 1
    kuukausi + 1
endif
Mutta ei toimi, kun päivä on 30 ja valitsen seuraava päivä, niin päivä on tuosta koodista huolimatta 31. Mikä mättää?
Koodia esille niin voidaan auttaa tarkemmin. Kai tarkistat päivän sen jälkeen kun olet valinnut seuraava päivä? Eli siis kun teet sen "seuraava päivä" niin pistä tuo koodinpätkä siihen ennen kuin päivämäärä vaihtuu näytöllä.

Re: Tyhmät kysymykset

Posted: Wed Mar 25, 2009 5:41 pm
by rami123
Miksi tämä "siirtyminen" ei toimi?

harjoituskentästä -> tehtävään = tulee mav

Code: Select all

harjoitus:
ClearObjects
ClearText
ClearKeys
While luku<100
    AddText "Ladattu... "+luku+"%"
    luku = Min( luku+Rand(1,30), 100) // lisätään lukuun randomisti ja rajoitetaan se 100:aan
    DrawScreen
    Wait Rand(500,1500)
Wend

// näytetään vielä lopuksi 100%
AddText "Ladattu... "+luku+"%"
DrawScreen
Wait 500

SCREEN 800,600
SetWindow "Earth at danger1 harjoitus",0,"Oletko aivan varma?"
FrameLimit 40

//tehdään tyypit
Type BULLETS
    Field obj
    Field dmg
    Field speed
    Field hp
End Type

Type vihut
  Field obj
  Field id
  Field hp
  Field dmg
  Field score
EndType

Type animaatio
  Field obj
  Field lifetime
EndType


//pelin maasto
grass=MakeObjectFloor()
lawn=LoadImage("metsä.png")
PaintObject grass,lawn
PositionObject grass,0,0, -2

//ladataan kaikki pelin objectit

pati = LoadObject("luoti.png")
hiiri = LoadObject   ("tähtäin.png")
pelaaja = LoadObject ("pistooli.bmp",72)
miekkaase = LoadObject ("miekka.png",72)
miekkaukko = LoadObject ("miekkamies.bmp",72)
pistooliukko = LoadObject ("pistooli.bmp",72)
konepistooliukko = LoadObject ("rynnakkokivaari.bmp",72)
osuma  = LoadAnimObject("osuma.png",40,40,0,4)
ShowObject osuma,OFF
ShowObject miekkaase,OFF

ShowObject pati,OFF
ShowObject miekkaukko,OFF
ShowObject pistooliukko,OFF
ShowObject konepistooliukko,OFF

////vihollisen jutut////
vihollinen1 = LoadObject ("monsteri1.png",72)
vihollinen2 = LoadObject ("monsteri2.png",72)
vihollinen3 = LoadObject ("orkki.bmp",72)
ShowObject vihollinen1,OFF
ShowObject vihollinen2,OFF
ShowObject vihollinen3,OFF

bossi1 = LoadObject ("boss1.png",72)
SetupCollision bossi1,pelaaja,2,2,2
     
bossi2 = LoadObject ("boss2.png",72)
SetupCollision bossi2,pelaaja,2,2,2

//ladataan musiikit ja äänet
pistooli     = LoadSound ("colt45.ogg")
konepistooli = LoadSound ("machinegun.ogg")
miekka       = LoadSound ("sword.ogg")
lyöminen     = LoadSound ("bulletbody.ogg")
osui         = LoadSound ("bulletbody.ogg")
vihollinen   = LoadSound ("snorker 1.ogg")

musiikki1 = PlaySound ("taustamusiikki1.ogg")

yläpalkki = LoadImage ("ylapalkki2.png")
sumu = LoadImage ("sumu.png")
ruumis = LoadObject    ("ruumis1.png")
ruumisbossi1 = CloneObject (ruumis) : ShowObject ruumisbossi1,OFF
ruumisbossi2 = CloneObject (ruumis) : ShowObject ruumisbossi2,OFF
ruumisbossi3 = CloneObject (ruumis) : ShowObject ruumisbossi3,OFF
kuolit = LoadObject ("ruumis.png")

ShowObject kuolit,OFF
ShowObject ruumis, OFF

//laitetaan pelaajan hp , voima ,  kaikkea..
hp = 1000
voima = 5
ammukset = 35
tapot = 0
tapotpisteet = 50

//ASEET

ase = 1

ShowMouse OFF 

ObjectOrder pelaaja,1
ObjectOrder osuma,1

      Repeat





If SoundPlaying(musiikki1)=0 Then
musiikki1 = PlaySound ("taustamusiikki1.ogg")
If Rand(1,2)=1 Then
SetSound musiikki1,0,100,-100
Else
SetSound musiikki1,0,100,100
EndIf
EndIf



    //pelaajan ohjaus
   
   
    PositionObject hiiri,MouseWX(),MouseWY()
    PointObject pelaaja, hiiri
    MoveObject pelaaja, (UpKey()+KeyDown(cbkeyW)-KeyDown(cbkeyS)-DownKey() ) * 2
   
   
    ///////////////////////
    ////// AMPUMINEN //////
    ///////////////////////
   

    If reload = 0 And ammukset>0 And ase<>0 Then
   

        If ammuttu = 1 And ase = 1 Then esto=ON
       
        If MouseDown(1) And esto=OFF Then
       
            newBullet.BULLETS= New(BULLETS)
            newBullet\obj    = CloneObject(pati)
            newbullet\dmg    = voima
            newbullet\speed  = speedupg

           
            CloneObjectPosition newBullet\obj,pelaaja
            CloneObjectOrientation newbullet\obj,pelaaja
            MoveObject newBullet\obj,24
            ammukset - 1
           
            Select ase
           
                Case 1 ' Pistooli
                    PlaySound pistooli, 50
                    reload = 4
                Case 2 ' Konekiväri
                    PlaySound konepistooli,50
                    reload = 8
            EndSelect
            ammuttu = 1
        EndIf
    EndIf   
   
 
    If MouseUp(1) Then esto=OFF : ammuttu = 0
    If reload>0 Then reload-1 // vähennetään vain kun on realoadia...
   
    ////aseen vaihto
   
    //käytä elselauseita kun mahdollista
    If KeyHit (cbkey1)
        PaintObject pelaaja,pistooliukko
        ShowObject miekkaase,OFF
        ase = 1
       
    ElseIf KeyHit (cbkey2)
        PaintObject pelaaja,konepistooliukko
        ShowObject miekkaase,OFF
        ase = 2
       
    ElseIf KeyHit (cbkey3)
        PaintObject pelaaja,miekkaukko
        ShowObject miekkaase,ON  // Showobject komennon määrittämistä ei tarvitse tehdä joka kierros..
        ase = 0
    EndIf
   

   
    If ase=0  Then     
PositionObject miekkaase, ObjectX(pelaaja)+lisäysX_suunnassa, ObjectY(pelaaja)+lisäys_Y_suunnassa
miekkaangle = WrapAngle(miekkaangle + (KeyDown(cbkeyA)-KeyDown(cbkeyD)) * 10 )
RotateObject miekkaase, miekkaangle + ObjectAngle(pelaaja)
        // ensin ylempi rivi, koska alempirivi tarvitsee sitä, että tarkistus ei mene kierrosta jäljessä.
    EndIf


    //ALIENIT

    If luo>80
        newAlien.vihut= New(vihut)
        newAlien\obj=CloneObject(vihollinen1)
       ScreenPositionObject newAlien\obj,Rand(0,ScreenWidth()),Rand(0,screenheight())
       ObjectOrder newalien\obj,1
       

        newAlien\id=Rand(1,3)
        Select newAlien\id  'käytä mielummin selectiä on selvempi
            Case 1
                newAlien\hp=Rand(130,190):newAlien\dmg=Rand(2,5):newAlien\score=Rand(10,30)
            Case 2
                PaintObject newAlien\obj,vihollinen2
                newAlien\hp=Rand(300,320):newAlien\dmg=Rand(5,8):newAlien\score=Rand(15,35)
            Case 3
                PaintObject newAlien\obj,vihollinen3
                newAlien\hp=Rand(280,340):newAlien\dmg=Rand(7,9):newAlien\score=Rand(35,50)
            Default
                MakeError "Annetulle IDlle ei ole asetettu toimintoa"
        EndSelect

        luo=0         
    EndIf
   
    luo+1
               
     
               
    For iAlien.vihut= Each vihut
   

   
        If iAlien\ID>0 Then ' jos on elossa
       
            sidle=Rand(-20,20)
       
            If CountCollisions(iAlien\obj) Then MoveObject iAlien\obj,0,sidle
            If ObjectSight (iAlien\obj,pelaaja) Then MoveObject iAlien\obj,1 Else MoveObject iAlien\obj,0
            PointObject iAlien\obj,pelaaja
            If ObjectsOverlap(iAlien\obj,pelaaja) Then hp-iAlien\dmg
       
          For ibullet.bullets=Each bullets
                If ObjectsOverlap(ibullet\obj,iAlien\obj) Then
                   
                    PlaySound osui,50
                    iAlien\hp-ibullet\dmg
                         
                EndIf
            Next ibullet
                   
            If ObjectsOverlap (pelaaja,iAlien\obj) Then           
                    iAlien\hp-4
                    newanim.animaatio= New(animaatio)
                    newanim\obj=CloneObject(osuma)
                     ObjectOrder newanim\obj,-1
                    PlayObject newanim\obj,0,4,0.1
                     If Timer()>aikaruumis+15 Then  CloneObjectPosition newanim\obj,pelaaja
                     aikaruumis=TIMER()
                    ObjectLife newanim\obj , 1000

                    EndIf 

          If ObjectsOverlap (miekkaase,ialien\obj) Then iAlien\hp-9

            If iAlien\hp<0 Then 
                tapotpisteet+1
                tapot+1
           
               If Timer()>record+100 Then
        blink=Not blink
        record=Timer()
    EndIf


             
           
                /////////////////////////////////
                ////////// RUUMIIN TEKO /////////
                /////////////////////////////////
               
                xx=ObjectX(iAlien\obj)
                yy=ObjectY(iAlien\obj)
                ShowObject iAlien\obj, OFF
           
                iAlien\obj = CloneObject(ruumis)
                PositionObject iAlien\obj,xx,yy
                ShowObject iAlien\obj, ON
                ObjectOrder iAlien\obj,-1
                iAlien\ID=-1 ' estetään toiminnot
                ObjectLife iAlien\obj,300 'poistetaan tietyn ajan kuluttua
                ObjectOrder ruumis,-1
               
            EndIf
           EndIf
    Next iAlien
             

             
             
    For iBullet.BULLETS= Each BULLETS
        If CountCollisions(ibullet\obj) Then ibullet\hp-32
        MoveObject iBullet\obj,6'llikutetaan luotia
        If Distance2(iBullet\obj,pelaaja)>200 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
            DeleteObject iBullet\obj
            Delete iBullet
        EndIf
    Next iBullet
   
   
   
   
   
   
   
  
    ////Bossien ammpuminen
                     For ibullet.bullets=Each bullets
                      If ObjectsOverlap (bossi1,ibullet\obj) Then
                            bossi1hp-ibullet\dmg
                        EndIf
                    Next ibullet
                   
                   
                     For ibullet.bullets=Each bullets
                      If ObjectsOverlap (bossi2,ibullet\obj) Then
                            bossi2hp-ibullet\dmg
                        EndIf
                    Next ibullet
                   

////
           
        PointObject bossi1,pelaaja
If ObjectSight (bossi1,pelaaja) Then MoveObject bossi1, 1 Else MoveObject bossi1,0         
               If ObjectsOverlap (bossi1,pelaaja) Then hp-3

         
             If bossi1hp<0 Then
            If pisteetlisätty1=0 Then
              tapot+1
              score+2000
              bossit+1
    //    CloneObjectPosition die1,bossi1
      //    ShowObject die1,ON
          ShowObject bossi1,OFF
          PositionObject bossi1,90000000,900000000
          MoveObject bossi1,-1
              pisteetlisätty1=1
               EndIf         
                   
            EndIf
If tapot=30 Then
wait 5000
Goto onnistuit1
EndIf 

    DrawGame

    // Valikko
   
    DrawImage sumu,0,0
    DrawImage yläpalkki ,0,0
    Text 10,10,"PISTEITÄ :"+tapotpisteet
    Text 200,10,"TAPOT :"+tapot
    text 100,100,"FPS: "+fps()
   
    Text 20,30, "LISÄÄ HP(4) + 50hp - 30p"
    Text 20,45, "HP nyt = "+hp
    Text 250,30,"LISÄÄ VOIMAA(5) + 5 voima - 20p"
    Text 250,45,"VOIMA nyt = "+voima
    Text 500,30,"LISÄÄ AMMUKSIA(6) + 25 ammusta - 10p"
    Text 500,45,"AMMUKSIA nyt = "+ammukset
   
    '  tapotpisteet <> 30 tarkoittaa samaa kuin Not tapotpisteet=30
   
    // voit muuttaa nämä normaaleiksi if-lauseiksi jos haluat painaa napeja yhtäaikaa
    If KeyHit(cbkey4) And tapotpisteet>30
        hp+50
        tapotpisteet-30
    ElseIf KeyHit(cbkey5) And tapotpisteet>20
        voima+5
        tapotpisteet-20
    ElseIf KeyHit(cbkey6) And tapotpisteet>10
        ammukset+25
        tapotpisteet-10
    EndIf
   
   UpdateGame
   
    CloneCameraPosition pelaaja

    DrawScreen

    If KeyHit(cbkeyf12) Then ScreenShot "C:\capture.bmp"
Forever
/////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////


onnistuit1:

ClearObjects
ClearText
ClearKeys
SCREEN 400,400
Text 150,150,"Hyvä! . pääsit tehtävän Läpi!"
Repeat
Wait 5000 
Goto tehtävä1video

DrawScreen
Forever

///////////////////////////////////////////////////

tehtävä1video:

ClearObjects
ClearText
ClearKeys

video = PlayAnimation ("tehtävä1.wmv")
w= AnimationWidth(video)
h= AnimationHeight(video)
StopAnimation video

SCREEN w,h

video= PlayAnimation("tehtävä1.wmv")

Repeat
    DrawAnimation video
  If AnimationPlaying(video) = 0 Then Goto tehtävä1
  
DrawScreen
Forever


















tehtävä1:


















ClearObjects
ClearText
ClearKeys
Color cbred 
While luku<100
    AddText "Ladattu... "+luku+"%"
    luku = Min( luku+Rand(1,30), 100) // lisätään lukuun randomisti ja rajoitetaan se 100:aan
    DrawScreen
    Wait Rand(500,1500)
Wend

// näytetään vielä lopuksi 100%
AddText "Ladattu... "+luku+"%"
DrawScreen
Wait 500

SCREEN 800,600
SetWindow "Earth at danger1 tehtävä1",0,"Oletko aivan varma?"
FrameLimit 40


//pelin maasto
kartta = LoadMap("tavallinenmap1.til","TILESET.png")

//ladataan kaikki pelin objectit

pati = LoadObject("luoti.png")
hiiri = LoadObject   ("tähtäin.png")
pelaaja = LoadObject ("pistooli.bmp",72)
SetupCollision pelaaja, kartta, 1, 4, 2
miekkaase = LoadObject ("miekka.png",72)
miekkaukko = LoadObject ("miekkamies.bmp",72)
pistooliukko = LoadObject ("pistooli.bmp",72)
konepistooliukko = LoadObject ("rynnakkokivaari.bmp",72)
osuma  = LoadAnimObject("osuma.png",40,40,0,4)
ShowObject osuma,OFF
ShowObject miekkaase,OFF

ShowObject pati,OFF
ShowObject miekkaukko,OFF
ShowObject pistooliukko,OFF
ShowObject konepistooliukko,OFF

////vihollisen jutut////
vihollinen1 = LoadObject ("monsteri1.png",72)
vihollinen2 = LoadObject ("monsteri2.png",72)
vihollinen3 = LoadObject ("orkki.bmp",72)
ShowObject vihollinen1,OFF
ShowObject vihollinen2,OFF
ShowObject vihollinen3,OFF

bossi1 = LoadObject ("boss1.png",72)
SetupCollision bossi1,pelaaja,2,2,2
SetupCollision bossi1, kartta, 1, 4, 2
     
bossi2 = LoadObject ("boss2.png",72)
SetupCollision bossi2,pelaaja,2,2,2
SetupCollision bossi2, kartta, 1, 4, 2

//ladataan musiikit ja äänet
pistooli     = LoadSound ("colt45.ogg")
konepistooli = LoadSound ("machinegun.ogg")
miekka       = LoadSound ("sword.ogg")
lyöminen     = LoadSound ("bulletbody.ogg")
osui         = LoadSound ("bulletbody.ogg")
vihollinen   = LoadSound ("snorker 1.ogg")

musiikki1 = PlaySound ("taustamusiikki1.ogg")

yläpalkki = LoadImage ("ylapalkki2.png")
sumu = LoadImage ("sumu.png")
ruumis = LoadObject    ("ruumis1.png")
ruumisbossi1 = CloneObject (ruumis) : ShowObject ruumisbossi1,OFF
ruumisbossi2 = CloneObject (ruumis) : ShowObject ruumisbossi2,OFF
ruumisbossi3 = CloneObject (ruumis) : ShowObject ruumisbossi3,OFF
kuolit = LoadObject ("ruumis.png")

ShowObject kuolit,OFF
ShowObject ruumis, OFF

//laitetaan pelaajan hp , voima ,  kaikkea..
hp = 1000
voima = 5
ammukset = 100
tapot = 0
tapotpisteet = 50

//ASEET

ase = 1

ShowMouse OFF 

ObjectOrder pelaaja,1
ObjectOrder osuma,1


For x=1 To MapWidth()
For y=1 To MapWidth()
If GetMap2(3,x,y)=1 Then PositionObject pelaaja,x*32-(ObjectSizeX(kartta)/2),-y*32+(ObjectSizeY(kartta)/2)
Next y
Next x

      Repeat


If SoundPlaying(musiikki1)=0 Then
musiikki1 = PlaySound ("taustamusiikki1.ogg")
If Rand(1,2)=1 Then
SetSound musiikki1,0,100,-100
Else
SetSound musiikki1,0,100,100
EndIf
EndIf

    //pelaajan ohjaus
    PositionObject hiiri,MouseWX(),MouseWY()
    PointObject pelaaja, hiiri
    MoveObject pelaaja, (UpKey()+KeyDown(cbkeyW)-KeyDown(cbkeyS)-DownKey() ) * 2
   
   
    ///////////////////////
    ////// AMPUMINEN //////
    ///////////////////////
   

    If reload = 0 And ammukset>0 And ase<>0 Then
   

        If ammuttu = 1 And ase = 1 Then esto=ON
       
        If MouseDown(1) And esto=OFF Then
       
            newBullet.BULLETS= New(BULLETS)
            newBullet\obj    = CloneObject(pati)
            newbullet\dmg    = voima
            newbullet\speed  = speedupg

           
            CloneObjectPosition newBullet\obj,pelaaja
            CloneObjectOrientation newbullet\obj,pelaaja
            MoveObject newBullet\obj,24
            ammukset - 1
           
            Select ase
                Case 1 ' Pistooli
                    PlaySound pistooli, 50
                    reload = 4
                Case 2 ' Konekiväri
                    PlaySound konepistooli,50
                    reload = 8
            EndSelect
            ammuttu = 1
        EndIf
    EndIf   
   
  
    If MouseUp(1) Then esto=OFF : ammuttu = 0
    If reload>0 Then reload-1 
   
    ////aseen vaihto
   
    //käytä elselauseita kun mahdollista
    If KeyHit (cbkey1)
        PaintObject pelaaja,pistooliukko
        ShowObject miekkaase,OFF
        ase = 1
       
    ElseIf KeyHit (cbkey2)
        PaintObject pelaaja,konepistooliukko
        ShowObject miekkaase,OFF
        ase = 2
       
    ElseIf KeyHit (cbkey3)
        PaintObject pelaaja,miekkaukko
        ShowObject miekkaase,ON  // Showobject komennon määrittämistä ei tarvitse tehdä joka kierros..
        ase = 0
    EndIf
   

   
    If ase=0  Then     
PositionObject miekkaase, ObjectX(pelaaja)+lisäysX_suunnassa, ObjectY(pelaaja)+lisäys_Y_suunnassa
miekkaangle = WrapAngle(miekkaangle + (KeyDown(cbkeyA)-KeyDown(cbkeyD)) * 10 )
RotateObject miekkaase, miekkaangle + ObjectAngle(pelaaja)
      
    EndIf




    //ALIENIT

    If luo>80
        newAlien.vihut= New(vihut)
        newAlien\obj=CloneObject(vihollinen1)
       ScreenPositionObject newAlien\obj,Rand(0,ScreenWidth()),Rand(0,screenheight())
       ObjectOrder newalien\obj,1
             SetupCollision newalien\obj, kartta, 1, 4, 2
       

        newAlien\id=Rand(1,3)
        Select newAlien\id  'käytä mielummin selectiä on selvempi
            Case 1
                newAlien\hp=Rand(130,190):newAlien\dmg=Rand(2,5):newAlien\score=Rand(10,30)
            Case 2
                PaintObject newAlien\obj,vihollinen2
                newAlien\hp=Rand(300,320):newAlien\dmg=Rand(5,8):newAlien\score=Rand(15,35)
            Case 3
                PaintObject newAlien\obj,vihollinen3
                newAlien\hp=Rand(280,340):newAlien\dmg=Rand(7,9):newAlien\score=Rand(35,50)
            Default
                MakeError "Annetulle IDlle ei ole asetettu toimintoa"
        EndSelect

        luo=0         
    EndIf
   
    luo+1
               
     
               
    For iAlien.vihut= Each vihut
   

   
        If iAlien\ID>0 Then ' jos on elossa
       
            sidle=Rand(-20,20)
       
            If CountCollisions(iAlien\obj) Then MoveObject iAlien\obj,0,sidle
            If ObjectSight (iAlien\obj,pelaaja) Then MoveObject iAlien\obj,1 Else MoveObject iAlien\obj,0
            PointObject iAlien\obj,pelaaja
            If ObjectsOverlap(iAlien\obj,pelaaja) Then hp-iAlien\dmg
       
          For ibullet.bullets=Each bullets
                If ObjectsOverlap(ibullet\obj,iAlien\obj) Then
                   
                    PlaySound osui,50
                    iAlien\hp-ibullet\dmg
                         
                EndIf
            Next ibullet
                   
            If ObjectsOverlap (pelaaja,iAlien\obj) Then           
                    iAlien\hp-4
                    newanim.animaatio= New(animaatio)
                    newanim\obj=CloneObject(osuma)
                     ObjectOrder newanim\obj,-1
                    PlayObject newanim\obj,0,4,0.1
                     If Timer()>aikaruumis+15 Then  CloneObjectPosition newanim\obj,pelaaja
                     aikaruumis=TIMER()
                    ObjectLife newanim\obj , 1000

                    EndIf 

          If ObjectsOverlap (miekkaase,ialien\obj) Then iAlien\hp-9

            If iAlien\hp<0 Then 
                tapotpisteet+1
                tapot+1
           
               If Timer()>record+100 Then
        blink=Not blink
        record=Timer()
    EndIf

           
                /////////////////////////////////
                ////////// RUUMIIN TEKO /////////
                /////////////////////////////////
               
                xx=ObjectX(iAlien\obj)
                yy=ObjectY(iAlien\obj)
                ShowObject iAlien\obj, OFF
           
                iAlien\obj = CloneObject(ruumis)
                PositionObject iAlien\obj,xx,yy
                ShowObject iAlien\obj, ON
                ObjectOrder iAlien\obj,-1
                iAlien\ID=-1 ' estetään toiminnot
                ObjectLife iAlien\obj,300 'poistetaan tietyn ajan kuluttua
                ObjectOrder ruumis,-1
               
            EndIf
           EndIf
    Next iAlien
             

             
             
    For iBullet.BULLETS= Each BULLETS
        If CountCollisions(ibullet\obj) Then ibullet\hp-32
        MoveObject iBullet\obj,6
        If Distance2(iBullet\obj,pelaaja)>200 Or ibullet\hp<0 Then 'jos...niin tuhotaan ammus
            DeleteObject iBullet\obj
            Delete iBullet
        EndIf
    Next iBullet
   

    DrawGame

    // Valikko
   
    DrawImage sumu,0,0
    DrawImage yläpalkki ,0,0
    Text 10,10,"PISTEITÄ :"+tapotpisteet
    Text 200,10,"TAPOT :"+tapot
    text 100,100,"FPS: "+fps()
   
    Text 20,30, "LISÄÄ HP(4) + 50hp - 30p"
    Text 20,45, "HP nyt = "+hp
    Text 250,30,"LISÄÄ VOIMAA(5) + 5 voima - 20p"
    Text 250,45,"VOIMA nyt = "+voima
    Text 500,30,"LISÄÄ AMMUKSIA(6) + 25 ammusta - 10p"
    Text 500,45,"AMMUKSIA nyt = "+ammukset
   

    If KeyHit(cbkey4) And tapotpisteet>30
        hp+50
        tapotpisteet-30
    ElseIf KeyHit(cbkey5) And tapotpisteet>20
        voima+5
        tapotpisteet-20
    ElseIf KeyHit(cbkey6) And tapotpisteet>10
        ammukset+25
        tapotpisteet-10
    EndIf
   
   UpdateGame
   
    CloneCameraPosition pelaaja

    DrawScreen

    If KeyHit(cbkeyf12) Then ScreenShot "C:\capture.bmp"
Forever

Re: Tyhmät kysymykset

Posted: Wed Mar 25, 2009 6:33 pm
by cool-driver
VesQ wrote:
cool-driver wrote:Mihin tuo kohtaan koodia tuo koodinpätkä pitää pistää ja mihin EndIf?

E: Laitoin tuon muuttujien alle ja heti loppuun ja muutin sen tähän muotoon:

Code: Select all

If päivä = 31 Then
    päivä = 1
    kuukausi + 1
endif
Mutta ei toimi, kun päivä on 30 ja valitsen seuraava päivä, niin päivä on tuosta koodista huolimatta 31. Mikä mättää?
Koodia esille niin voidaan auttaa tarkemmin. Kai tarkistat päivän sen jälkeen kun olet valinnut seuraava päivä? Eli siis kun teet sen "seuraava päivä" niin pistä tuo koodinpätkä siihen ennen kuin päivämäärä vaihtuu näytöllä.
Sain toimimaan. Kiitos!

Re: Tyhmät kysymykset

Posted: Thu Mar 26, 2009 11:49 pm
by matti3
Mistä johtuu, että tekstini katkeaa yhtäkkiä? Jos esim kirjoitan AddTextillä.

Olen täällä tervettuloa
Niin teksti näkyy:
Olen täällä tervettu
Ja joskus:
Olen tää tervettuloa

Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 7:31 am
by phons
Jos teet jotain todella raskasta samalla se ei aina toimi, tai ainakin minulla tulee joskus sama ongelma. Minulla tuli sama Inputin kanssa kun kirjoitin siihen että: hei kaikki niin lukikin: hi kakki :lol:

Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 11:56 am
by matti3
hmm.. En mielestäni mitään raskastakaan tee, koska ei edes lataudu mitään. Alussa vaitn tulee AddText "R" tait komento kestää 100 pyyhitään teksti ja krijoitetaan RO ja tätä niin kauan, että tulee teksti "ROTU LUO OMA ROTUSI TEHNYT: MATTI" Sen jälkeen painetaan kakkosta "idea" niin tlee niin tökkivää tekstiä, että näyttää kuin eskarilainen olisi kirjoittanut sen. :P

Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 3:49 pm
by rami123
rami123 wrote:Miksi tämä "siirtyminen" ei toimi?

harjoituskentästä -> tehtävään = tulee mav

Code: Select all

koodia...
apua?

Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 4:27 pm
by Awaclus
rami123 wrote:
rami123 wrote:Miksi tämä "siirtyminen" ei toimi?

harjoituskentästä -> tehtävään = tulee mav

Code: Select all

koodia
apua?
Voisit ehkäpä itseltäsi lainatessa ottaa tuon koodin pois, pidentää näitä sivuja ihan kamalasti.

Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 8:01 pm
by skorpioni-cb
Kun yrittää esim tehdä omaa karttaformaatia niin miten saisi tallennettua tiedoston.

Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 8:36 pm
by tuhoojabotti
skorpioni-cb wrote:Kun yrittää esim tehdä omaa karttaformaatia niin miten saisi tallennettua tiedoston.
katso komennot: OpenToEdit tai Write, WriteInt/String/Byte etc. noilla voi kirjoittaa dataa tiedostoihin. esim

Code: Select all

    //tested
    MapW=100
    MapH=150
    f=OpenToEdit("mappi.map")
    WriteInt f,MapW
    WriteInt f,MapH
    Closefile(f)

    f=OpenToRead("mappi.map")
    Print "width: "+ReadInt(f)
    Print "height: "+ReadInt(f)
    CloseFile(f)
    WaitKey
EDIT:

Jos kyseessä on selkokielinen tekstitiedosto kannattaa käyttää Write/ReadLine komentoja. ;)


Re: Tyhmät kysymykset

Posted: Fri Mar 27, 2009 10:10 pm
by koodaaja
Ensinnä, sitä ei yritetä vaan se tehdään. Ei ole tappavan vaikeaa, riippuen toki hienouksista ja ominaisuuksista. Ainakin perus-tilekarttaformaatissa simppeleintä lienee kirjoittaa kartan koko ja sen jälkeen tämän määrittelemä määrä soluja ja mahd. layereitä for-looppien sisällä. WriteInt (ja lukiessa sen vastakappale ReadInt) on ainoa, mitä tulet tarvitsemaan, ellet halua jotain jännempiä ominaisuuksia.

Karttaformaatista ei välttämättä kannata tehdä selkokielistä, moisesta kun ei juuri konkreettista hyötyä taida olla.. Helpompi käsin muokkaaminen ehkä, mutta sekin on tarpeellisuutensa suhteen kyseenalainen.

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 10:31 am
by matti3
Miten voin tehdä sellaisen nappulan, että jos sitä painaa niin tapahtuu jotain. Siis hiiren vasemmalla painaa. Koitin esimerkiksi:

Code: Select all

if MouseX() > 0 And MouseX() < 124 And MouseY() >220 And MouseY() < 296 Then
   if MouseHit(1) Then
   Goto johonki
   EndIf
EndIf
Mut ei auttanu vaik hakkasin oikeeta ja vasenta ko hullu.

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 10:59 am
by DatsuniG
Kyllä tuo minulla ainakin toimii. Käytätkö tuota varmasti loopissa?

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 11:03 am
by Eur0-5isu
matti3 wrote:Miten voin tehdä sellaisen nappulan, että jos sitä painaa niin tapahtuu jotain. Siis hiiren vasemmalla painaa. Koitin esimerkiksi:

Code: Select all

if MouseX() > 0 And MouseX() < 124 And MouseY() >220 And MouseY() < 296 Then
   if MouseHit(1) Then
   Goto johonki
   EndIf
EndIf
Mut ei auttanu vaik hakkasin oikeeta ja vasenta ko hullu.
Todennäköisesti et vain osunut oikeaan kohtaa, koska tuo toimi vallan mainiosti itselläni. Tässä topicissa on joitain simppeleitä nappula -funktioita joista voi ottaa mallia.

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 11:43 am
by matti3
hmm.. Mikä se koodi oli kun näkee missä hiiri on?

Ite käytin:

Code: Select all

    Text 0, 0,"X: "+MouseX()
    Text 0,10,"Y: "+MouseY()
Mut noi luvut o koko aja samat vaik laittaisin ton hiire minne. :D

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 11:59 am
by phons
onko ne loopin sisällä? muistitko DrawScreen:n?

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 12:09 pm
by matti3
Juu on se:
Siihe jää se luku misä mun hiiri o sil hetkel ko se peli aukee.

Code: Select all

Repeat
    Text 200, 0,"X: "+MouseX()
    Text 200,40,"Y: "+MouseY()

Locate 10,10
AddText "Viisaus: " +viisaus
AddText "Siisteys: " +siisteys
AddText "Väkivaltaisuus: " +vakivalta
AddText "Valta: " +valta
AddText "Orjuus: " +orjuus



'Viisaus tekstit
    If viisaus = 0 And viisaus < 2 Then
        teksti1$ = "Tämä rotu on tyhmä. Järkeä ei lainkaan."
    EndIf

    If siisteys = 0 And siisteys < 2 Then
        teksti2$ = "Rotu sotkee koko ajan."
    EndIf

    If vakivalta = 0 And vakivalta < 2 Then
        teksti3$ = "Ja he eivät harrasta mitään väkivaltaista."
    EndIf

    If valta = 0 And valta < 2 Then
        teksti4$ = "Rotu ei ole kovin kiinnostunut suuresta vallasta"
    EndIf

    If orjuus = 0 And orjuus < 2 Then
        teksti5$ = "Eivätkä he todellakaan halua orjuuttaa ketään"
    EndIf
    
AddText "Lyhyt tieto katsaus rodusta: "
AddText "" +teksti1
AddText "" +teksti2
AddText "" +teksti3
AddText "" +teksti4
AddText "" +teksti5
    

DrawScreen
WaitKey

Until KeyHit(cbkeyreturn)

End

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 12:13 pm
by phons
siellä on lopussa waitkey ;) lol siinä kohtaa se odottaa että jotain painetaan. Kaikki on kunossa mutta mitään ei pystytä päivittämään jos et paina mitään. ota waitkey pois niin se pelaa kunnolla

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 2:09 pm
by matti3
Vaik kui rämppäisin tota hiirtä ni ei onnistu. Se ei klikkaa sitä nappia mitä yritän. Tein napit objectiks.

Code: Select all


rodun_luonti_nappi_1 = LoadObject("Media/rotu_nappi.bmp", 1)
rodun_luonti_nappi_2 = LoadObject("Media/rotu_nappi.bmp", 1)
rodun_luonti_nappi_3 = LoadObject("Media/rotu_nappi.bmp", 1)
rodun_luonti_nappi_4 = LoadObject("Media/rotu_nappi.bmp", 1)
rodun_luonti_nappi_5 = LoadObject("Media/rotu_nappi.bmp", 1)
rodun_luonti_nappi_7 = LoadObject("Media/rotu_nappi1.bmp", 1)
viisaus = 0
siisteys = 0
vakivalta = 0
valta = 0
orjuus = 0
ClearText

PositionObject rodun_luonti_nappi_1, -330,-250
PositionObject rodun_luonti_nappi_2, -200,-250
PositionObject rodun_luonti_nappi_3, -70,-250
PositionObject rodun_luonti_nappi_4, 60,-250
PositionObject rodun_luonti_nappi_5, 190,-250
PositionObject rodun_luonti_nappi_7, -310,-170
SetFont nappitext
If MouseHit(1) Then
    If MouseX() > 15 And MouseX() < 125 And MouseY() >522 And MouseY() < 575 Then

   viisaus = viisaus + 1
   EndIf
EndIf
Koitin tehdä tuota myös repeat silmukalla, että ennen if lausetta repeat, mutta sekään ei auttanut. :o

Re: Tyhmät kysymykset

Posted: Sat Mar 28, 2009 3:05 pm
by Sumppi
matti3 wrote:Vaik kui rämppäisin tota hiirtä ni ei onnistu. Se ei klikkaa sitä nappia mitä yritän. Tein napit objectiks.

Code: Select all

koodia
Koitin tehdä tuota myös repeat silmukalla, että ennen if lausetta repeat, mutta sekään ei auttanut. :o

Code: Select all

hiiri=MakeObject()
objekti = LoadObject("Media/car2.bmp", 1)

Repeat
ScreenPositionObject hiiri,MouseX(),MouseY()
Text 0,0,""+x
If MouseHit (1) Then
    If ObjectsOverlap (hiiri,objekti) Then x = x + 1
EndIf

DrawScreen
Forever
Tolla saat sen hiirellä painamisen toimimaan.