Ammukset 3: Aseiden vaihto

Oletko tehnyt jotain, mistä muut voisivat hyötyä. Postita vinkit tänne.
Post Reply
User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 8:40 pm
Location: C:\Työpöytä

Ammukset 3: Aseiden vaihto

Post by TukeKoodi » Mon Mar 14, 2011 11:39 pm

Eli, teinpä tällaisen esimerkin vaihtuvista aseista, kun niin moni sitä täällä foorumeilla tuntuu tarvitsevan. Se on yksinkertaisesti toteutettu muuttujalla "ase". Ohjelmassa selvitetään, mikä on muuttujan "ase" arvo, ja suoritetaan sen mukaan erilainen ampumistyyli. Haulikon toiminta on yksinkertainen: For...Nextillä tehdään viisi ammusta: Ensimmäinen ammus sijoitetaan kulmaan ukko - 15, seuraava 6 pikseliä edemmäs jne. Eli -15...+15. Koska 30 (haarukka) \ 5 (ammusten määrä) = 6 (ammusten kulman etäisyys toisistaan), niin ammukset lähtevät tasaisesti. Muut aseet lienee tuttuja oppitunnista 18: Ammukset 2. Tästä luultavasti on hyötyä jollekin. Koodi:

Code: Select all

'Esimerkki 18 : Ammukset (osa 3) By: TukeKoodi
'================================================

'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
'Aja tämä ohjelma painamalla F5.
'Lopeta ohjelma painamalla ESC.
'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

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

FrameLimit 40 'rajoita nopeutta

ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

AddText "Nuolista ohjaa, CTRL=ampuu"

ase = 1

Repeat

    'Ohjaa ukkoa NUOLILLA
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2
    
    If KeyHit(CbKeyQ) Then ase = ase + 1
    If KeyHit(CbKeyA) Then ase = ase - 1

    If ase = 1 Then Gosub pistooli
    If ase = 2 Then Gosub haulikko
    If ase = 3 Then Gosub sarjatuliase
    
    If ase = 1 Then
    Text 0, 20, "Ase: pistooli"
    EndIf
    
    If ase = 2 Then
    Text 0, 20, "Ase: haulikko"
    EndIf
    
    If ase = 3 Then
    Text 0, 20, "Ase: rynnäkkökivääri"
    EndIf
    
    If ase < 1 Then ase = 1   
    If ase > 3 Then ase = 3


    'Päivitä kaikki ammukset
    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
            'ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan
        EndIf        
    Next luoti
    
    DrawScreen

Until EscapeKey()

pistooli:
    If KeyHit(cbKeyRControl) And reload=0 Then
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj, ukko
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

sarjatuliase:
    If KeyDown(cbKeyRControl) And reload=0 Then
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj, ukko
        reload=3 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

haulikko:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 5
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=20 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return
EDIT:

Aseet vaihtuu Q-A

Aloittelija, koodaaja, jotain...
CbFUN :D

User avatar
Misthema
Advanced Member
Posts: 312
Joined: Mon Aug 27, 2007 8:32 pm
Location: Turku, Finland
Contact:

Re: Ammukset 3: Aseiden vaihto

Post by Misthema » Mon Mar 14, 2011 11:57 pm

Hyvä esimerkki, mutta muuttujan "kulma" sijaan olisit voinut käyttää vaikka komentoa Rand():

Code: Select all

haulikko:
    If KeyDown(cbKeyRControl) And reload=0 Then
        For i = 1 To 5
            luoti.AMMUS = New(AMMUS) 'luo uusi ammus
            luoti\obj=CloneObject(pati) 'tee klooni
        '    asetetaan pati samaan paikkaan
            CloneObjectPosition luoti\obj,ukko                
            'käännetään pati samaan suuntaan
            RotateObject luoti\obj, ObjectAngle(ukko)+Rand(-15,15)
        Next i
        reload=20 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 8:40 pm
Location: C:\Työpöytä

Re: Ammukset 3: Aseiden vaihto

Post by TukeKoodi » Tue Mar 15, 2011 12:01 am

Niin no joo, mutta sen haulikon ammuksesta tulee tyhmän näköinen (lol). Saattanee myös johtua siitä että itse olen kaikessa symmetriariippuvainen.
Last edited by TukeKoodi on Tue Mar 15, 2011 3:16 pm, edited 1 time in total.
Aloittelija, koodaaja, jotain...
CbFUN :D

User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 8:40 pm
Location: C:\Työpöytä

Re: Ammukset 3: Aseiden vaihto

Post by TukeKoodi » Tue Mar 15, 2011 12:03 am

Niin ja jos joku haluu niin ton koodin saa vapaasti copy-pastea omaan peliin.
Aloittelija, koodaaja, jotain...
CbFUN :D

User avatar
MaGetzUb
Guru
Posts: 1715
Joined: Sun Sep 09, 2007 12:35 pm
Location: Alavus

Re: Ammukset 3: Aseiden vaihto

Post by MaGetzUb » Tue Mar 15, 2011 9:00 am

Pitemmittä koodeitta, ei kannattais tuota panoksen kulman satunnaisuutta tehdä RotateObjectilla ja ObjectAnglella, kun sinulla on jo aijemmin koodissa CloneObjectOrientation. Voisit vaan CloneObjectOrientationin alle laittaa TurnObject Luoti\obj, rnd(-25, 25) :)
Solar Eclipse
Meneillä olevat Projektit:
We're in a simulation, and God is trying to debug us.

User avatar
Execute
Active Member
Posts: 110
Joined: Fri Feb 11, 2011 7:41 pm

Re: Ammukset 3: Aseiden vaihto

Post by Execute » Wed Mar 16, 2011 5:54 pm

Härskiä vapaamuokkausta... MULTA!

Code: Select all

'Esimerkki 18 : Ammukset (osa 3) By: TukeKoodi,Execute
'================================================

'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
'Aja tämä ohjelma painamalla F5.
'Lopeta ohjelma painamalla ESC.
'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

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

FrameLimit 40 'rajoita nopeutta

ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

AddText "Nuolista ohjaa, CTRL=ampuu"

ase = 1

Repeat

    'Ohjaa ukkoa NUOLILLA
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2
    
    If KeyHit(CbKeyQ) Then ase = ase + 1
    If KeyHit(CbKeyA) Then ase = ase - 1

    If ase = 1 Then Gosub pistooli
    If ase = 2 Then Gosub haulikko
    If ase = 3 Then Gosub sarjatuliase
    If ase = 4 Then Gosub bom
    If ase = 5 Then Gosub haulikko2
    
    If ase = 1 Then
    Text 0, 20, "Ase: pistooli"
    EndIf
    
    If ase = 2 Then
    Text 0, 20, "Ase: haulikko"
    EndIf
    
    If ase = 3 Then
    Text 0, 20, "Ase: rynnäkkökivääri"
    EndIf
    
    If ase = 4 Then 
    Text 0,20, "Ase: pommi"
    EndIf 
    
    If ase = 5 Then 
    Text 0,20, "Ase: haulikko2"
    EndIf 
    
    If ase < 1 Then ase = 1   
    If ase > 5 Then ase = 5


    'Päivitä kaikki ammukset
    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
            'ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan
        EndIf        
    Next luoti
    
    DrawScreen

Until EscapeKey()

pistooli:
    If KeyHit(cbKeyRControl) And reload=0 Then
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj, ukko
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

sarjatuliase:
    If KeyDown(cbKeyRControl) And reload=0 Then
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj, ukko
        reload=3 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

haulikko:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 5
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=20 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

bom:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 99
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=100 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

haulikko2:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 10
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=50 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return
kokonaista 2 uutta asetta... Pommi ja haulikko2
SpaceCraft on kokopitkä peli! Nyt ladattavissa! Tsekkaa!

User avatar
TukeKoodi
Active Member
Posts: 142
Joined: Thu Feb 03, 2011 8:40 pm
Location: C:\Työpöytä

Re: Ammukset 3: Aseiden vaihto

Post by TukeKoodi » Wed Mar 16, 2011 10:00 pm

Execute wrote:Härskiä vapaamuokkausta... MULTA!

Code: Select all

'Esimerkki 18 : Ammukset (osa 3) By: TukeKoodi,Execute
'================================================

'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
'Aja tämä ohjelma painamalla F5.
'Lopeta ohjelma painamalla ESC.
'! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !

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

FrameLimit 40 'rajoita nopeutta

ukko=LoadObject("Media\soldier.bmp",72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

AddText "Nuolista ohjaa, CTRL=ampuu"

ase = 1

Repeat

    'Ohjaa ukkoa NUOLILLA
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2
    
    If KeyHit(CbKeyQ) Then ase = ase + 1
    If KeyHit(CbKeyA) Then ase = ase - 1

    If ase = 1 Then Gosub pistooli
    If ase = 2 Then Gosub haulikko
    If ase = 3 Then Gosub sarjatuliase
    If ase = 4 Then Gosub bom
    If ase = 5 Then Gosub haulikko2
    
    If ase = 1 Then
    Text 0, 20, "Ase: pistooli"
    EndIf
    
    If ase = 2 Then
    Text 0, 20, "Ase: haulikko"
    EndIf
    
    If ase = 3 Then
    Text 0, 20, "Ase: rynnäkkökivääri"
    EndIf
    
    If ase = 4 Then 
    Text 0,20, "Ase: pommi"
    EndIf 
    
    If ase = 5 Then 
    Text 0,20, "Ase: haulikko2"
    EndIf 
    
    If ase < 1 Then ase = 1   
    If ase > 5 Then ase = 5


    'Päivitä kaikki ammukset
    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
            'ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj 'poista objekti
            Delete luoti 'poista luoti kokonaan
        EndIf        
    Next luoti
    
    DrawScreen

Until EscapeKey()

pistooli:
    If KeyHit(cbKeyRControl) And reload=0 Then
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj, ukko
        reload=5 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

sarjatuliase:
    If KeyDown(cbKeyRControl) And reload=0 Then
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        CloneObjectOrientation luoti\obj, ukko
        reload=3 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

haulikko:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 5
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=20 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

bom:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 99
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=100 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return

haulikko2:
    If KeyDown(cbKeyRControl) And reload=0 Then
    For i = 1 To 10
        luoti.AMMUS = New(AMMUS) 'luo uusi ammus
        luoti\obj=CloneObject(pati) 'tee klooni
        'asetetaan pati samaan paikkaan
        CloneObjectPosition luoti\obj,ukko                
        'käännetään pati samaan suuntaan
        RotateObject luoti\obj, ObjectAngle(ukko)+kulma
        kulma = kulma + 6
        Next i
        kulma = - 15
        reload=50 'aseen lataus        
    EndIf
    'päivitä aseen lataaminen
    If reload>0 Then reload=reload-1
Return
kokonaista 2 uutta asetta... Pommi ja haulikko2
Emmä nyt tiiä, haulikko2=copypasta mun koodista ja 2 lukua + nimi muutettu. bom=copypasta mun koodista ja 2 lukua + nimi muutettu.
Aloittelija, koodaaja, jotain...
CbFUN :D

User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Ammukset 3: Aseiden vaihto

Post by TheDuck » Thu Mar 17, 2011 1:09 am

TukeKoodin ja Executen molempien koodit olivat melko purkkaa ja eivät näyttäneet oikein hyvää esimerkkiä aloittelijoille. Tässä ammusesimerkki monella aseella käyttäen tyyppikokoelmia:

Code: Select all

//Ammukset (Osa PWNED) by TheDuck
//

Type ASE //Asekokoelma
    Field bulletsPerShot As Integer
    Field spread As Float
    Field reloadTime As Integer 
    Field name As String 
EndType 

Type AMMUS //luo kokoelma, jonka nimi on AMMUS
    Field obj //yksi kenttä nimeltään 'obj'
End Type 

FrameLimit 60 //rajoita nopeutta

ukko=LoadObject("Media\soldier.bmp", 72)
pati=LoadObject("Media\bullet.bmp")
ShowObject pati,OFF

pistooli.ASE = New(ASE)
pistooli\spread = Rnd(2) //hieman randomiutta panoksen suuntaan
pistooli\reloadTime = 1000 //1000 millisekuntttia latausaika
pistooli\name = "Pistooli" //nimi
pistooli\bulletsPerShot = 1 //ammuksia kerralla

haulikko.ASE = New(ASE)
haulikko\spread = Rnd(16) //panokset lentämään melko erilleen haulikon tyyliin
haulikko\reloadTime = 2000 //2000 millisekuntttia latausaika
haulikko\name = "Haulikko" //nimi
haulikko\bulletsPerShot = 8 //ammuksia kerralla

sarjatuli.ASE = New(ASE)
sarjatuli\spread = Rnd(3) //hieman randomiutta panoksen suuntaan
sarjatuli\reloadTime = 100 //100 millisekuntttia latausaika (nopea!)
sarjatuli\name = "Konekivääri" //nimi
sarjatuli\bulletsPerShot = 1 //ammuksia kerralla

current.ASE = First(ASE)
ReloadTimer = 0
Repeat

    //Ohjaa ukkoa NUOLILLA
    If LeftKey() Then TurnObject ukko,5
    If RightKey() Then TurnObject ukko,-5
    If UpKey() Then MoveObject ukko,2
    If DownKey() Then MoveObject ukko,-2    

    //Vähän tekstiä ruudulle
    Text 0, 0, "Nuolista ohjaa, CTRL=ampuu, SPACE vaihtaa asetta"
    Text 0, 16, current\name

    If KeyHit(cbkeyspace) Then
        If current <> Last(ASE) Then //Jos nykyinen ase ei ole kokoelman viimeinen jäsen
            current.ASE = After(current) //Nykyinen ase --> seuraava jäsen kokoelmassa
        Else  //Jos taas se on viimeinen
            current.ASE = First(ASE) //Nykyinen ase -> eka jäsen kokoelmassa
        EndIf 
    EndIf 

    //Ammu-systeemi. Vain, jos ase on ladattu
    If KeyDown(cbKeyRControl) And Reloading = False Then    
        For i = 1 To current\bulletsPerShot
            luoti.AMMUS = New(AMMUS) //luo uusi ammus
            luoti\obj=CloneObject(pati) //tee klooni
            //asetetaan pati samaan paikkaan
            CloneObjectPosition luoti\obj,ukko                
            //käännetään pati samaan suuntaan
            CloneObjectOrientation luoti\obj,ukko 
            //käännetään luotia spreadin aikaansaamiseksi
            TurnObject luoti\obj, Rnd(-current\spread, current\spread)
        Next i
        
        Reloading = True //Aloitetaan aseen lataus    
        ReloadTimer = Timer() //ajastin käyntiin!
    EndIf
    //päivitä aseen lataaminen
    If Reloading And Timer() > ReloadTimer + current\reloadtime Then Reloading = False 

    //Päivitä kaikki ammukset
    For luoti.AMMUS = Each AMMUS
        MoveObject luoti\obj,6
        If ObjectX(luoti\obj)<-200 Or ObjectX(luoti\obj)>200 Or ObjectY(luoti\obj)<-150 Or ObjectY(luoti\obj)>150 Then
            //ammus ylittää rajan -> tuhoa se                
            DeleteObject luoti\obj //poista objekti
            Delete luoti //poista luoti kokonaan
        EndIf        
    Next luoti 
    
    DrawScreen

Until EscapeKey()
^^

User avatar
Sami345
Advanced Member
Posts: 349
Joined: Fri Aug 31, 2007 4:52 pm
Contact:

Re: Ammukset 3: Aseiden vaihto

Post by Sami345 » Fri Apr 22, 2011 7:35 pm

TheDuck wrote:

Code: Select all

pistooli.ASE = New(ASE)
pistooli\spread = Rnd(2) //hieman randomiutta panoksen suuntaan
pistooli\reloadTime = 1000 //1000 millisekuntttia latausaika
pistooli\name = "Pistooli" //nimi
pistooli\bulletsPerShot = 1 //ammuksia kerralla

haulikko.ASE = New(ASE)
haulikko\spread = Rnd(16) //panokset lentämään melko erilleen haulikon tyyliin
haulikko\reloadTime = 2000 //2000 millisekuntttia latausaika
haulikko\name = "Haulikko" //nimi
haulikko\bulletsPerShot = 8 //ammuksia kerralla

sarjatuli.ASE = New(ASE)
sarjatuli\spread = Rnd(3) //hieman randomiutta panoksen suuntaan
sarjatuli\reloadTime = 100 //100 millisekuntttia latausaika (nopea!)
sarjatuli\name = "Konekivääri" //nimi
sarjatuli\bulletsPerShot = 1 //ammuksia kerralla
Onko tässä tarkoitus, että aseet ovat joka suorituskerralla hieman erilaisia, vai onko kyseessä bugi? Tuota spreadin arpomista tarkoitan siis.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/

User avatar
TheDuck
Devoted Member
Posts: 632
Joined: Sun Aug 26, 2007 3:51 pm
Location: C:\Program Files\Tuusula\

Re: Ammukset 3: Aseiden vaihto

Post by TheDuck » Fri Apr 22, 2011 8:24 pm

Sami345 wrote:
TheDuck wrote:

Code: Select all

pistooli.ASE = New(ASE)
pistooli\spread = Rnd(2) //hieman randomiutta panoksen suuntaan
pistooli\reloadTime = 1000 //1000 millisekuntttia latausaika
pistooli\name = "Pistooli" //nimi
pistooli\bulletsPerShot = 1 //ammuksia kerralla

haulikko.ASE = New(ASE)
haulikko\spread = Rnd(16) //panokset lentämään melko erilleen haulikon tyyliin
haulikko\reloadTime = 2000 //2000 millisekuntttia latausaika
haulikko\name = "Haulikko" //nimi
haulikko\bulletsPerShot = 8 //ammuksia kerralla

sarjatuli.ASE = New(ASE)
sarjatuli\spread = Rnd(3) //hieman randomiutta panoksen suuntaan
sarjatuli\reloadTime = 100 //100 millisekuntttia latausaika (nopea!)
sarjatuli\name = "Konekivääri" //nimi
sarjatuli\bulletsPerShot = 1 //ammuksia kerralla
Onko tässä tarkoitus, että aseet ovat joka suorituskerralla hieman erilaisia, vai onko kyseessä bugi? Tuota spreadin arpomista tarkoitan siis.
Öö, mikä lie ajatteluvirhe :D Kuuluis olla ilman rndia.
^^

Post Reply