mirror of
https://gitlab.com/MaddoScientisto/cirnofarm.git
synced 2026-06-01 11:15:34 +00:00
Refactored code
This commit is contained in:
parent
cd9ec6cc01
commit
4407ce108b
8 changed files with 128 additions and 95 deletions
|
|
@ -6,7 +6,7 @@ version 2
|
|||
:: sfx/
|
||||
:: gfx/0.gfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MiIscmV2aXNpb249NzE5XV1sejQAiwYAAN86AADzFHtbMF09e2JtcD1weHUA
|
||||
NC0yNSAyMTowNzoxNyIscmV2aXNpb249NzY0XV1sejQAiwYAAN86AADzFHtbMF09e2JtcD1weHUA
|
||||
QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D
|
||||
ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN
|
||||
pgQAww0VAA2WHQUQvQXwE1gAHzNYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U
|
||||
|
|
@ -39,29 +39,31 @@ EAgAGFAYUBgKAAQWAD84AAg3AR8PMgD--------------------------------------------D
|
|||
UD0xMX19
|
||||
:: gfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yNSAyMTowNzoxNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: map/0.map
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MiIscmV2aXNpb249NzM2XV1sejQAawIAALFBAADwCHt7Ym1wPXVzZXJkYXRh
|
||||
NC0yNSAyMTowNzoxNyIscmV2aXNpb249Nzg5XV1sejQA6AIAAKtBAADwCHt7Ym1wPXVzZXJkYXRh
|
||||
KCJpMTYiLDMyAwAvIjABAP--jD80ODABAF4vNDABAAs-MTMw9AL--1wOBAMOIAAPAQBGEzMEAAgB
|
||||
AC8zMAEATi80OBgADw4kAA8BADkOaAAPAQD----------8vxGSIpLGhpZGRlbj1mYWxzZSxuYW1l
|
||||
PSJvYmplY3RzIixwYW5feD0tODYKAPIBeT0tMTEwLHRpbGVfaD0xNgoAEHcKAI96b29tPTF9LGsQ
|
||||
-58uMTAMAA8BAP-vL2EwgADtDwEA--------------9LD2sQA6Vmb3JlZ3JvdW5kbhAvOTRuEL4v
|
||||
MzkEAAMPAQBRYzMyMDAwOQQAGmIMAA-MG1AKgAAaMAwAHzMAAW0WOIwBDwQAAQ_AADYPAQAFHmOU
|
||||
AAgIAB8zgABZFzAMAA_AAD0XNQQACAEADBAAGjMEAC8zMIAANB402iEPPAAPD4AAaB8zgAA8HzUE
|
||||
AAwEAQAaNQQAD4AANg8BACIPgAA8HzOAAGwfMIAAoQ8BAP-NHzMcABgvMjABADMPSAABLzIwAQBo
|
||||
D5AA0A-oAQkfMFwALg8BAK8fMtwAEQ8UAqwfMrwBAg8BAPMPTAENLzMwbhD-s0dzb2xpaRAfOGkQ
|
||||
MQ8BAP_ELjkwDAAPzyHRH2EEAAMPAQBVLzFhBAADLzAwkAFTJzFiBAAWOQQALzA4BAAKDwEANx84
|
||||
BAAiDwEANx84BAAiD4ABNx84BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8x
|
||||
OAQAIw-XIP----------xUxiYWNr1yAPbhARUG09MX19
|
||||
PSJvYmplY3RzIixwYW5feD0tNjEKAOJ5PTIzLHRpbGVfaD0xNgoAEHcKAI96b29tPTF9LGkQ-58u
|
||||
MTAMAA8BAP-vL2EwgADtDwEA--------------9LD2kQA6Vmb3JlZ3JvdW5kbBAjOTRsEE8tMTEw
|
||||
bhCzLzM5BAADDwEAUWMzMjAwMDkEABpiDAAPyhtQCoAAGjAMAB8zAAFtFjiMAQ8EAAEPgAA2DwEA
|
||||
BR5jlAAICAAfM4AAWRcwDAAPgAA9FzUEAAgBAAwQABozBAAvMzCAADQeNNghDzwADw_AAGgfM4AA
|
||||
PB81BAAMBAEAGjUEAA_AADYPAQAiD4AAPB8zgABsHzCAAP--gh8zHAALCR8AHzKAADQOSAAPFAAD
|
||||
AoMADwABSw8BAAUfMoAAbAwAAS8yMIAAKx8zgAAsDyUACg8AAVAPAQAKD4AAMB8ygAAFDwEAiC8y
|
||||
MDAALy8zMAEA8w9MAQ0vMzBuEP_zX3NvbGlk1SD-0AHDDg4MAA-NIc8fYQQAAw8BAFUvMWEEAAMv
|
||||
MDCQAVMnMWIEABY5BAAvMDgEAAoPAQA3HzgEACIPAQA3HzgEACIPgAE3HzgEACMPAQA1LzE4BAAj
|
||||
DwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8xYgQAAAQIBB9iBAAHDwEANh84BAAi
|
||||
DwEANx84BAAiDwEANx84BAAiDwEANx44BAAQMgQAFzkEABZhHAAFBAAPAQA1HjgEAB8zjw4BHjgE
|
||||
AA8BADIfOIAAIg8BADcfOIAA-yMP1SD----BS2JhY2vVIA9sEBBQbT0xfX0=
|
||||
:: map/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yNSAyMTowNzoxNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: sfx/0.sfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MiIscmV2aXNpb249NjEzXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
NC0yNSAyMTowNzoxNyIscmV2aXNpb249NjU2XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
||||
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
||||
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
||||
|
|
@ -70,14 +72,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
|
|||
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
||||
:: sfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yNSAyMTowNzoxNyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: main.lua
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-24 20:52:42",revision=840]]
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-25 21:07:17",revision=904]]
|
||||
include("/cirnofarm/src/game.lua")
|
||||
:: .info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNCAyMDo1Mjo0MyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
NC0yNSAyMTowNzoxNyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
|
||||
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
|
||||
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9
|
||||
|
|
|
|||
24
src/actor2.lua
Normal file
24
src/actor2.lua
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
--M = {}
|
||||
|
||||
actor = {}
|
||||
actor.__index = actor
|
||||
function actor:new(x,y)
|
||||
local o = setmetatable({}, actor)
|
||||
o.x=x
|
||||
o.y=y
|
||||
o.life=100
|
||||
o.spriteIndex=0
|
||||
return o
|
||||
end
|
||||
|
||||
function actor:update()
|
||||
|
||||
end
|
||||
|
||||
function actor:draw()
|
||||
spr(self.spriteIndex,self.x,self.y)
|
||||
end
|
||||
|
||||
--M.actor = actor
|
||||
|
||||
return actor
|
||||
33
src/barrel.lua
Normal file
33
src/barrel.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
--local actor = require("actor2")
|
||||
|
||||
-- barrel = setmetatable({}, {__index = actor})
|
||||
-- function barrel:new(actor)
|
||||
-- local instance = setmetatable({
|
||||
-- x = 0,
|
||||
-- })
|
||||
-- end
|
||||
|
||||
-- return barrel
|
||||
|
||||
barrel = {}
|
||||
barrel.__index = barrel
|
||||
function barrel:new(x,y)
|
||||
local o = setmetatable({}, barrel)
|
||||
o.x=x
|
||||
o.y=y
|
||||
o.life=100
|
||||
o.spriteIndex=0
|
||||
return o
|
||||
end
|
||||
|
||||
function barrel:update()
|
||||
|
||||
end
|
||||
|
||||
function barrel:draw()
|
||||
spr(self.spriteIndex,self.x,self.y)
|
||||
end
|
||||
|
||||
--M.actor = actor
|
||||
|
||||
return barrel
|
||||
|
|
@ -11,52 +11,6 @@ h=300
|
|||
asdf = {top=0, side=1}
|
||||
LAYERS_COUNT=4
|
||||
|
||||
LAYERS = {
|
||||
{index=4, name="background", render=true, render_objects=false, spawn_objects=false},
|
||||
{index=3, name="solid", render=true, render_objects=true, spawn_objects=false},
|
||||
{index=2, name="foreground", render=true, render_objects=false, spawn_objects=false},
|
||||
{index=1, name="objects", render=false, render_objects=false, spawn_objects=true}
|
||||
}
|
||||
|
||||
-- function create_bullet(new_x, new_y, dir_x, dir_y)
|
||||
|
||||
-- -- Calculate the length of the direction vector
|
||||
-- local length = sqrt(dir_x^2 + dir_y^2)
|
||||
|
||||
-- -- Normalize the direction vector
|
||||
-- local normalized_dir_x = dir_x / length
|
||||
-- local normalized_dir_y = dir_y / length
|
||||
|
||||
-- add(bullets, {
|
||||
-- x=new_x,
|
||||
-- y=new_y,
|
||||
-- dx=normalized_dir_x * 2,
|
||||
-- dy=normalized_dir_y * 2,
|
||||
-- spriteIndex=80,
|
||||
-- destroy_sprite_index=66,
|
||||
-- life=100,
|
||||
-- draw=function(self)
|
||||
-- --pset(self.x,self.y,8)
|
||||
-- spr(self.spriteIndex,self.x,self.y)
|
||||
-- end,
|
||||
-- update=function(self)
|
||||
-- self.x+=self.dx
|
||||
-- self.y+=self.dy
|
||||
|
||||
-- self.life-=1
|
||||
-- if self.life<0 then
|
||||
-- del(bullets,self)
|
||||
-- -- TODO: Create particle
|
||||
-- end
|
||||
|
||||
-- self.check_collision(self)
|
||||
-- end,
|
||||
-- check_collision=function(self)
|
||||
-- -- If Collide with wall destroy self and create particle
|
||||
|
||||
-- end
|
||||
-- })
|
||||
-- end
|
||||
|
||||
function draw_crosshair(self)
|
||||
local radius = 20 -- Adjust the radius of the crosshair as needed
|
||||
|
|
@ -146,52 +100,26 @@ function cirno_init()
|
|||
end
|
||||
|
||||
function cirno_draw()
|
||||
cls(0)
|
||||
--cls(0)
|
||||
--camera(x - 240, y - 135)
|
||||
|
||||
foreach(LAYERS, render_layer)
|
||||
--drawMap()
|
||||
|
||||
--debug_mouse()
|
||||
for p in all(player) do
|
||||
p:draw()
|
||||
end
|
||||
|
||||
print(string.format("%.4f %dfps",stat(1),stat(7)),2,16,5)
|
||||
|
||||
weapons_manager.debug_draw()
|
||||
end
|
||||
|
||||
function render_layer(layer)
|
||||
if (layer.render) then
|
||||
map(fetch"map/0.map"[layer.index].bmp)
|
||||
end
|
||||
|
||||
if (layer.render_objects) then
|
||||
-- Render all objects here
|
||||
for p in all(player) do
|
||||
p:draw()
|
||||
end
|
||||
|
||||
weapons_manager.draw()
|
||||
|
||||
-- for b in all(bullets) do
|
||||
-- b:draw()
|
||||
-- end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function drawMap()
|
||||
for i=LAYERS_COUNT,1,-1 do
|
||||
map(fetch"map/0.map"[i].bmp)
|
||||
end
|
||||
end
|
||||
|
||||
function cirno_update()
|
||||
for p in all(player) do
|
||||
p:update()
|
||||
end
|
||||
|
||||
weapons_manager.update()
|
||||
|
||||
end
|
||||
|
||||
function check_collision(x,y,w,h)
|
||||
|
|
|
|||
36
src/game.lua
36
src/game.lua
|
|
@ -53,6 +53,8 @@ end
|
|||
|
||||
local cirno = require(make_path("cirno"))
|
||||
local mouse_debug = require(make_path("mouse_debug"))
|
||||
local map_manager = require(make_path("map"))
|
||||
local weapons_manager = require(make_path("weapons"))
|
||||
|
||||
tile_width = 16
|
||||
tile_height = 16
|
||||
|
|
@ -63,9 +65,41 @@ end
|
|||
|
||||
function _update()
|
||||
cirno.update()
|
||||
|
||||
weapons_manager.update()
|
||||
end
|
||||
|
||||
LAYERS = {
|
||||
{index=4, name="background", render=true, render_objects=false, spawn_objects=false},
|
||||
{index=3, name="solid", render=true, render_objects=true, spawn_objects=false},
|
||||
{index=2, name="foreground", render=true, render_objects=false, spawn_objects=false},
|
||||
{index=1, name="objects", render=false, render_objects=false, spawn_objects=true}
|
||||
}
|
||||
|
||||
function _draw()
|
||||
cirno.draw()
|
||||
cls(0)
|
||||
|
||||
foreach(LAYERS, render_layer)
|
||||
|
||||
mouse_debug.draw(4, tile_width, tile_height)
|
||||
weapons_manager.debug_draw()
|
||||
end
|
||||
|
||||
function render_layer(layer)
|
||||
if (layer.render) then
|
||||
-- todo move function in map manager
|
||||
map(fetch("map/".. map_manager.get_current_map() .. ".map")[layer.index].bmp)
|
||||
end
|
||||
|
||||
if (layer.render_objects) then
|
||||
-- Render all objects here
|
||||
cirno.draw()
|
||||
|
||||
weapons_manager.draw()
|
||||
|
||||
-- for b in all(bullets) do
|
||||
-- b:draw()
|
||||
-- end
|
||||
end
|
||||
|
||||
end
|
||||
10
src/map.lua
10
src/map.lua
|
|
@ -1,3 +1,5 @@
|
|||
--local player = require(make_path("cirno"))
|
||||
|
||||
M = {}
|
||||
|
||||
local tile_width = 16
|
||||
|
|
@ -28,6 +30,14 @@ function M.is_tile_shoot_solid(x,y)
|
|||
return (tile_flags & 2) ~= 0
|
||||
end
|
||||
|
||||
function M.get_current_map()
|
||||
return current_map
|
||||
end
|
||||
|
||||
function M.get_layer_tile(x,y,layer)
|
||||
return get_layer_tile(x,y,layer)
|
||||
end
|
||||
|
||||
-- function M.can_move(x,y)
|
||||
-- return is_tile(0,x,y)
|
||||
-- end
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
--[[pod_format="raw",created="2024-04-22 19:55:03",modified="2024-04-22 20:14:14",revision=9]]
|
||||
local map_manager = require(make_path("map"))
|
||||
M = {}
|
||||
|
||||
function debug_mouse(layers_count, tile_width, tile_height)
|
||||
|
|
@ -28,7 +29,7 @@ function debug_mouse(layers_count, tile_width, tile_height)
|
|||
print(string.format("%d (%d)",tile_y,my),mx+x_offset,my+y_offset+8,9)
|
||||
|
||||
for i=layers_count,1,-1 do
|
||||
local sprite = get_layer_tile(tile_x,tile_y,i)
|
||||
local sprite = map_manager.get_layer_tile(tile_x,tile_y,i)
|
||||
local flag = fget(sprite)
|
||||
print(sprite,mx+x_offset+(i*16),my+y_offset+8*2,10)
|
||||
print(flag,mx+x_offset+(i*16),my+y_offset+8+8*2,10)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
--[[pod_format="raw",created="2024-04-24 07:17:14",modified="2024-04-24 20:33:05",revision=11]]
|
||||
local map_manager = require(make_path("map"))
|
||||
--local actor = require("actor2")
|
||||
|
||||
M = {}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue