[WIP] Moviment de l'Abad pel mapa
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
require "fps"
|
||||
require "mapa"
|
||||
require "abad"
|
||||
require "cacau"
|
||||
|
||||
local viewport= require("viewport")
|
||||
|
||||
@@ -10,6 +11,9 @@ local tile_h = arcade_config.tiles_height
|
||||
local res_w = arcade_config.resolucion.width
|
||||
local res_h = arcade_config.resolucion.height
|
||||
|
||||
local view_tile_id = false
|
||||
local view_checking_tile = false
|
||||
|
||||
viewp = viewport.new()
|
||||
viewp:position(0,0)
|
||||
|
||||
@@ -85,13 +89,15 @@ function update_game()
|
||||
|
||||
if key.press(key.N1) then
|
||||
local hab = math.random(0, 79)
|
||||
local abad_x, abad_y = arc_mapa_get_coords ( hab, 4, 3 )
|
||||
local hab_x = math.random(0, mapa_room_cols-1)
|
||||
local hab_y = math.random(0, mapa_room_rows-1)
|
||||
local abad_x, abad_y = arc_mapa_get_coords ( hab, hab_x, hab_y)
|
||||
print(abad_x..", "..abad_y)
|
||||
abad:move(abad_x, abad_y)
|
||||
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
|
||||
end
|
||||
if key.press(key.N0) then
|
||||
local abad_x, abad_y = arc_mapa_get_coords ( 10, 4, 3 )
|
||||
local abad_x, abad_y = arc_mapa_get_coords ( 24, 1, 3 )
|
||||
print(abad_x..", "..abad_y)
|
||||
abad:move(abad_x, abad_y)
|
||||
local scr_ax, scr_ay = viewp:screen_coords(abad_x, abad_y)
|
||||
@@ -132,11 +138,86 @@ function update_game()
|
||||
|
||||
fps_print()
|
||||
viewp:print()
|
||||
msg_print(0,14,"ABAD= "..abad.x..", "..abad.y)
|
||||
msg_print(0,21,"VIEW= "..vp_x..", "..vp_y)
|
||||
msg_print(0,14,"ABAD= "..abad.x..", "..abad.y, true)
|
||||
msg_print(0,21,"VIEW= "..vp_x..", "..vp_y, true)
|
||||
local hab, xx, yy = arc_mapa_get_map_coords(abad.x, abad.y)
|
||||
msg_print(0,28,hab.." ( "..xx..", "..yy.." )", true)
|
||||
-- msg_print(0,35,hab.." ( "..xx..", "..yy.." )", true)
|
||||
msg_print(0,42," JH= "..abad.jump_height,true)
|
||||
|
||||
-- view_coord(abad.x+8, abad.y+0, 16, 32, 6)
|
||||
--- view_coord(abad.x+abad.bb.x, abad.y+abad.bb.h, 2, 2, 4)
|
||||
--- view_coord(abad.x+abad.bb.x+abad.bb.w, abad.y+abad.bb.h, 2, 2, 2)
|
||||
--- view_coord(abad.x, abad.y, 2, 2, 3)
|
||||
|
||||
if key.press(key.T) then
|
||||
view_tile_id = not view_tile_id
|
||||
view_checking_tile = false
|
||||
end
|
||||
if key.press(key.C) then
|
||||
view_checking_tile = not view_checking_tile
|
||||
view_tile_id = false
|
||||
end
|
||||
|
||||
if view_tile_id then
|
||||
write_tile(abad.x, abad.y, 0, true, "R")
|
||||
write_tile(abad.x, abad.y+16, 0, true, "R")
|
||||
write_tile(abad.x, abad.y+32, 0, true, "R")
|
||||
|
||||
write_tile(abad.x+16, abad.y+32, 0, true, "C")
|
||||
|
||||
write_tile(abad.x+32, abad.y, 0, true, "L")
|
||||
write_tile(abad.x+32, abad.y+16, 0, true, "L")
|
||||
write_tile(abad.x+32, abad.y+32, 0, true, "L")
|
||||
end
|
||||
|
||||
if view_checking_tile then
|
||||
local msg = "FLIP= true"
|
||||
if not abad.flip then
|
||||
msg ="FLIP= false"
|
||||
view_coord(abad.x+abad.bb.w+abad.bb.x-1, abad.y+abad.bb.h-4, 2, 2, 2)
|
||||
else
|
||||
view_coord(abad.x+abad.bb.x-1, abad.y+abad.bb.h-4, 2, 2, 2)
|
||||
end
|
||||
msg_print(abad.x, abad.y-8,msg)
|
||||
end
|
||||
end
|
||||
|
||||
function msg_print(x, y, msg )
|
||||
draw.rectf(x,y,45,14,16)
|
||||
draw.text(msg,x+1,y+1,2)
|
||||
function msg_print(x, y, msg, direct_print )
|
||||
local scr_x, scr_y
|
||||
direct_print = direct_print or false
|
||||
if direct_print then
|
||||
scr_x = x
|
||||
scr_y = y
|
||||
else
|
||||
scr_x, scr_y = viewp:screen_coords(x, y)
|
||||
end
|
||||
draw.rectf(scr_x,scr_y,45,7,16)
|
||||
draw.text(msg,scr_x+1,scr_y+1,2)
|
||||
end
|
||||
|
||||
function view_coord(x, y, w, h, color)
|
||||
local scr_x, scr_y = viewp:screen_coords(x, y)
|
||||
draw.rect(scr_x, scr_y, w, h, color)
|
||||
end
|
||||
|
||||
function write_tile(x, y, yplus, print_type, align )
|
||||
local scr_x, scr_y = viewp:screen_coords(x, y)
|
||||
local hab, xx, yy = arc_mapa_get_map_coords(x, y)
|
||||
|
||||
yplus = yplus or 0
|
||||
print_type = print_type or false
|
||||
align = align or "R"
|
||||
|
||||
local txt_offset = -7
|
||||
if align=="R" then txt_offset = -14
|
||||
elseif align=="L" then txt_offset = 0
|
||||
end
|
||||
|
||||
draw.rectf(scr_x+txt_offset,scr_y+yplus,14,7,16)
|
||||
local msg = mapa_get_tile(hab,xx,yy)
|
||||
if print_type then
|
||||
msg = msg.." "..arc_check_tile(x, y)
|
||||
end
|
||||
draw.text(msg,scr_x+txt_offset+1,scr_y+1+yplus,2)
|
||||
end
|
||||
Reference in New Issue
Block a user