' GX engine first light: the engine owns no head. This application owns its ' arrays and emits the ordinary GFX frame after GX advances its state. IMPORT gx DIM SHARED Scene(0 TO 7) AS INTEGER DIM SHARED Entities(0 TO 19) AS INTEGER DIM SHARED Camera(0 TO 1) AS INTEGER WINDOW SUB OPEN() CALL GXSceneOpen(Scene(), 320, 192) CALL GXEntitySpawn(Entities(), 0, 20, 80, 12, 12, 1) CALL GXEntityVelocity(Entities(), 0, 2, 0) SERVICE SET_TITLE("GX engine first light") END SUB WINDOW SUB DRAW() DIM X AS INTEGER CALL GXSceneAdvance(Scene()) CALL GXEntityStep(Entities(), 0) X = GXEntityX(Entities(), 0) IF X > 307 THEN CALL GXEntitySpawn(Entities(), 0, 0, 80, 12, 12, 1) CALL GXEntityVelocity(Entities(), 0, 2, 0) X = 0 END IF CALL GXCameraFollow(Camera(), X, 86, 640, 192, 320, 192) INTENT GFX.BEGIN_FRAME() INTENT GFX.FILL_RECT(0, 0, 320, 192, 2081) INTENT GFX.FILL_RECT(X - GXCameraX(Camera()), 80, 12, 12, -2048) INTENT GFX.DRAW_TEXT(12, 12, "GX: caller-owned game state", 3, -1, 2081) INTENT GFX.PRESENT() END SUB WINDOW SUB CLOSE() END SUB ON KEY SUB (K AS INTEGER) SERVICE INVALIDATE() END SUB