Browse Source

pew pew pew

pixelbath 1 year ago
parent
commit
6ad92f2b0d
1 changed files with 40 additions and 3 deletions
  1. 40 3
      megamang/megamang.lua

+ 40 - 3
megamang/megamang.lua

@@ -7,8 +7,9 @@
 -- script:  lua
 
 t=0
-x=96
-y=24
+
+local player_fire_cooldown = 3
+local player_bullet_speed = 5
 
 local player = {
 	screenx=110,
@@ -18,8 +19,10 @@ local player = {
 	flip=0,
 	cnt_run=0,
 	cnt_fire=0,
+	cdn_fire=0,
 	frames_run={258,260,262,260},
 	frame_slide=266,
+	bullets={},
 }
 
 function BOOT()
@@ -40,9 +43,14 @@ function update()
 		is_running = true
 	end
 	if btn(4) then
-		player.cnt_fire = 10
+		if player.cdn_fire <= 0 then
+			player.cnt_fire = 10
+			player.cdn_fire = player_fire_cooldown
+			spawn_bullet()
+		end
 	else
 		player.cnt_fire = player.cnt_fire - 1
+		player.cdn_fire = player.cdn_fire - 1
 	end
 
 	-- reset run counter if not pressing a button
@@ -60,6 +68,30 @@ function update()
 		player.spr = player.spr + 32
 	end
 
+	for key, bullet in ipairs(player.bullets) do
+		player.bullets[key].x = bullet.x + bullet.spd
+		if bullet.x < -8 or bullet.x > 248 then
+			table.remove(player.bullets, key)
+		end
+	end
+end
+
+function spawn_bullet()
+	local bullet_speed = player_bullet_speed
+	local bullet_x = player.screenx + 11
+	if player.flip == 1 then
+		bullet_speed = bullet_speed * -1
+		bullet_x = player.screenx
+	end
+
+	bullet = {
+		x = bullet_x,
+		y = player.screeny+7,
+		spd = bullet_speed,
+		spr = 286,
+	}
+
+	table.insert(player.bullets, bullet)
 end
 
 function draw_player(colorkey)
@@ -71,6 +103,11 @@ function draw_player(colorkey)
 			spr(270, player.screenx+8, player.screeny+2, colorkey, 1, player.flip)
 		end
 	end
+
+	-- draw bullets
+	for key, bullet in ipairs(player.bullets) do
+		spr(bullet.spr, bullet.x, bullet.y, colorkey, 1)
+	end
 end
 
 function TIC()