FANDOM


KUVAUS Muokkaa

Tämä funktio luo kokoelmaan uuden jäsenen. Oletuksellisesti se lisätään listan loppuun. Funktio palauttaa osoittimen tähän uuteen jäseneen. Osoittimen avulla pääset käsiksi jäsenen muuttujiin \-operaattorilla.

Katso esimerkki. Suosittelemme sinua myös katsomaan tämän.


KÄYTTÖ Muokkaa

NEW (tyyppi_nimi)
tyyppi_nimi = TYPE-kokoelman nimi.
 

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()