Tyhmät kysymykset (I/2009)

Voit pyytää apua ohjelmointiongelmiin täältä.
User avatar
valscion
Moderator
Moderator
Posts: 1587
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Tyhmät kysymykset

Post by valscion » Wed Mar 25, 2009 6:34 pm

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ä.
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
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 » Wed Mar 25, 2009 6:41 pm

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

cool-driver
Active Member
Posts: 116
Joined: Sat Feb 14, 2009 8:47 am

Re: Tyhmät kysymykset

Post by cool-driver » Wed Mar 25, 2009 7:33 pm

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!
Projektit:
Ships Income Liikenne Suomesta Beta 2: valmis. Lataa tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.
Diktaattori Beta 2: valmis. Lataa Tästä Projekti keskeytetty. Tehdään loppuun uuden CoolBasicin tulon jälkeen.

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset

Post by matti3 » Fri Mar 27, 2009 12:49 am

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
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset

Post by phons » Fri Mar 27, 2009 8:31 am

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:
Image

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset

Post by matti3 » Fri Mar 27, 2009 12:56 pm

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
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

User avatar
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 » Fri Mar 27, 2009 4:49 pm

rami123 wrote:Miksi tämä "siirtyminen" ei toimi?

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

Code: Select all

koodia...
apua?
Last edited by rami123 on Sat Mar 28, 2009 3:29 pm, edited 1 time in total.

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

Re: Tyhmät kysymykset

Post by Awaclus » Fri Mar 27, 2009 5:27 pm

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.

User avatar
skorpioni-cb
Advanced Member
Posts: 364
Joined: Wed Dec 03, 2008 4:48 pm
Location: Turku

Re: Tyhmät kysymykset

Post by skorpioni-cb » Fri Mar 27, 2009 9:01 pm

Kun yrittää esim tehdä omaa karttaformaatia niin miten saisi tallennettua tiedoston.
Minä en tiedä mitä tiedän, mutta sen tiedän ettei se ole mitään kaunista.

User avatar
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: Tyhmät kysymykset

Post by tuhoojabotti » Fri Mar 27, 2009 9:36 pm

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. ;)

Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”

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

Re: Tyhmät kysymykset

Post by koodaaja » Fri Mar 27, 2009 11:10 pm

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.

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset

Post by matti3 » Sat Mar 28, 2009 11:31 am

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.
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

DatsuniG
Advanced Member
Posts: 367
Joined: Fri Aug 15, 2008 9:57 pm

Re: Tyhmät kysymykset

Post by DatsuniG » Sat Mar 28, 2009 11:59 am

Kyllä tuo minulla ainakin toimii. Käytätkö tuota varmasti loopissa?
Hengität nyt manuaalisesti.

User avatar
Eur0-5isu
Active Member
Posts: 106
Joined: Mon Sep 01, 2008 5:12 pm

Re: Tyhmät kysymykset

Post by Eur0-5isu » Sat Mar 28, 2009 12:03 pm

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.

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset

Post by matti3 » Sat Mar 28, 2009 12:43 pm

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
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset

Post by phons » Sat Mar 28, 2009 12:59 pm

onko ne loopin sisällä? muistitko DrawScreen:n?
Image

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset

Post by matti3 » Sat Mar 28, 2009 1:09 pm

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
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

User avatar
phons
Guru
Posts: 1056
Joined: Wed May 14, 2008 10:11 am

Re: Tyhmät kysymykset

Post by phons » Sat Mar 28, 2009 1:13 pm

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
Image

matti3
Active Member
Posts: 136
Joined: Fri Mar 06, 2009 9:37 pm

Re: Tyhmät kysymykset

Post by matti3 » Sat Mar 28, 2009 3:09 pm

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
Glory&Pride <--- selainpeli projektini

Pelilä<- yksi ylläpitämäni sivusto.

World leaders Ensimmäinen CoolBasic projektini

Sumppi
Active Member
Posts: 163
Joined: Wed Dec 03, 2008 9:07 pm

Re: Tyhmät kysymykset

Post by Sumppi » Sat Mar 28, 2009 4:05 pm

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.
Grandi wrote:Sumpille piste. Jos nimimerkin m-kirjain muutetaan r:ksi, p-kirjain v:ksi ja 3 viimeistä kirjainta "vor":iksi, saadaan "survivor", eli suomeksi selviytyjä. Melkoinen yhteensattuma!

Locked