[NEW] Veu de l'imp
[NEW] Afegits cacaus desapareguts en la intro
This commit is contained in:
@@ -356,7 +356,7 @@ function abad_state_fire()
|
||||
end
|
||||
end
|
||||
|
||||
if abad.save_update~=nil then abad_advance() end
|
||||
if abad.save_update~=nil and abad.save_update~=abad_state_normal then abad_advance() end
|
||||
end
|
||||
|
||||
function abad_state_walking()
|
||||
|
||||
@@ -19,3 +19,4 @@ audio_text_abad="snd_txta.wav"
|
||||
audio_text_premiere="snd_txtp.wav"
|
||||
audio_text_elalien="snd_txte.wav"
|
||||
audio_text_batman="snd_txtb.wav"
|
||||
audio_text_imp="snd_txtb.wav"
|
||||
|
||||
52
data/fireball.lua
Normal file
52
data/fireball.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
local arcade_config = require("arcade_config")
|
||||
o2aX = arcade_config.org2arc_escala
|
||||
|
||||
fireball={hab=-1,x=0,y=0,wait=0,flip=false,bb={x=0,y=0,w=4,h=4}}
|
||||
|
||||
function fireball.init(_hab,_x,_y,_flip)
|
||||
if fireball.hab ~= -1 then return end
|
||||
fireball.hab=_hab
|
||||
fireball.x=_x
|
||||
fireball.y=_y
|
||||
fireball.flip=_flip
|
||||
end
|
||||
|
||||
function fireball.draw()
|
||||
draw.circf(fireball.x*o2aX,fireball.y*o2aX,3*o2aX,16)
|
||||
draw.circf(fireball.x*o2aX,fireball.y*o2aX,2*o2aX,3)
|
||||
draw.circf(fireball.x*o2aX,fireball.y*o2aX,1*o2aX,8)
|
||||
end
|
||||
|
||||
function fireball.update()
|
||||
if fireball.hab == -1 then return end
|
||||
fireball.wait=fireball.wait+1
|
||||
|
||||
if fireball.wait==3 then
|
||||
fireball.wait=0
|
||||
|
||||
if fireball.x>96 then
|
||||
fireball.hab=-1
|
||||
return
|
||||
elseif check_tile(fireball.hab,fireball.x,fireball.y)<tiletype.block then
|
||||
if fireball.flip then
|
||||
fireball.x=fireball.x-4
|
||||
else
|
||||
fireball.x=fireball.x+4
|
||||
end
|
||||
if fireball.x<-4 then
|
||||
fireball.hab=-1
|
||||
return
|
||||
end
|
||||
else
|
||||
fireball.hab=-1
|
||||
return
|
||||
end
|
||||
|
||||
if fireball.hab==abad.hab then
|
||||
if aabb(fireball,abad) and abad.update~=abad_state_crouch then
|
||||
fireball.hab=-1
|
||||
abad_hurt(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -14,6 +14,7 @@ require "zombie"
|
||||
require "score"
|
||||
require "switches"
|
||||
require "trigger"
|
||||
require "imp"
|
||||
|
||||
local tile_w = arcade_config.tiles_width
|
||||
local tile_h = arcade_config.tiles_height
|
||||
@@ -113,6 +114,9 @@ function game_init(menu)
|
||||
elalien.init()
|
||||
table.insert(actors,elalien)
|
||||
|
||||
imp.init()
|
||||
table.insert(actors,imp)
|
||||
|
||||
--batman
|
||||
|
||||
bol.init()
|
||||
|
||||
125
data/imp.lua
Normal file
125
data/imp.lua
Normal file
@@ -0,0 +1,125 @@
|
||||
local arcade_config = require("arcade_config")
|
||||
o2aX = arcade_config.org2arc_escala
|
||||
cxr = arcade_config.character_per_row-1
|
||||
cxr2 = arcade_config.character_per_row_base2
|
||||
cw = arcade_config.character_width
|
||||
ch = arcade_config.character_height
|
||||
|
||||
-- 4, 3
|
||||
|
||||
imp={hab=75,
|
||||
x=24,
|
||||
y=24,
|
||||
w=32,
|
||||
h=32,
|
||||
flip=true,
|
||||
enabled=false,
|
||||
counter=500,
|
||||
frame=28,
|
||||
wait=0,
|
||||
step=0,
|
||||
anim={28,29,28,30},
|
||||
bb={x=4,y=0,w=16,h=32},
|
||||
scene_intro=false,
|
||||
scene_object=false}
|
||||
|
||||
function imp.reset()
|
||||
imp.hit=imp.hit
|
||||
imp.update=imp.update
|
||||
imp.draw=imp.draw
|
||||
imp.hab=abad.hab
|
||||
imp.enabled=false
|
||||
imp.counter=500
|
||||
end
|
||||
|
||||
function imp.init()
|
||||
-- imp.enabled=false
|
||||
-- imp.hit=imp.hit
|
||||
-- imp.update=imp.update
|
||||
-- imp.draw=imp.draw
|
||||
-- imp.hab=abad.hab
|
||||
-- if abad.x<40 then
|
||||
-- if check_tile(imp.hab,92,38)<tiletype.half and
|
||||
-- check_tile(imp.hab,84,38)<tiletype.half and
|
||||
-- check_tile(imp.hab,92,30)<tiletype.half and
|
||||
-- check_tile(imp.hab,84,30)<tiletype.half and
|
||||
-- check_tile(imp.hab,92,46)>=tiletype.half then
|
||||
-- imp.enabled=true
|
||||
-- imp.flip=true
|
||||
-- imp.x=92
|
||||
-- else
|
||||
-- imp.reset()
|
||||
-- end
|
||||
-- else
|
||||
-- if check_tile(imp.hab,0,38)<tiletype.half and
|
||||
-- check_tile(imp.hab,8,38)<tiletype.half and
|
||||
-- check_tile(imp.hab,0,30)<tiletype.half and
|
||||
-- check_tile(imp.hab,0,30)<tiletype.half and
|
||||
-- check_tile(imp.hab,0,46)>=tiletype.half then
|
||||
-- imp.enabled=true
|
||||
-- imp.flip=false
|
||||
-- imp.x=-12
|
||||
-- else
|
||||
-- imp.reset()
|
||||
-- end
|
||||
-- end
|
||||
imp.hab=55
|
||||
local world_x, world_y = coords.room_to_world(55,4,3)
|
||||
imp.x=world_x
|
||||
imp.y=world_y
|
||||
imp.flip = true
|
||||
end
|
||||
|
||||
function imp.draw()
|
||||
-- if imp.enabled then
|
||||
-- -- draw.surf((imp.frame&7)*16,(imp.frame>>3)*16,16,16,imp.x,imp.y,16,16,imp.flip)
|
||||
-- draw.surf((imp.frame&7)*cw,(imp.frame>>cxr2)*ch,cw,ch,imp.x*o2aX,imp.y*o2aX,cw,ch,imp.flip)
|
||||
-- end
|
||||
local scr_x, scr_y = viewp:screen_coords( imp.x, imp.y )
|
||||
draw.surf((imp.frame&7)*imp.w, (imp.frame>>cxr2)*imp.h, imp.w, imp.h, scr_x, scr_y, imp.w, imp.h, imp.flip)
|
||||
end
|
||||
|
||||
function imp.hit()
|
||||
end
|
||||
|
||||
function imp.update()
|
||||
-- imp.wait=imp.wait+1
|
||||
--
|
||||
-- if imp.wait==6 then
|
||||
-- imp.wait=0
|
||||
-- if not imp.enabled then
|
||||
-- imp.counter=imp.counter-1
|
||||
-- local r = math.random(0,imp.counter-1)
|
||||
-- --print(r)
|
||||
-- if imp.counter==1 or r==1 then
|
||||
-- imp.init()
|
||||
-- end
|
||||
-- return
|
||||
-- end
|
||||
--
|
||||
-- imp.step=(imp.step+1)%4
|
||||
-- imp.frame=imp.anim[imp.step+1]
|
||||
--
|
||||
-- if imp.flip then
|
||||
-- imp.x=imp.x-2
|
||||
-- if imp.x==78 then
|
||||
-- fireball.init(imp.hab,imp.x+8,imp.y+4,imp.flip)
|
||||
-- sound.play(audio_hit)
|
||||
-- imp.flip=not imp.flip
|
||||
-- elseif imp.x==-12 then
|
||||
-- imp.reset()
|
||||
-- end
|
||||
-- else
|
||||
-- imp.x=imp.x+2
|
||||
-- if imp.x==4 then
|
||||
-- fireball.init(imp.hab,imp.x+8,imp.y+4,imp.flip)
|
||||
-- sound.play(audio_hit)
|
||||
-- imp.flip=not imp.flip
|
||||
-- elseif imp.x==92 then
|
||||
-- imp.reset()
|
||||
-- end
|
||||
-- end
|
||||
--
|
||||
-- end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
local abad={x=0,y=0,w=32,h=32,dx=88,dy=48,dw=32,dh=32}
|
||||
local batman={x=0,y=96,w=32,h=32,dx=164,dy=48,dw=32,dh=32}
|
||||
local cacaus={x=224,y=176,w=32,h=16,dx=152,dy=64,dw=32,dh=16}
|
||||
local cacaus_trans={x=192,y=176,w=16,h=8,dx=65,dy=56,dw=16,dh=8}
|
||||
local marc={x=30,y=6,w=198,h=102,color=2}
|
||||
local pas_porta={x=146,y=48,w=14,h=32,color=16}
|
||||
local scene_x_offset = 32
|
||||
@@ -25,6 +26,8 @@ function draw_item_intro( name, flip )
|
||||
draw.surf(batman.x, batman.y, batman.w, batman.h, batman.dx, batman.dy, batman.dw, batman.dh, flip)
|
||||
elseif (name == "cacaus" ) then
|
||||
draw.surf(cacaus.x, cacaus.y, cacaus.w, cacaus.h, cacaus.dx, cacaus.dy, cacaus.dw, cacaus.dh, flip)
|
||||
elseif (name == "cacaus trans" ) then
|
||||
draw.surf(cacaus_trans.x, cacaus_trans.y, cacaus_trans.w, cacaus_trans.h, cacaus_trans.dx, cacaus_trans.dy, cacaus_trans.dw, cacaus_trans.dh, flip)
|
||||
elseif (name == "marc" ) then
|
||||
draw.rect(marc.x, marc.y, marc.w, marc.h, marc.color)
|
||||
elseif (name == "pas porta" ) then
|
||||
@@ -82,7 +85,8 @@ function intro_update()
|
||||
-- STEP 2
|
||||
elseif intro_step==2 then
|
||||
draw_escenari()
|
||||
draw_item_intro("abad", false)
|
||||
draw_item_intro("abad", true)
|
||||
draw_item_intro("cacaus trans", false)
|
||||
view.origin(0,0)
|
||||
intro_step=intro_step+1
|
||||
-- STEP 3
|
||||
|
||||
@@ -61,6 +61,7 @@ function audio_init()
|
||||
audio_text_premiere = sound.load(audio_text_premiere)
|
||||
audio_text_elalien = sound.load(audio_text_elalien)
|
||||
audio_text_batman = sound.load(audio_text_batman)
|
||||
audio_text_imp = sound.load(audio_text_imp)
|
||||
audio_abad_jump = sound.load(audio_abad_jump)
|
||||
audio_abad_fall = sound.load(audio_abad_fall)
|
||||
audio_abad_hit = sound.load(audio_abad_hit)
|
||||
@@ -86,7 +87,7 @@ function mini.init()
|
||||
surf.target(0)
|
||||
surf.cls(16)
|
||||
|
||||
flow:executar("game")
|
||||
flow:executar("intro")
|
||||
end
|
||||
|
||||
function mini.update()
|
||||
|
||||
@@ -21,11 +21,11 @@ avatar_imp_y = 96
|
||||
scenes={
|
||||
lluita_imp= {
|
||||
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eh!?","...","Tu qui eres?"},die=20},
|
||||
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="abad",text={"","Aaaarrrrgghhh",""},die=20,musica=audio_song_imp},
|
||||
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Aaaarrrrgghhh",""},die=20,musica=audio_song_imp},
|
||||
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Who are you?","Comment tu t'appel?","Quod nomen tibi est?"},die=20},
|
||||
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="abad",text={"","Grwuuuunnnn",""},die=20},
|
||||
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","Grwuuuunnnn",""},die=20},
|
||||
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"Eeeerrrrggggg","Prruuuuuuummm","Uooooorrrr"},die=20},
|
||||
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="abad",text={"","GROOOOAAAARRR",""},die=20},
|
||||
{x=avatar_imp_x, y=avatar_imp_y,flip=true,audio="imp",text={"","GROOOOAAAARRR",""},die=20},
|
||||
{x=avatar_abad_x,y=avatar_abad_y,flip=false,audio="abad",text={"MERDA!!","S'HA ENFADAT!!!","CACAUS A MI!!!!"},die=20},
|
||||
},
|
||||
llibre_trobat={
|
||||
@@ -193,6 +193,8 @@ function playtext(snd)
|
||||
sound.play(audio_text_premiere)
|
||||
elseif snd=="elalien" then
|
||||
sound.play(audio_text_elalien)
|
||||
elseif snd=="imp" then
|
||||
sound.play(audio_text_imp)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
BIN
data/snd_txti.wav
Normal file
BIN
data/snd_txti.wav
Normal file
Binary file not shown.
BIN
data/tiles.gif
BIN
data/tiles.gif
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Reference in New Issue
Block a user