mirror of
https://gitlab.com/MaddoScientisto/cirnofarm.git
synced 2026-06-01 08:45:34 +00:00
Movable object
This commit is contained in:
parent
56fa9bce02
commit
5e667fd6d2
6 changed files with 97 additions and 17 deletions
|
|
@ -6,7 +6,7 @@ version 2
|
|||
:: sfx/
|
||||
:: gfx/0.gfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMiIscmV2aXNpb249ODg0XV1sejQAkAgAAPw9AADzFHtbMF09e2JtcD1weHUA
|
||||
NC0yNiAxMjoyMjo0MCIscmV2aXNpb249ODk2XV1sejQAkAgAAPw9AADzFHtbMF09e2JtcD1weHUA
|
||||
QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D
|
||||
ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN
|
||||
pgQAww0VAA2WHQUQvQXwE1gAHzNYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U
|
||||
|
|
@ -48,11 +48,11 @@ CAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA----------------------------------------
|
|||
----w1A9MTF9fQ==
|
||||
:: gfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yNiAxMjoyMjo0MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: map/0.map
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMiIscmV2aXNpb249OTA0XV1sejQAngMAABVCAADwCHt7Ym1wPXVzZXJkYXRh
|
||||
NC0yNiAxMjoyMjo0MCIscmV2aXNpb249OTE5XV1sejQAngMAABVCAADwCHt7Ym1wPXVzZXJkYXRh
|
||||
KCJpMTYiLDMyAwAvIjABAP_DLjEwDAAPAQDhPzQ4MAEAXi80MAEACz8xMzABAHMXNAQADwEANQ9Q
|
||||
ACEfM4AAbg8BALoqNDgIAQ8EAwcOIAAPAQA2BIAAHzNgAQAvMzABAE4vNDgYAA8OJAAPAQA5DmgA
|
||||
DwEAch4zgAEPgABgDwEA---------7-1HSIpLGhpZGRlbj1mYWxzZSxuYW1lPSJvYmplY3RzIixw
|
||||
|
|
@ -71,11 +71,11 @@ NR84gAD-bC4xYngED4AAAQQcAA6ABA8BADQfOAQAEg8BAEYvMTgEABMPAQBFLzE4BAATDwEARS8x
|
|||
OAQAEw8BAEYfOAQAIg8BADcfOAQAIg8JIbZMYmFjawkhTjEyLjOHECgyNhYAD4cQBlBtPTF9fQ==
|
||||
:: map/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yNiAxMjoyMjo0MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: sfx/0.sfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMiIscmV2aXNpb249NzQxXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
NC0yNiAxMjoyMjo0MCIscmV2aXNpb249NzUyXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
||||
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
||||
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
||||
|
|
@ -84,14 +84,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
|
|||
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
||||
:: sfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0yNiAxMjoyMjo0MCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: main.lua
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 12:00:12",revision=1005]]
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 12:22:40",revision=1022]]
|
||||
include("/cirnofarm/src/game.lua")
|
||||
:: .info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0yNiAxMjowMDoxMyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
NC0yNiAxMjoyMjo0MCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
|
||||
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
|
||||
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9
|
||||
|
|
|
|||
|
|
@ -8,7 +8,9 @@ Actor = {
|
|||
function Actor:new(new_x,new_y)
|
||||
local o = {
|
||||
x=new_x,
|
||||
y=new_y,
|
||||
y=new_y,
|
||||
w=16,
|
||||
h=16
|
||||
}
|
||||
|
||||
return setmetatable(o, {__index=self})
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ local Actor = require(make_path("actor2"))
|
|||
|
||||
-- return barrel
|
||||
|
||||
Barrel = Actor:new()
|
||||
local Barrel = Actor:new()
|
||||
Barrel.spriteIndex = 3
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ local mouse_debug = require(make_path("mouse_debug"))
|
|||
local map_manager = require(make_path("map"))
|
||||
local weapons_manager = require(make_path("weapons"))
|
||||
local Barrel = require(make_path("barrel"))
|
||||
local Strawberry = require(make_path("strawberry"))
|
||||
|
||||
tile_width = 16
|
||||
tile_height = 16
|
||||
|
|
@ -104,7 +105,7 @@ function _draw()
|
|||
mouse_debug.draw(4, tile_width, tile_height)
|
||||
weapons_manager.debug_draw()
|
||||
|
||||
|
||||
print(string.format("Actors: %d", count(actors)),0,32+8)
|
||||
|
||||
end
|
||||
|
||||
|
|
@ -121,7 +122,11 @@ function spawn_objects()
|
|||
if (tile == 3) then
|
||||
local b = Barrel:new(x*tile_width,y*tile_height)
|
||||
add(actors,b)
|
||||
elseif(tile == 72) then
|
||||
local s = Strawberry:new(x*tile_width,y*tile_height)
|
||||
add(actors,s)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
|||
72
src/movable_actor.lua
Normal file
72
src/movable_actor.lua
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
local Actor = require(make_path("actor2"))
|
||||
local map_manager = require(make_path("map"))
|
||||
|
||||
local MovableActor = Actor:new()
|
||||
MovableActor.speed=0.05
|
||||
MovableActor.hflip=false
|
||||
MovableActor.move_x=0
|
||||
MovableActor.move_y=0
|
||||
MovableActor.noclip=false
|
||||
MovableActor.collide_map=true
|
||||
MovableActor.collide_actors=true
|
||||
MovableActor.collide_bounds=true
|
||||
|
||||
function MovableActor:draw()
|
||||
spr(self.spriteIndex,self.x,self.y, self.hflip)
|
||||
|
||||
end
|
||||
|
||||
function MovableActor:update()
|
||||
self:move()
|
||||
end
|
||||
|
||||
function MovableActor:move()
|
||||
local hitbox_x = 4
|
||||
local hitbox_y = 8
|
||||
local hitbox_w = 6
|
||||
local hitbox_h = 8
|
||||
|
||||
if (self.collide_map) then
|
||||
if (check_collision(self.x+self.move_x+hitbox_x,
|
||||
self.y+hitbox_y,
|
||||
hitbox_w,
|
||||
hitbox_h)) then
|
||||
if (not self.noclip) then self.move_x = 0 end
|
||||
end
|
||||
|
||||
if (check_collision(self.x+hitbox_x,
|
||||
self.y+self.move_y+hitbox_y,
|
||||
hitbox_w,
|
||||
hitbox_h)) then
|
||||
if (not self.noclip) then self.move_y = 0 end
|
||||
end
|
||||
end
|
||||
|
||||
self.move_x *= 0.95
|
||||
self.move_y *= 0.95
|
||||
|
||||
self.x += self.move_x
|
||||
self.y += self.move_y
|
||||
end
|
||||
|
||||
function check_collision(x,y,w,h)
|
||||
local collide = false
|
||||
|
||||
for i=x,x+w,w do
|
||||
|
||||
if (map_manager.is_tile_solid(i,y) or map_manager.is_tile_solid(i,y+h)) then
|
||||
collide = collide or true
|
||||
end
|
||||
end
|
||||
|
||||
for i=y,y+h do
|
||||
if (map_manager.is_tile_solid(x,i) or map_manager.is_tile_solid(x+w,i)) then
|
||||
collide = collide or true
|
||||
end
|
||||
end
|
||||
|
||||
return collide
|
||||
end
|
||||
|
||||
|
||||
return MovableActor
|
||||
|
|
@ -1,8 +1,9 @@
|
|||
--[[pod_format="raw",created="2024-04-22 19:32:54",modified="2024-04-23 20:21:06",revision=6]]
|
||||
M = {}
|
||||
local MovableActor = require(make_path("movable_actor"))
|
||||
local Strawberry = MovableActor:new()
|
||||
Strawberry.spriteIndex = 72
|
||||
Strawberry.collide_map=false
|
||||
Strawberry.collide_actors=false
|
||||
Strawberry.collide_bounds=false
|
||||
|
||||
function M.func()
|
||||
print("inside module.func()")
|
||||
end
|
||||
|
||||
return M
|
||||
return Strawberry
|
||||
Loading…
Add table
Add a link
Reference in a new issue