Tyhmät kysymykset (I/2009)

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

Re: Tyhmät kysymykset

Post by valscion »

Wee wrote:Sorry tuplapost, mutta...

Korjasin koodin mielestäni oikein, mutta MAV tulee yhä. Tässä nämä strategiset paikat... Tein myös muita pikkumuutoksia...

Code: Select all

...koodia...
Nno ainakin ihan aluksi, tyypit voisit määrittää jo ihan pelin alussa niin siitä ei tulisi lisää päänvaivaa. Sitten kun katselin alkuperäistä koodiasi, niin ihmettelin kaksinkertaista ClearObjectsia... nimittäin näissä kohdin:

Code: Select all

    'Pelin lopetus
    If pisteet<0 Then
      pisteet = 0
      ClearObjects
      Goto havisit
    EndIf

//JA

havisit :
    ClearObjects
Sama juttu muuten pelin voittamisessa.

Jos tuo tyyppien määrittely kaikkea ennen ei toimi, niin testailes hakea MAVia sillä tavalla, että heittelet strategisiin kohtiin tällaisen pätkän koodia

Code: Select all

SetWindow "Rivi: X"
ja katsot MAV-hetkellä mitä ikkunan otsikossa lukee :). Tarkemmat ohjeet tää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
real n00b

Re: Tyhmät kysymykset

Post by real n00b »

tosi tyhmä kysymys:
kuinka saada tormäys tunnistus ladatuille kuville,saan vain tehtyä sen palloille jotka olen itse koodissa luonut
Jonhu
Active Member
Posts: 186
Joined: Mon Aug 04, 2008 5:45 pm

Re: Tyhmät kysymykset

Post by Jonhu »

real n00b wrote:tosi tyhmä kysymys:
kuinka saada tormäys tunnistus ladatuille kuville,saan vain tehtyä sen palloille jotka olen itse koodissa luonut
Katso komennot imagesoverlap() ja imagescollide()

Tässä vielä esimerkki..

Code: Select all

cow=LoadImage("Media/cow.bmp") 

maa=MakeImage(400,50)
DrawToImage maa
    Color cbgreen
    Box 0,0,400,50
DrawToScreen

Const painovoima=0.1

Repeat

    If ImagesOverlap(maa,0,150,cow,200,CowY)<>1 Then
    ' katso myös imagescollide()
        kiihtyvyys#+painovoima
        CowY=CowY+kiihtyvyys#
    EndIf
    
    DrawImage maa,0,150
    'Draw the cow
    DrawImage cow,200,CowY

    DrawScreen

Forever
Tekeillä pikkupelejä ja ohjelmia :)
User avatar
-Z-
Devoted Member
Posts: 682
Joined: Tue Aug 28, 2007 3:33 pm
Location: In ur danmaku, grazin ur bullets

Re: Tyhmät kysymykset

Post by -Z- »

real n00b wrote:tosi tyhmä kysymys:
kuinka saada tormäys tunnistus ladatuille kuville,saan vain tehtyä sen palloille jotka olen itse koodissa luonut
voisin kuvitella että Distance(2?)-komento olisi kevyempi, kuin imagesoverlap, jos kuvat ovat sopivanmuotoisia

EDIT: Äh, älä minusta välitä, mutuilen tässä vaan jotain.
"Fallout 3 (#10) marked a shift in the industry, a move that saw the western RPG begin to surpass its Japanese counterparts." -IGN top 100 RPGs of all time
Wee
Member
Posts: 57
Joined: Wed Dec 17, 2008 8:46 pm
Location: Mavihelvetti

Re: Tyhmät kysymykset

Post by Wee »

Sain paikannettua koodistani MAVin. MAV syntyy, kun peli on kerran pelattu läpi/hävitty, ja sen jälkeen sitä haluttaisiin pelata uudestaan alkuvalikon kautta. Alla on kaksi koodia, se mistä MAV johtuu, ja koko pelin lähdekoodi. Miten MAVin voisi poistaa? Epäilisin, että se johtuu Delete ja DeleteObject -komennoista...?

MAV:

Code: Select all

    For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT
          MoveObject aAsteroidi\obj,Rand(-2,-4.5)
          If ObjectX(aAsteroidi\obj)< -225 Then
              DeleteObject aAsteroidi\obj
              Delete aAsteroidi
              pisteet=pisteet-10
          EndIf
          a=a+1
    Next aAsteroidi
Lähdekoodi

Code: Select all

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

'Alkuvalmistelut
SCREEN 400, 300
AddText "Ladataan.."
times = 0
'Musiikki ennen kaikkea!
PlaySound "media\NFSIIIaquila.mid"
FrameLimit 33


alku :

ClearText

'Ns. menu
Locate 55,115
AddText "Paina 1 aloittaaksesi tavallisen pelin"
AddText "Paina 2 aloittaaksesi kaksinpelin"
AddText "Paina 3 nähdäksesi pelin infotiedoston"
If voitot > 0 Then
    AddText "Paina 4 aloittaaksesi pelin hc-modella"
EndIf

Locate 7,5
AddText "Avaruuslentelypeli alpha [BETA 2]"
Locate 7,280
AddText "(c) Veikko 'Wee' Vauhkonen 2008"

'Piirretään ylä-ja alaviivat kentälle
Line 0,26,400,26
Line 0,260,400,260
DrawScreen
WaitKey
ClearText

'Minne mennään menusta?
If KeyDown(cbkey1) Then Goto peli
If KeyDown(cbkey2) Then Goto kaksinpeli
If voitot > 0 Then
    If KeyDown(cbkey4) Then 
        Goto hc
    EndIf
EndIf

peli :
    SetWindow "Rivi: 59"
    'Ladataan objecktit, spritet, äänet
    pumsnd = LoadSound("media/Blaster.wav")
    alus = LoadObject("media/ship.png", 4)
    pati = LoadObject("media/pati.png", 4)
    asteroidi = LoadObject("media/asteroidi.png", 1)
    ShowObject pati,OFF
    TurnObject alus, 90
    PositionObject alus, -160, 30
    PositionObject asteroidi, -250,-250

'PERUSPELISILMUKKA

Repeat
    SetWindow "Rivi: 73"
    If uusiutuminen>0 Then uusiutuminen=uusiutuminen-1  
    SetWindow "Rivi: 75"
    'Asteroidit...'
    If uusiutuminen=0 Then
        newAsteroidi.ASTEROIDIT= New(ASTEROIDIT)
        newAsteroidi\obj=CloneObject(asteroidi)
        PositionObject newAsteroidi\obj, 230, Rand(110,-100)
        MoveObject newAsteroidi\obj,Rand(-0.5,-5)
        uusiutuminen=Rand(10,27)
    EndIf
    SetWindow "Rivi: 84"
    'Päivitetään asteroidit
    a=0
    For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT
          MoveObject aAsteroidi\obj,Rand(-2,-4.5)
          If ObjectX(aAsteroidi\obj)< -225 Then
              DeleteObject aAsteroidi\obj
              Delete aAsteroidi
              pisteet=pisteet-10
          EndIf
          a=a+1
    Next aAsteroidi
    SetWindow "Rivi: 96"
    'Pisteet yläkulmaan
    Text 300,2, "Pisteet: "
    Text 370,2, pisteet
    
    'Tekstinsyötötökokeilut ylös, ja alaspäin vas. ylänurkka
    If UpKey() Then
                     ClearText 
                     Text 2,2, "Painat nuolta ylöspäin" 
    EndIf
    If DownKey() Then 
                     ClearText 
                     Text 2,2, "Painat nuolta alaspäin"
    EndIf
    
    'Päiväys alareunaan
    Text 1,280, "Tänään on"
    Text 80,280,Date()  
    Text 177,280,Time()
    
    'FPS oikeaan alareunaan
    Text 340,280, "FPS:"
    Text 370,280,FPS()
    
    'Piirretään ylä-ja alaviivat kentälle
    Line 0,26,400,26
    Line 0,260,400,260
    
    'Aluksen liikkuminen
    If UpKey() Then MoveObject alus, 4.5
    If DownKey() Then MoveObject alus, -4.5
    
    'Aluksen pelikentän rajaaminen
    If ObjectX(alus)>200 Then PositionObject alus, 200,ObjectY(alus) 
    If ObjectX(alus)<-200 Then PositionObject alus, -200,ObjectY(alus)
    If ObjectY(alus)>115 Then PositionObject alus, ObjectX(alus),115
    If ObjectY(alus)<-100 Then PositionObject alus, ObjectX(alus),-100
    SetWindow "Rivi: 133"
    'Ampuminen oikealle
    If KeyDown(cbkeyspace) And aselataus=0 Then 
                PlaySound pumsnd, 65
                luoti.AMMUS = New(AMMUS)
                luoti\obj=CloneObject(pati)
                CloneObjectPosition luoti\obj,alus
                PositionObject luoti\obj, ObjectX(luoti\obj)+11.5,ObjectY(luoti\obj)-1
                aselataus=8
     EndIf
     If aselataus>0 Then aselataus=aselataus-1
     SetWindow "Rivi: 144"
      For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then                
            DeleteObject luoti\obj
            Delete luoti
        EndIf        
      Next luoti
      SetWindow "Rivi: 152"
    'Mitäpä jos asteroidi ja ammus törmäävät?   
    For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT
      For luoti.AMMUS = Each AMMUS
        If Distance2 (luoti\obj, aAsteroidi\obj)<20 Then
          pisteet=pisteet+1
          DeleteObject aAsteroidi\obj
          Delete aAsteroidi
          DeleteObject luoti\obj
          Delete luoti
          Exit
        EndIf
      Next luoti
    Next aAsteroidi
    SetWindow "Rivi: 166"
    'Pelin lopetus
    If pisteet<0 Then
      pisteet = 0
      Goto havisit
    EndIf
    
    If pisteet>49 Then
      pisteet = pisteet+1
      Goto voitto
    EndIf
    
    'Pelikentän pisteet, "tähdet"
    Dot 40,50
    Dot 150,200
    Dot 300,97
    Dot 270,160
    Dot 210,185
    Dot 25,143
    Dot 180,240
    Dot 190,50
    Dot 17,85
    Dot 45,240
    Dot 50,150
    Dot 350,200
    Dot 75,201
    Dot 150,200
    Dot 180,150
    Dot 120,40
    Dot 170,195
    Dot 100,110
    Dot 365,100
    Dot 340,50
    Dot 80,70
    Dot 240,90
    Dot 270,210
    Dot 350,220
    Dot 170,80
    'Se unohtumaton
    DrawScreen
Forever
SetWindow "Rivi: 207"
kaksinpeli :
ClearObjects
Text 50,50, "Kaksinpeli on kivaa!"
DrawScreen
WaitKey
End

hc :

ClearObjects
Text 50,50, "HC:kin on kivaa!"
DrawScreen
WaitKey
End

voitto :
    ClearObjects
    Locate 30,100
    AddText "Läpäisit pelin, ja sait 50 pistettä!"
    AddText "Paina SPACE mennäksesi alkuvalikkoon"
    AddText "Avasit peruspelitilan voittamalla HC - moodin!"
    DrawScreen
    WaitKey
    times = times+1
    voitot = voitot+1
    If KeyDown(cbkeyspace) Then 
        Goto alku
    Else
        End
    EndIf
    
havisit :
    ClearObjects
    Locate 10,100
    AddText "Hävisit pelin, sillä pisteesi menivät miinukselle."
    AddText "Paina SPACE mennäksesi alkuvalikkoon"
    AddText "Voit lopettaa pelin painamalla mitä vain"
    DrawScreen
    WaitKey
    times = times+1
    If KeyDown(cbkeyspace) Then 
        Goto alku
    Else
        End
    EndIf

Kiitos jo etukäteen, ja hyvää uuttavuotta 2009! ;)
"This city looks so pretty, do you wanna burn here with me..."
Jani
Devoted Member
Posts: 741
Joined: Fri Oct 31, 2008 4:53 pm

Re: Tyhmät kysymykset

Post by Jani »

iksi laitat kokonaislukurandomiin liukuluvun?
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Igr0
Active Member
Posts: 110
Joined: Thu Oct 02, 2008 8:04 pm
Location: Helsinki, Finland

Re: Tyhmät kysymykset

Post by Igr0 »

Wee wrote:Sain paikannettua koodistani MAVin. MAV syntyy, kun peli on kerran pelattu läpi/hävitty, ja sen jälkeen sitä haluttaisiin pelata uudestaan alkuvalikon kautta. Alla on kaksi koodia, se mistä MAV johtuu, ja koko pelin lähdekoodi. Miten MAVin voisi poistaa? Epäilisin, että se johtuu Delete ja DeleteObject -komennoista...?

Code: Select all

koodia... x2
Kiitos jo etukäteen, ja hyvää uuttavuotta 2009! ;)
Itselläni kävi vähän samalla tavalla yhdessä avaruuslentely projektissani. Ongelma ratkesi tyyppien tyhjennyksellä, aina kun tuli gameoveri (sinun tapauksessasi myös kun tulee voitto). Tuossa ylemmässä koodin pätkässä vähän mietityttää, että miksi ihmeessä se on aAsteroidi, kun muutamaa riviä aiemmin se on newAsteroidi? Sinun koodiisi mukautettuna se tyyppien tyhjennys menisi varmaankin jotenkin näin:(katso voitto ja havisit, siihen aAsteroidiin en koskenut)

Code: Select all

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

    'Alkuvalmistelut
    SCREEN 400, 300
    AddText "Ladataan.."
    times = 0
    'Musiikki ennen kaikkea!
    PlaySound "media\NFSIIIaquila.mid"
    FrameLimit 33


    alku :

    ClearObjects //<--tuon myös lisäsin
    ClearText

    'Ns. menu
    Locate 55,115
    AddText "Paina 1 aloittaaksesi tavallisen pelin"
    AddText "Paina 2 aloittaaksesi kaksinpelin"
    AddText "Paina 3 nähdäksesi pelin infotiedoston"
    If voitot > 0 Then
        AddText "Paina 4 aloittaaksesi pelin hc-modella"
    EndIf

    Locate 7,5
    AddText "Avaruuslentelypeli alpha [BETA 2]"
    Locate 7,280
    AddText "(c) Veikko 'Wee' Vauhkonen 2008"

    'Piirretään ylä-ja alaviivat kentälle
    Line 0,26,400,26
    Line 0,260,400,260
    DrawScreen
    WaitKey
    ClearText

    'Minne mennään menusta?
    If KeyDown(cbkey1) Then Goto peli
    If KeyDown(cbkey2) Then Goto kaksinpeli
    If voitot > 0 Then
        If KeyDown(cbkey4) Then
            Goto hc
        EndIf
    EndIf

    peli :
        SetWindow "Rivi: 59"
        'Ladataan objecktit, spritet, äänet
        pumsnd = LoadSound("media/Blaster.wav")
        alus = LoadObject("media/ship.png", 4)
        pati = LoadObject("media/pati.png", 4)
        asteroidi = LoadObject("media/asteroidi.png", 1)
        ShowObject pati,OFF
        TurnObject alus, 90
        PositionObject alus, -160, 30
        PositionObject asteroidi, -250,-250

    'PERUSPELISILMUKKA

    Repeat
        SetWindow "Rivi: 73"
        If uusiutuminen>0 Then uusiutuminen=uusiutuminen-1 
        SetWindow "Rivi: 75"
        'Asteroidit...'
        If uusiutuminen=0 Then
            newAsteroidi.ASTEROIDIT= New(ASTEROIDIT)
            newAsteroidi\obj=CloneObject(asteroidi)
            PositionObject newAsteroidi\obj, 230, Rand(110,-100)
            MoveObject newAsteroidi\obj,Rand(-0.5,-5)
            uusiutuminen=Rand(10,27)
        EndIf
        SetWindow "Rivi: 84"
        'Päivitetään asteroidit
        a=0
        For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT //sitä ihmettelin että miksi <-- tuolla on aAsteroidi,
              MoveObject aAsteroidi\obj,Rand(-2,-4.5)//vaikka se on muutamaa riviä ylempänä newAsteroidi?
              If ObjectX(aAsteroidi\obj)< -225 Then
                  DeleteObject aAsteroidi\obj
                  Delete aAsteroidi
                  pisteet=pisteet-10
              EndIf
              a=a+1
        Next aAsteroidi
        SetWindow "Rivi: 96"
        'Pisteet yläkulmaan
        Text 300,2, "Pisteet: "
        Text 370,2, pisteet
       
        'Tekstinsyötötökokeilut ylös, ja alaspäin vas. ylänurkka
        If UpKey() Then
                         ClearText
                         Text 2,2, "Painat nuolta ylöspäin"
        EndIf
        If DownKey() Then
                         ClearText
                         Text 2,2, "Painat nuolta alaspäin"
        EndIf
       
        'Päiväys alareunaan
        Text 1,280, "Tänään on"
        Text 80,280,Date() 
        Text 177,280,Time()
       
        'FPS oikeaan alareunaan
        Text 340,280, "FPS:"
        Text 370,280,FPS()
       
        'Piirretään ylä-ja alaviivat kentälle
        Line 0,26,400,26
        Line 0,260,400,260
       
        'Aluksen liikkuminen
        If UpKey() Then MoveObject alus, 4.5
        If DownKey() Then MoveObject alus, -4.5
       
        'Aluksen pelikentän rajaaminen
        If ObjectX(alus)>200 Then PositionObject alus, 200,ObjectY(alus)
        If ObjectX(alus)<-200 Then PositionObject alus, -200,ObjectY(alus)
        If ObjectY(alus)>115 Then PositionObject alus, ObjectX(alus),115
        If ObjectY(alus)<-100 Then PositionObject alus, ObjectX(alus),-100
        SetWindow "Rivi: 133"
        'Ampuminen oikealle
        If KeyDown(cbkeyspace) And aselataus=0 Then
                    PlaySound pumsnd, 65
                    luoti.AMMUS = New(AMMUS)
                    luoti\obj=CloneObject(pati)
                    CloneObjectPosition luoti\obj,alus
                    PositionObject luoti\obj, ObjectX(luoti\obj)+11.5,ObjectY(luoti\obj)-1
                    aselataus=8
         EndIf
         If aselataus>0 Then aselataus=aselataus-1
         SetWindow "Rivi: 144"
          For luoti.AMMUS = Each AMMUS
            MoveObject luoti\obj,6
            If ObjectX(luoti\obj)<-180 Or ObjectX(luoti\obj)>180 Or ObjectY(luoti\obj)<-130 Or ObjectY(luoti\obj)>130 Then               
                DeleteObject luoti\obj
                Delete luoti
            EndIf       
          Next luoti
          SetWindow "Rivi: 152"
        'Mitäpä jos asteroidi ja ammus törmäävät?   
        For aAsteroidi.ASTEROIDIT= Each ASTEROIDIT
          For luoti.AMMUS = Each AMMUS
            If Distance2 (luoti\obj, aAsteroidi\obj)<20 Then
              pisteet=pisteet+1
              DeleteObject aAsteroidi\obj
              Delete aAsteroidi
              DeleteObject luoti\obj
              Delete luoti
              Exit
            EndIf
          Next luoti
        Next aAsteroidi
        SetWindow "Rivi: 166"
        'Pelin lopetus
        If pisteet<0 Then
          pisteet = 0
          Goto havisit
        EndIf
       
        If pisteet>49 Then
          pisteet = pisteet+1
          Goto voitto
        EndIf
       
        'Pelikentän pisteet, "tähdet"
        Dot 40,50
        Dot 150,200
        Dot 300,97
        Dot 270,160
        Dot 210,185
        Dot 25,143
        Dot 180,240
        Dot 190,50
        Dot 17,85
        Dot 45,240
        Dot 50,150
        Dot 350,200
        Dot 75,201
        Dot 150,200
        Dot 180,150
        Dot 120,40
        Dot 170,195
        Dot 100,110
        Dot 365,100
        Dot 340,50
        Dot 80,70
        Dot 240,90
        Dot 270,210
        Dot 350,220
        Dot 170,80
        'Se unohtumaton
        DrawScreen
    Forever
    SetWindow "Rivi: 207"
    kaksinpeli :
    ClearObjects
    Text 50,50, "Kaksinpeli on kivaa!"
    DrawScreen
    WaitKey
    End

    hc :

    ClearObjects
    Text 50,50, "HC:kin on kivaa!"
    DrawScreen
    WaitKey
    End

    voitto :
        
        Repeat 
        
            Text 30,100,"Läpäisit pelin, ja sait 50 pistettä!"
            Text 30,110,"Paina SPACE mennäksesi alkuvalikkoon"
            Text 30,120,"Avasit peruspelitilan voittamalla HC - moodin!"
            
            For luoti.AMMUS = Each AMMUS
                DeleteObject luoti\obj
                Delete luoti
            Next luoti
            
            For newAsteroidi.ASTEROIDIT = Each ASTEROIDIT
                DeleteObject newAsteroidi\obj
                Delete newAsteroidi
            Next newAsteroidi
            
            DrawScreen 
            
        Until KeyHit(cbkeyspace)
        
        times = times+1
        voitot = voitot+1
        
        Goto alku
       
    havisit :
        Repeat
        
            Text 10,100,"Hävisit pelin, sillä pisteesi menivät miinukselle."
            Text 10,110,"Paina SPACE mennäksesi alkuvalikkoon"
            Text 10,120,"Voit lopettaa pelin painamalla mitä vain" 
            //Tuo alin teksti ei kyllä enää ole totta, mutta ei sillä kai ole kauheasti väliä :P
            
            For luoti.AMMUS = Each AMMUS
                DeleteObject luoti\obj
                Delete luoti
            Next luoti
            
            For newAsteroidi.ASTEROIDIT = Each ASTEROIDIT
                DeleteObject newAsteroidi\obj
                Delete newAsteroidi
            Next newAsteroidi
            
            DrawScreen            
            
        Until KeyHit(cbkeyspace)
        
        times = times+1
        
        Goto alku
Jos ei toimi näin, niin sitten menee luultavasti minullakin jo sormi suuhun. Niin ja hyvät uudet vuodet sinullekin! :D
Wee
Member
Posts: 57
Joined: Wed Dec 17, 2008 8:46 pm
Location: Mavihelvetti

Re: Tyhmät kysymykset

Post by Wee »

Kiitos, tuo toimii kuin unelma!

Toisaalta, yhä jäi yksi pieni ongelma, nimittäin tuon pelaajaobjecktin poisto. ClearObjects aiheuttaa MAVin, jos tyrkkään sen tuonne If pisteet > 0 then clearobjects bla bla blaa... sekä myös siellä voitto tai häviö - osassa. Nimittäin ne jäävät aika ikävästi tuohon.

EDIT: kokeilin myös objectlifeä, sekä deleteobjectia
"This city looks so pretty, do you wanna burn here with me..."
Igr0
Active Member
Posts: 110
Joined: Thu Oct 02, 2008 8:04 pm
Location: Helsinki, Finland

Re: Tyhmät kysymykset

Post by Igr0 »

Laita DeleteObject alus sinne havisit ja voitto kohtiin ennen Repeatia, jotenkin näin:

Code: Select all

    havisit :

        DeleteObject alus  //<-- Tuohon siis tuo deleteobject, ei pitäisi MAVittaa. Voittoon samalla tavalla.
    
        Repeat
        
            //koodia...           
            
        Until KeyHit(cbkeyspace)
        
        times = times+1
        
        Goto alku
Wee
Member
Posts: 57
Joined: Wed Dec 17, 2008 8:46 pm
Location: Mavihelvetti

Re: Tyhmät kysymykset

Post by Wee »

Ei, ei toimi noin, juuri kokeilin sitä.

Kokeilin taas uudestaan...

EDIT: Kiitos, sain toimimaan!
Last edited by Wee on Thu Jan 01, 2009 6:26 pm, edited 1 time in total.
"This city looks so pretty, do you wanna burn here with me..."
Tuomasd
Newcomer
Posts: 14
Joined: Fri Dec 12, 2008 4:46 pm

Re: Tyhmät kysymykset

Post by Tuomasd »

Moro vaan.
Miten mää saisin peliin ajan? Eli jos painan A:ta tulee teksti "Moi" ja viiden sekunnin kuluttua tulee toinen teksti "Mitä kuuluu?".
moxd
User avatar
Jonez
Devoted Member
Posts: 575
Joined: Mon Aug 27, 2007 8:37 pm

Re: Tyhmät kysymykset

Post by Jonez »

Esimerkiksi Timer():ia käyttämällä.

Code: Select all

//Timer nousee 1000 joka sekunti, ja alkaa kun kone käynnistetään.
alkuaika = Timer()
aika = Timer()
While True

    If aika <= Timer() - 1000 //Tämä tarkoittaa: JOS aika on pienempi kuin Timer() - sekunti, eli kun sekunti on kulunut...
        aika = Timer() //"nollataan" aika, eli annetaan sille sama arvo kuin timerille. Timerhan nousee joka tuhannesosa sekunti yhdellä.
        
        //kirjoitetaan ruudulle aika
        Print ( aika - alkuaika ) / 1000 + " sekuntia kulunut."
    EndIf
    
Wend
-Vuoden 2008 aloittelijan ystävä -palkinnon voittaja-
Image <- protestipelikilpailun voittaja.
Space War
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

miten saan tämän ruumiin jäämään siihen paikkaan mihin bossi kuolee? melkeen valmis paitsi en saa näitä jäämää , katoavat vaan bossin mukana

Code: Select all

        PointObject bossi2,ukko
    If ObjectSight (bossi2,ukko) Then MoveObject bossi2, 1 Else MoveObject bossi2,0         
                   If ObjectsOverlap (bossi2,ukko) Then hp-3


             
                 If bossi2hp<0 Then

                If pisteetlisätty2=0 Then
                  tapot+1
                  score+2000
                  bossit+1
                pisteetlisätty2=1
                   EndIf
                       CloneObjectPosition die2,bossi2  //// Tämä kohta
                       ShowObject die2,ON                  //// ja tämä
                       ShowObject bossi2,OFF
                       PositionObject bossi2,90000000,900000000   
                   MoveObject bossi2,-1
                EndIf           


ruumiit tein näin bosseille

Code: Select all

    kuollut1 = LoadObject ("kuollut1.png")
         ShowObject kuollut1 ,OFF
         //tässä tehdään kloonit kuollut1 stä ja piiloitetaan
         die1 = CloneObject (kuollut1) : ShowObject die1,OFF
         die2 = CloneObject (kuollut1) : ShowObject die2,OFF
         die3 = CloneObject (kuollut1) : ShowObject die3,OFF
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset

Post by TheFish »

Kokeile laittaa nämä

Code: Select all

CloneObjectPosition die2,bossi2  //// Tämä kohta
ShowObject die2,ON                  //// ja tämä
ShowObject bossi2,OFF
PositionObject bossi2,90000000,900000000   
tuon edellä olevan ehdon sisälle. Muutenhan nuo suoritetaan joka kierroksella kun bossin hp on alta nollan.
CoolBasic henkilökuntaa
Kehittäjä
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

kiitos :D enpä muistanutkaan tuota :lol:
onneksi pääsen tästä projektista eroon huomenna :|
nevssons
Devoted Member
Posts: 503
Joined: Sun Jan 13, 2008 5:02 pm

Re: Tyhmät kysymykset

Post by nevssons »

Miksi tuo kiekura on keltainen? Colorissahan jokainen parametri on sama. (CB bugi?)

Code: Select all

x=200
y=150
ClsColor cbwhite 
Repeat 
a+1
kiekura(x,y,a)
DrawScreen
Forever 

Function kiekura(x,y,a,r1=255,r2=0)
cp=r1-r2/360
cp=RoundDown(cp) 
For f=0 To 360
c+cp 
Color Int(c),Int(c),Int(c)
Line x+Cos(f+a)*10,y-Sin(f+a)*10,x+Cos(f+a)*20,y-Sin(f+a)*20

Next f
EndFunction 
Koodarina kohtalainen, henkilönä vittumainen
Image
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

ongelma taas apurit ei pysähdy

tässä on pysäytysnappi

Code: Select all

 
       DrawImage Box4,520,10
        If MouseX()>520 And MouseX()<520+ImageWidth(box4) And MouseY()>10 And MouseY()<10+ImageHeight(box4) And MouseHit(1)  Then
      MoveObject apuri,0
      MoveObject apuri2,0
        EndIf
apurien luonti

Code: Select all

       apuri = LoadObject ("apuri.png",72)
         ShowObject apuri,OFF
         SetupCollision apuri,kartta,1,4,2
         SetupCollision apuri,ukko,2,2,2
         SetupCollision ukko,apuri,2,2,2
        
       apuri2 = LoadObject ("tonttu.png",72)
         ShowObject apuri2,OFF
         SetupCollision apuri2,kartta,1,4,2
         SetupCollision apuri2,ukko,2,2,2
         SetupCollision ukko,apuri2,2,2,2
         SetupCollision apuri2,apuri,2,2,2

apurien toiminta

Code: Select all

           PointObject apuri,ukko
                   If Distance2(ukko,apuri)>100 Then MoveObject apuri,5
                   
                     If apuri1>1 And  Timer()>aika+500 Then
                        hp+1
                       aika=TIMER()
                     EndIf
                   
                 PointObject apuri2,ukko
                   If Distance2(ukko,apuri2)>100 Then MoveObject apuri2,5
apuri 2 saaminen käyttöön

Code: Select all

       If  tapettubossi5=1 Then
                         DrawImage puhe1,20,125
                       ShowObject apuri2,ON
                       EndIf 
pysäytysnappiin vois tehdä vielä sen että ne alkaa seuraamaantoisella painamis kerralla :roll:
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Tyhmät kysymykset

Post by TheFish »

Tee apurien nopeudesta muuttuja, jonka asetat nollaan kun nappia painetaan (ja takaisin normaaliksi jos se on jo nollassa).
CoolBasic henkilökuntaa
Kehittäjä
rami123
Advanced Member
Posts: 354
Joined: Mon Jun 23, 2008 8:20 pm
Location: Kittilä

Re: Tyhmät kysymykset

Post by rami123 »

miten minä sellasen teen? en oikeen osaa :?
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: Tyhmät kysymykset

Post by Koodiapina »

@Nevssons: CoolBasicissa on tosiaan sellainen ominaisuus, että jos colorille antaa komponenteille liian suuria tai pieniä arvoja niin väri muuttuu keltaiseksi. En sitten tiedä onko tämä bugi, mutta käytännöllisempää tietenkin olisi jos värien tunnistus aloitettaisiin alusta.
Locked