FANDOM


KUVAUS Muokkaa

Tämä koodilohko esittelee uuden TYYPIN ohjelmaasi. Siksi se kannattaa kirjoittaa ohjelman alkuun. Tyypit ovat kokoelmia, joihin voidaan luoda ja joista voidaan poistaa jäseniä. Kullakin jäsenellä on omat muuttujansa. Ne ovat ikään kuin itsenäisiä objekteja, jotka muodostavat listan.

Tyyppien avulla voit hallita suuria määriä vihollisia, ammuksia, efektejä ja objekteja helposti ja vaivattomasti.

TYYPPI-lohko lopetetaan komentoon END TYPE. Älä unohda sitä! Tämän lohkon sisään taas kirjoitetaan FIELD-sanaa käyttäen kaikki muuttujat, jotka siis monistetaan automaattisesti jokaiselle jäsenelle.

KÄYTTÖ Muokkaa

TYPE nimi

    FIELD muuttuja1    
    FIELD muuttuja2
    ...
END TYPE
 

ESIMERKKI Muokkaa

Type BULLETS
    Field obj
End Type

'- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
'MAIN PROGRAM 
'- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 

FrameLimit 40

'load the soldier, turning detail 72 
guy=LoadObject("Media\soldier.bmp",72)

'load the bullet (master-object) and hide it 
bullet=LoadObject("Media\bullet.bmp")
ShowObject bullet,OFF

ClsColor cbdark

AddText "Arrows to turn, SPACE to shoot"

'MAIN LOOP 
Repeat

    'Update turning
    If LeftKey() Then TurnObject guy,5
    If RightKey() Then TurnObject guy, -5
    
    'Shoot?
    If KeyDown(cbkeyspace) And reload=0
    
        newBullet.BULLETS= New(BULLETS)
        newBullet\obj=CloneObject(bullet)
        CloneObjectPosition newBullet\obj,guy
        CloneObjectOrientation newBullet\obj,guy
        'put the bullet at the end of the barrel
        MoveObject newBullet\obj,24 
    
        reload=4
    EndIf
    
    'Update all BULLETS (move them forward)
    i=0
    For iBullet.BULLETS= Each BULLETS
        
        MoveObject iBullet\obj,6 'speed=6
        
        'delete bullet from collection if it
        'gets too far away
        If Distance2(iBullet\obj,guy)>200 Then 
            DeleteObject iBullet\obj
            Delete iBullet
        EndIf
        
        i=i+1
        
    Next iBullet
   
    'Update reloading
    If reload>0 Then reload=reload-1
    
    Text 30,30,"Bulets to update: "+i
    
    'Don't forget this :)
    DrawScreen

Until EscapeKey()

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

Ympäri Wikian verkkoa
Hae mainospaikkaa

Satunnainen wiki