Why does this crash!

This is my code


 -- dodger

function setup()
    camX, camY, camZ = 0, 0, 100 
    lookX, lookY, lookZ = 0, 0, 0
    ship = readImage("Tyrian Remastered:Bullet Fire C")
    enemygun = readImage("Tyrian Remastered:Energy Orb 2")
    enemy = readImage("Tyrian Remastered:Blimp Boss")
   
    enemyX, enemyY, enemyZ = 0, 0, -2000
    X, Y, Z = 0, 0, -2000
    shipX =  math.random(-200, 200) 
    shipY, shipZ = X, Y, Z
    shipSpeed = 50
    shipSpeedY = 10
    startZ = -2000
    startY = -100
    x, y, z = 1, 2, 1
end

function draw()
    displayMode(FULLSCREEN)
    perspective()
    camera(camX, camY, camZ, lookX, lookY, lookZ)
    
    
    background(0, 0, 0, 255) 
    pushMatrix()
    translate(X, Y, Z)
    sprite(ship, shipX, shipY)
    
    Z = Z + shipSpeed
    if Z > 100 then
        Z = startZ
        shipX =  math.random(-200, 200)
        shipY = math.random(-300, 300)
    end
    popMatrix()
    perspective(enemyX, enemyY, enemyZ)
    sprite(enemy, 1, 1)
    sprite(enemygun, x, y)
    enemyZ = enemyZ + 1
   
end

@JHRA When does it crash. It runs OK for me. Take displayMode out of draw and put it before setup()

@JHRA - I think you are using perspective instead of translate for the enemy ship
#-o

Yeah doesn’t crash any more thanks

Next release of Codea will fix crashes that can occur as a result of passing bad values to camera() and perspective() functions.