diff options
author | David Thompson <dthompson2@worcester.edu> | 2023-10-29 12:46:19 -0400 |
---|---|---|
committer | David Thompson <dthompson2@worcester.edu> | 2023-10-29 12:46:19 -0400 |
commit | bb981c561a41f6a8d8ca9e65b381eeab721a89e8 (patch) | |
tree | b9be244bf89973492b0f14c0a57ad7d11aec3374 | |
parent | 4cbdfc0ba1be4e4d867b59a913dece31a86beee3 (diff) |
More varied flyer behavior; map tweaks.
-rw-r--r-- | game.scm | 192 | ||||
-rw-r--r-- | images/flyer0.ase | bin | 1340 -> 1334 bytes | |||
-rw-r--r-- | images/flyer0.png | bin | 496 -> 442 bytes | |||
-rw-r--r-- | level.tmx | 125 | ||||
-rw-r--r-- | todo.org | 16 |
5 files changed, 225 insertions, 108 deletions
@@ -588,37 +588,38 @@ (define (bullet-pool-update! pool collide) (match pool (#('bullet-pool length capacity image bullets) - (let loop ((i 0) (k length)) - (when (< i k) - (let* ((offset (bullet-pool-offset i)) - (type (s32-ref bullets offset)) - (x (f64-ref bullets (+ offset 12))) - (y (f64-ref bullets (+ offset 20))) - (w (f64-ref bullets (+ offset 28))) - (h (f64-ref bullets (+ offset 36))) - (dx (f64-ref bullets (+ offset 44))) - (dy (f64-ref bullets (+ offset 52))) - (x* (+ x dx)) - (y* (+ y dy))) - (cond - ((out-of-bounds? x* y* w h) - (bullet-pool-remove! pool i) - (loop i (- k 1))) - ((collide type x* y* w h) - (let ((d 1.0) - (l 3)) - (sound-effect-play sound:bullet-hit 0.02) - (particle-pool-add! particles 'hit-wall l x* y* d d) - (particle-pool-add! particles 'hit-wall l x* y* (- d) d) - (particle-pool-add! particles 'hit-wall l x* y* (- d) (- d)) - (particle-pool-add! particles 'hit-wall l x* y* d (- d)) - #t) - (bullet-pool-remove! pool i) - (loop i (- k 1))) - (else - (f64-set! bullets (+ offset 12) x*) - (f64-set! bullets (+ offset 20) y*) - (loop (+ i 1) k))))))))) + (let ((dscroll (- *scroll* *last-scroll*))) + (let loop ((i 0) (k length)) + (when (< i k) + (let* ((offset (bullet-pool-offset i)) + (type (s32-ref bullets offset)) + (x (f64-ref bullets (+ offset 12))) + (y (f64-ref bullets (+ offset 20))) + (w (f64-ref bullets (+ offset 28))) + (h (f64-ref bullets (+ offset 36))) + (dx (f64-ref bullets (+ offset 44))) + (dy (f64-ref bullets (+ offset 52))) + (x* (+ x dx)) + (y* (+ y dy dscroll))) + (cond + ((out-of-bounds? x* y* w h) + (bullet-pool-remove! pool i) + (loop i (- k 1))) + ((collide type x* y* w h) + (let ((d 1.0) + (l 3)) + (sound-effect-play sound:bullet-hit 0.02) + (particle-pool-add! particles 'hit-wall l x* y* d d) + (particle-pool-add! particles 'hit-wall l x* y* (- d) d) + (particle-pool-add! particles 'hit-wall l x* y* (- d) (- d)) + (particle-pool-add! particles 'hit-wall l x* y* d (- d)) + #t) + (bullet-pool-remove! pool i) + (loop i (- k 1))) + (else + (f64-set! bullets (+ offset 12) x*) + (f64-set! bullets (+ offset 20) y*) + (loop (+ i 1) k)))))))))) (define (draw-bullets pool) (match pool (#('bullet-pool length capacity image bullets) @@ -728,11 +729,16 @@ (match type ('turret (spawn-turret x y)) ('popcorn (spawn-popcorn x y)) + ('popcorn-down (spawn-popcorn-down x y)) ('popcorn-swarm (spawn-popcorn-swarm x y)) ('popcorn-sweep-left (spawn-popcorn-sweep-left x y)) ('popcorn-sweep-right (spawn-popcorn-sweep-right x y)) ('flyer0 (spawn-flyer0 x y)) ('flyer1 (spawn-flyer1 x y)) + ('flyer1-tunnel (spawn-tunnel-flyer1 x y)) + ('flyer1-down (spawn-flyer1-down x y)) + ('flyer1-down-left (spawn-flyer1-down-left x y)) + ('flyer1-down-right (spawn-flyer1-down-right x y)) ('boss (spawn-boss x y)) ('scroll-speed (let ((speed (assq-ref properties 'speed)) @@ -791,6 +797,10 @@ (vec2-x (enemy-position enemy))) (define (enemy-y enemy) (vec2-y (enemy-position enemy))) + (define (set-enemy-x! enemy x) + (set-vec2-x! (enemy-position enemy) x)) + (define (set-enemy-y! enemy y) + (set-vec2-y! (enemy-position enemy) y)) (define (enemy-width enemy) (vec2-x (enemy-size enemy))) (define (enemy-height enemy) @@ -943,7 +953,7 @@ (define (spawn-popcorn* x y script) (spawn-enemy - (make-enemy 'popcorn 1 (vec2 x y) (vec2 12.0 12.0) + (make-enemy 'popcorn 2 (vec2 x y) (vec2 12.0 12.0) (vec2 0.0 0.0) script 100 #(0.0 16.0 32.0 48.0) image:popcorn (vec2 16.0 16.0)))) @@ -988,7 +998,22 @@ (spawn-turret* x y script)) (define (spawn-popcorn x y) - (spawn-popcorn* x y #f)) + (define (script popcorn) + (forever + (tween (lambda (dy) + (set-enemy-dy! popcorn dy)) + 30 -0.2 0.2 + smoothstep lerp) + (tween (lambda (dy) + (set-enemy-dy! popcorn dy)) + 30 0.2 -0.2 + smoothstep lerp))) + (spawn-popcorn* x y script)) + + (define (spawn-popcorn-down x y) + (define (script popcorn) + (set-enemy-dy! popcorn 1.1)) + (spawn-popcorn* x y script)) (define (spawn-popcorn-swarm x y) (define (script popcorn) @@ -1035,10 +1060,10 @@ (define (script flyer) (run-script (lambda () + (wait 60) (let ((speed 1.0)) - (forever - (do-circle - (lambda (theta) + (let loop ((i 0.0)) + (let ((theta (+ (* (sin i) (/ pi 3.0)) (/ pi 3.0)))) (bullet-pool-add! enemy-bullets 0 (enemy-x flyer) (enemy-y flyer) @@ -1046,17 +1071,84 @@ (* (cos theta) speed) (* (sin theta) speed)) (wait 5)) - 16))))) - (forever - (set-enemy-dx! flyer 0.5) - (wait 60) - (set-enemy-dx! flyer -0.5) - (wait 60))) + (loop (+ i 0.5)))))) + (let ((speed 0.5)) + (forever + (tween (lambda (dx) + (set-enemy-dx! flyer dx)) + 60 -0.5 0.5 + smoothstep lerp) + (tween (lambda (dx) + (set-enemy-dx! flyer dx)) + 60 0.5 -0.5 + smoothstep lerp)))) (spawn-flyer0* x y script)) (define (spawn-flyer1 x y) (spawn-flyer1* x y #f)) + (define (spawn-tunnel-flyer1 x y) + (define (script flyer) + (set-enemy-dy! flyer 1.0) + (wait 80) + (set-enemy-dx! flyer -1.0) + (set-enemy-dy! flyer 0.0) + (wait 140) + (set-enemy-dx! flyer 0.0) + (set-enemy-dy! flyer 1.0)) + (spawn-flyer1* x y script)) + + (define (spawn-flyer1-down x y) + (define (script flyer) + (define (shoot* theta) + (let ((speed 3.5)) + (bullet-pool-add! enemy-bullets 0 + (enemy-x flyer) + (enemy-y flyer) + 2.0 2.0 + (* (cos theta) speed) + (* (sin theta) speed)))) + (define (shoot) + (shoot* pi/2) + (shoot* (+ pi/2 0.1)) + (shoot* (- pi/2 0.1))) + (set-enemy-dy! flyer 1.0) + (wait 30) + (forever + (shoot) + (wait 5) + (shoot) + (wait 5) + (shoot) + (wait 45))) + (spawn-flyer1* x y script)) + + (define (spawn-flyer1-down-left x y) + (define (script flyer) + (set-enemy-dy! flyer 1.0) + (wait 60) + (set-enemy-dx! flyer -1.0) + (set-enemy-dy! flyer 0.0) + (wait 60) + (tween (lambda (dx) + (set-enemy-dx! flyer dx)) + 30 -1.0 0.0 + smoothstep lerp)) + (spawn-flyer1* x y script)) + + (define (spawn-flyer1-down-right x y) + (define (script flyer) + (set-enemy-dy! flyer 1.0) + (wait 60) + (set-enemy-dx! flyer 1.0) + (set-enemy-dy! flyer 0.0) + (wait 60) + (tween (lambda (dx) + (set-enemy-dx! flyer dx)) + 30 1.0 0.0 + smoothstep lerp)) + (spawn-flyer1* x y script)) + (define (spawn-chaser x y) (define (script flyer) (set-enemy-dy! flyer -3.0) @@ -1506,11 +1598,11 @@ (set! *game-state* 'play) (scheduler-reset! *scheduler*) (set! *scroll* 0.0) - ;; (set! *scroll* (* 335.0 tile-height)) + ;; (set! *scroll* (* 60.0 tile-height)) (set! *last-scroll* 0.0) (set! *last-row-scanned* (level-height level)) ;; (set! *last-row-scanned* (- (level-height level) - ;; 335)) + ;; 60)) (bullet-pool-reset! player-bullets) (bullet-pool-reset! enemy-bullets) (enemy-pool-reset! enemies) @@ -1542,7 +1634,8 @@ ((string-=? code "KeyZ") (set-firing! #t) (prevent-default! event)) - ((string-=? code "ShiftLeft") + ((string-=? code "KeyX";; "ShiftLeft" + ) (set-focusing! #t) (prevent-default! event))))) @@ -1564,7 +1657,8 @@ ((string-=? code "KeyZ") (set-firing! #f) (prevent-default! event)) - ((string-=? code "ShiftLeft") + ((string-=? code "KeyX";; "ShiftLeft" + ) (set-focusing! #f) (prevent-default! event)) (else @@ -1661,11 +1755,7 @@ (do-game-over))) ('game-over (set! *scroll* *last-scroll*) - (scheduler-tick! *countdown-scheduler*) - (bullet-pool-update! player-bullets player-bullet-collide) - (bullet-pool-update! enemy-bullets enemy-bullet-collide) - (particle-pool-update! particles) - (enemy-pool-update! enemies)) + (scheduler-tick! *countdown-scheduler*)) ('game-clear (scheduler-tick! *scheduler*) (bullet-pool-update! player-bullets player-bullet-collide) diff --git a/images/flyer0.ase b/images/flyer0.ase Binary files differindex 619b3b5..4cb6c92 100644 --- a/images/flyer0.ase +++ b/images/flyer0.ase diff --git a/images/flyer0.png b/images/flyer0.png Binary files differindex 1f8ce69..8a467c5 100644 --- a/images/flyer0.png +++ b/images/flyer0.png @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> -<map version="1.8" tiledversion="1.8.6" orientation="orthogonal" renderorder="right-down" width="15" height="500" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="449"> +<map version="1.8" tiledversion="1.8.6" orientation="orthogonal" renderorder="right-down" width="15" height="500" tilewidth="16" tileheight="16" infinite="0" nextlayerid="8" nextobjectid="576"> <tileset firstgid="1" source="tiles.tsx"/> <tileset firstgid="11" source="background.tsx"/> <objectgroup id="7" name="background" visible="0" parallaxy="0.75"> @@ -317,15 +317,15 @@ 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,2,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,1,2,0,0,0,0,0,0,0,0,0,0,0,1, -1,1,1,1,1,1,1,1,1,0,0,0,0,0,1, -1,8,1,1,1,1,1,8,1,0,0,0,0,0,9, -1,1,1,1,9,1,1,1,1,0,0,0,0,0,1, -1,1,1,1,1,1,1,1,1,0,0,0,0,0,1, +1,1,1,1,1,1,1,1,1,1,0,0,0,0,1, +1,8,1,1,1,1,1,8,1,1,0,0,0,0,9, 1,5,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, 1,0,0,0,0,0,0,0,0,0,0,0,0,3,1, -1,0,0,0,0,0,0,0,0,0,0,0,3,1,1, +1,0,0,0,1,1,1,1,1,1,1,1,1,1,1, 9,0,0,0,1,1,1,1,1,1,1,1,1,8,1, 1,0,0,0,0,4,1,1,1,1,1,1,1,1,1, 1,0,0,0,0,0,0,4,1,1,8,1,1,1,1, @@ -821,15 +821,15 @@ 6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, 6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, 6,6,0,0,0,0,0,0,0,0,0,0,0,0,6, -6,6,6,6,6,6,6,6,6,0,0,0,0,0,6, -6,6,6,6,6,6,6,6,6,0,0,0,0,0,6, -6,6,6,6,6,6,6,6,6,0,0,0,0,0,6, -6,6,6,6,6,6,6,6,6,0,0,0,0,0,6, +6,6,6,6,6,6,6,6,6,6,0,0,0,0,6, +6,6,6,6,6,6,6,6,6,6,0,0,0,0,6, 6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, 6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, 6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, 6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -6,0,0,0,0,0,0,0,0,0,0,0,0,6,6, +6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, +6,0,0,0,0,0,0,0,0,0,0,0,0,0,6, +6,0,0,0,6,6,6,6,6,6,6,6,6,6,6, 6,0,0,0,6,6,6,6,6,6,6,6,6,6,6, 6,0,0,0,0,0,6,6,6,6,6,6,6,6,6, 6,0,0,0,0,0,0,0,6,6,6,6,6,6,6, @@ -1018,21 +1018,6 @@ <objectgroup id="3" name="objects"> <object id="10" type="turret" x="96" y="7424" width="16" height="16"/> <object id="11" type="turret" x="224" y="6480" width="16" height="16"/> - <object id="19" type="popcorn" x="128" y="6320" width="16" height="16"/> - <object id="20" type="popcorn" x="48" y="6272" width="16" height="16"/> - <object id="21" type="popcorn" x="64" y="6288" width="16" height="16"/> - <object id="22" type="popcorn" x="80" y="6304" width="16" height="16"/> - <object id="23" type="popcorn" x="96" y="6320" width="16" height="16"/> - <object id="24" type="popcorn" x="112" y="6336" width="16" height="16"/> - <object id="25" type="popcorn" x="64" y="6432" width="16" height="16"/> - <object id="26" type="popcorn" x="96" y="6432" width="16" height="16"/> - <object id="27" type="popcorn" x="128" y="6432" width="16" height="16"/> - <object id="28" type="popcorn" x="160" y="6432" width="16" height="16"/> - <object id="29" type="popcorn" x="80" y="6400" width="16" height="16"/> - <object id="30" type="popcorn" x="112" y="6400" width="16" height="16"/> - <object id="31" type="popcorn" x="144" y="6400" width="16" height="16"/> - <object id="39" type="flyer0" x="64" y="6736" width="16" height="16"/> - <object id="42" type="flyer0" x="160" y="6736" width="16" height="16"/> <object id="71" type="scroll-speed" x="0" y="4992" width="16" height="16"> <properties> <property name="duration" type="int" value="30"/> @@ -1049,24 +1034,10 @@ <object id="104" type="turret" x="192" y="7232" width="16" height="16"/> <object id="105" type="turret" x="32" y="7056" width="16" height="16"/> <object id="106" type="turret" x="192" y="7056" width="16" height="16"/> - <object id="107" type="turret" x="112" y="6992" width="16" height="16"/> - <object id="138" type="flyer0" x="112" y="6672" width="16" height="16"/> - <object id="139" type="flyer0" x="64" y="6608" width="16" height="16"/> - <object id="140" type="flyer0" x="160" y="6608" width="16" height="16"/> - <object id="141" type="flyer0" x="112" y="6544" width="16" height="16"/> <object id="142" type="turret" x="0" y="6480" width="16" height="16"/> - <object id="143" type="popcorn" x="144" y="6304" width="16" height="16"/> - <object id="144" type="popcorn" x="160" y="6288" width="16" height="16"/> - <object id="145" type="popcorn" x="176" y="6272" width="16" height="16"/> - <object id="146" type="turret" x="96" y="6144" width="16" height="16"/> - <object id="147" type="turret" x="112" y="6144" width="16" height="16"/> - <object id="148" type="turret" x="96" y="6160" width="16" height="16"/> - <object id="149" type="turret" x="112" y="6160" width="16" height="16"/> - <object id="150" type="flyer0" x="96" y="6000" width="16" height="16"/> - <object id="151" type="flyer0" x="128" y="6000" width="16" height="16"/> - <object id="152" type="flyer0" x="112" y="5952" width="16" height="16"/> - <object id="153" type="flyer0" x="96" y="5904" width="16" height="16"/> - <object id="154" type="flyer0" x="128" y="5904" width="16" height="16"/> + <object id="150" type="flyer0" x="64" y="6048" width="16" height="16"/> + <object id="153" type="flyer0" x="64" y="5904" width="16" height="16"/> + <object id="154" type="flyer0" x="160" y="5904" width="16" height="16"/> <object id="161" type="scroll-speed" x="0" y="4096" width="16" height="16"> <properties> <property name="duration" type="int" value="30"/> @@ -1183,7 +1154,6 @@ <object id="293" type="turret" x="208" y="4592" width="16" height="16"/> <object id="294" type="turret" x="16" y="4720" width="16" height="16"/> <object id="295" type="turret" x="208" y="4848" width="16" height="16"/> - <object id="296" type="turret" x="16" y="4992" width="16" height="16"/> <object id="297" type="turret" x="176" y="5344" width="16" height="16"/> <object id="298" type="turret" x="48" y="5472" width="16" height="16"/> <object id="299" type="turret" x="96" y="5824" width="16" height="16"/> @@ -1207,11 +1177,8 @@ <object id="324" type="popcorn" x="160" y="4848" width="16" height="16"/> <object id="325" type="popcorn" x="128" y="4848" width="16" height="16"/> <object id="326" type="popcorn" x="96" y="4848" width="16" height="16"/> - <object id="327" type="popcorn" x="128" y="5008" width="16" height="16"/> - <object id="328" type="popcorn" x="96" y="5008" width="16" height="16"/> - <object id="329" type="popcorn" x="64" y="5008" width="16" height="16"/> - <object id="360" type="popcorn-sweep-right" x="16" y="7520" width="16" height="16"/> - <object id="361" type="popcorn-sweep-left" x="208" y="7440" width="16" height="16"/> + <object id="360" type="popcorn-sweep-right" x="16" y="7568" width="16" height="16"/> + <object id="361" type="popcorn-sweep-left" x="208" y="7456" width="16" height="16"/> <object id="363" type="popcorn-sweep-right" x="16" y="7344" width="16" height="16"/> <object id="364" type="popcorn-sweep-left" x="208" y="7344" width="16" height="16"/> <object id="365" type="popcorn-swarm" x="0" y="7184" width="16" height="16"/> @@ -1271,5 +1238,65 @@ <object id="446" type="popcorn-swarm" x="80" y="544" width="16" height="16"/> <object id="447" type="popcorn-swarm" x="112" y="544" width="16" height="16"/> <object id="448" type="popcorn-swarm" x="144" y="544" width="16" height="16"/> + <object id="461" type="flyer1-tunnel" x="176" y="4928" width="16" height="16"/> + <object id="463" type="flyer1-tunnel" x="176" y="4672" width="16" height="16"/> + <object id="464" type="flyer1-tunnel" x="176" y="4416" width="16" height="16"/> + <object id="465" type="turret" x="16" y="4960" width="16" height="16"/> + <object id="466" type="popcorn" x="128" y="4976" width="16" height="16"/> + <object id="467" type="popcorn" x="96" y="4976" width="16" height="16"/> + <object id="468" type="popcorn" x="64" y="4976" width="16" height="16"/> + <object id="469" type="flyer1-tunnel" x="176" y="4160" width="16" height="16"/> + <object id="470" type="flyer0" x="32" y="4752" width="16" height="16"/> + <object id="471" type="flyer0" x="32" y="4496" width="16" height="16"/> + <object id="472" type="flyer0" x="32" y="4240" width="16" height="16"/> + <object id="474" type="flyer0" x="112" y="3904" width="16" height="16"/> + <object id="482" type="flyer1-down-right" x="128" y="640" width="16" height="16"/> + <object id="483" type="flyer1-down-left" x="96" y="640" width="16" height="16"/> + <object id="487" type="flyer0" x="64" y="400" width="16" height="16"/> + <object id="488" type="flyer0" x="160" y="400" width="16" height="16"/> + <object id="489" type="flyer0" x="112" y="336" width="16" height="16"/> + <object id="490" type="flyer1-down" x="32" y="5040" width="16" height="16"/> + <object id="491" type="flyer0" x="112" y="6992" width="16" height="16"/> + <object id="492" type="turret" x="32" y="6656" width="16" height="16"/> + <object id="493" type="turret" x="192" y="6656" width="16" height="16"/> + <object id="494" type="turret" x="112" y="6592" width="16" height="16"/> + <object id="495" type="flyer0" x="112" y="6656" width="16" height="16"/> + <object id="496" type="flyer0" x="112" y="6512" width="16" height="16"/> + <object id="498" type="flyer0" x="112" y="6784" width="16" height="16"/> + <object id="500" type="flyer0" x="64" y="5584" width="16" height="16"/> + <object id="501" type="flyer0" x="160" y="5424" width="16" height="16"/> + <object id="502" type="flyer0" x="64" y="5232" width="16" height="16"/> + <object id="513" type="turret" x="96" y="6144" width="16" height="16"/> + <object id="514" type="turret" x="128" y="6144" width="16" height="16"/> + <object id="515" type="turret" x="96" y="6176" width="16" height="16"/> + <object id="517" type="turret" x="128" y="6176" width="16" height="16"/> + <object id="533" type="popcorn-down" x="176" y="5776" width="16" height="16"/> + <object id="534" type="popcorn-down" x="128" y="5760" width="16" height="16"/> + <object id="535" type="popcorn-down" x="144" y="5776" width="16" height="16"/> + <object id="536" type="popcorn-down" x="160" y="5792" width="16" height="16"/> + <object id="537" type="popcorn-down" x="192" y="5760" width="16" height="16"/> + <object id="548" type="popcorn-down" x="128" y="6400" width="16" height="16"/> + <object id="549" type="popcorn-down" x="48" y="6352" width="16" height="16"/> + <object id="550" type="popcorn-down" x="64" y="6368" width="16" height="16"/> + <object id="551" type="popcorn-down" x="80" y="6384" width="16" height="16"/> + <object id="552" type="popcorn-down" x="96" y="6400" width="16" height="16"/> + <object id="553" type="popcorn-down" x="112" y="6416" width="16" height="16"/> + <object id="554" type="popcorn-down" x="144" y="6384" width="16" height="16"/> + <object id="555" type="popcorn-down" x="160" y="6368" width="16" height="16"/> + <object id="556" type="popcorn-down" x="176" y="6352" width="16" height="16"/> + <object id="557" type="flyer0" x="112" y="6352" width="16" height="16"/> + <object id="563" type="popcorn-down" x="128" y="5968" width="16" height="16"/> + <object id="564" type="popcorn-down" x="80" y="5952" width="16" height="16"/> + <object id="565" type="popcorn-down" x="96" y="5968" width="16" height="16"/> + <object id="566" type="popcorn-down" x="112" y="5984" width="16" height="16"/> + <object id="567" type="popcorn-down" x="144" y="5952" width="16" height="16"/> + <object id="568" type="popcorn-down" x="48" y="5056" width="16" height="16"/> + <object id="569" type="popcorn-down" x="16" y="5056" width="16" height="16"/> + <object id="570" type="popcorn-down" x="32" y="5072" width="16" height="16"/> + <object id="571" type="flyer0" x="64" y="6224" width="16" height="16"/> + <object id="572" type="flyer0" x="160" y="6224" width="16" height="16"/> + <object id="573" type="flyer0" x="160" y="6048" width="16" height="16"/> + <object id="574" type="flyer0" x="64" y="5344" width="16" height="16"/> + <object id="575" type="flyer0" x="64" y="5664" width="16" height="16"/> </objectgroup> </map> @@ -2,21 +2,21 @@ * DONE tiled map compilation * DONE pause state -* TODO intro state +* DONE intro state * DONE win state * DONE focus fire * DONE per bullet hitbox -* TODO parallax tile object backgrounds -* TODO player animation +* DONE parallax backgrounds +* DONE player animation * DONE enemy animation * DONE nested scripts -* TODO turret enemy -* TODO popcorn enemy -* TODO flying enemy 1 -* TODO flying enemy 2 +* DONE turret enemy +* DONE popcorn enemy +* DONE flying enemy 1 +* DONE flying enemy 2 * TODO boss * DONE scoring -* TODO design map +* DONE design map ** phases - open space, just the player for the first screen of tiles - popcorn appear |