mirror of
https://gitlab.com/MaddoScientisto/cirnofarm.git
synced 2026-06-21 04:03:47 +00:00
collisions
This commit is contained in:
parent
cb923593aa
commit
32240e598f
2 changed files with 63 additions and 27 deletions
|
|
@ -6,7 +6,7 @@ version 2
|
||||||
:: sfx/
|
:: sfx/
|
||||||
:: gfx/0.gfx
|
:: gfx/0.gfx
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0xNSAxODowNzowMiIscmV2aXNpb249MTU5XV1sejQAVQIAAG8zAADzFHtbMF09e2JtcD1weHUA
|
NC0xNSAyMToxMjowNyIscmV2aXNpb249MTkzXV1sejQAVQIAAG8zAADzFHtbMF09e2JtcD1weHUA
|
||||||
QyAQEATw8CxmbGFncz0wLHBhbl94CADKeT0wLHpvb209N30sMQDxCK8bI94DfgPeI94D-gkTbgNO
|
QyAQEATw8CxmbGFncz0wLHBhbl94CADKeT0wLHpvb209N30sMQDxCK8bI94DfgPeI94D-gkTbgNO
|
||||||
E24jTgN_EwD-A44DPgNOAy4jfiMuA54D-hQDLl0AHPAJ8EVNgC0mLVAdZh0FIB2GDRUAHZYdFQ2m
|
E24jTgN_EwD-A44DPgNOAy4jfiMuA54D-hQDLl0AHPAJ8EVNgC0mLVAdZh0FIB2GDRUAHZYdFQ2m
|
||||||
BADDDRUADZYdBRC9BfATVwAfMVcAFP8VUESAFE8fFFAPFI8fBEAvFE8fJEAPFB8fRB4EQA8UXg0e
|
BADDDRUADZYdBRC9BfATVwAfMVcAFP8VUESAFE8fFFAPFI8fBEAvFE8fJEAPFB8fRB4EQA8UXg0e
|
||||||
|
|
@ -22,7 +22,7 @@ BQAFHAVgBQwFIAUMBXAFQAXwBbIAHg8xAP------------------------------------------
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixzdG9yZWQ9IjIwMjQtMDQt
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixzdG9yZWQ9IjIwMjQtMDQt
|
||||||
MDQgMDc6MTk6MzMiXV1sejQABAAAAAMAAAAwbmls
|
MDQgMDc6MTk6MzMiXV1sejQABAAAAAMAAAAwbmls
|
||||||
:: main.lua
|
:: main.lua
|
||||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-15 18:07:02",revision=224]]
|
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-15 21:12:07",revision=257]]
|
||||||
--cd("/cirnofarm/src")
|
--cd("/cirnofarm/src")
|
||||||
include("/cirnofarm/src/cirno.lua")
|
include("/cirnofarm/src/cirno.lua")
|
||||||
--function _init()
|
--function _init()
|
||||||
|
|
@ -53,33 +53,32 @@ include("/cirnofarm/src/cirno.lua")
|
||||||
--end
|
--end
|
||||||
:: map/0.map
|
:: map/0.map
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0xNSAxODowNzowMiIscmV2aXNpb249MTY1XV1sejQAowEAANggAADwCHt7Ym1wPXVzZXJkYXRh
|
NC0xNSAyMToxMjowNyIscmV2aXNpb249MjAzXV1sejQAtAEAANggAADwCHt7Ym1wPXVzZXJkYXRh
|
||||||
KCJpMTYiLDMyAwAvIjABAP9-LzEwDAADDhAADwEA-w0vMjABAAMvMzBMACEPAQB7HzPcAAYPAQD-
|
KCJpMTYiLDMyAwAvIjABAPsfOQQAHg8BADsDVAAfMQwABA8QAAEPAQA6HzkEAB4PAQCHLzIwAQAD
|
||||||
dA8wAh4P0AGcHzL0AEgfMkQAdB8wxAFRD_wAmB8ybAAND-QCyB8zHAAVDyQBOA9IAAEvMjABAGgP
|
LzMwTAAhDwEAex8z3AAGDwEA-3QPMAIeD9ABnB8y9ABIHzJEAHQfMMQBUQ-sAJgfMmwADQ-0Asgf
|
||||||
kADQD_gBCR8wXAAuDwEArx8y3AARDxQCrB8yvAECDwEA8w9MAQ0vMzABAP_d8RciKSxoaWRkZW49
|
MxwAFQ8kATgPSAABLzIwAQBoD5AA0A-oAQkfMFwALg8BAK8fMtwAEQ8UAqwfMrwBAg8BAPMPTAEN
|
||||||
ZmFsc2UsbmFtZT0ic29saWQiLHBhbl94PS05MgoA8gF5PS0xNDQsdGlsZV9oPTE2CgAQdwoAj3pv
|
LzMwAQD-nfEXIiksaGlkZGVuPWZhbHNlLG5hbWU9InNvbGlkIixwYW5feD0tOTAKAPIBeT0tMTM5
|
||||||
b209MX0saRALHzEEAPgfOQQAIB8xBAA4HzkEACAfMQQAOB85BAAgHzEEADgfOAQAHB8xBAA8HzgE
|
LHRpbGVfaD0xNgoAEHcKAI96b29tPTF9LGkQCx8xBAD4DwEAIR8xBAA4BAEAHzkMAAQPEAABHzEE
|
||||||
ABwfMQQAPB84BAAcHzEEADwfOAQAHB8xBAA8HzgEABwfMQQAPB84BAAcHzEEADwfOAQAHB8xBAA8
|
ADgPAQAhHzEEADgfOAQAHB8xBAA8HzgEABwXOTwADwQAMR84gACcHzEEADwfOAQAHB8xBAA8HzgE
|
||||||
HzgEABwfMQQAPB84BAAcHzEEADwfOAQAHB8xBAD----------7UPaRADn2JhY2tncm91bm4QHFBt
|
ABwfMQQAPB84BAAcHzEEADwfOAQAHB8xBAA8HzgEABwfMQQAPB84BAAcHzEEAP----------tQ9p
|
||||||
PTF9fQ==
|
EAOfYmFja2dyb3VubhAcUG09MX19
|
||||||
:: map/.info.pod
|
:: map/.info.pod
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixzdG9yZWQ9IjIwMjQtMDQt
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixzdG9yZWQ9IjIwMjQtMDQt
|
||||||
MDQgMDc6MTk6MzMiXV1sejQABAAAAAMAAAAwbmls
|
MDQgMDc6MTk6MzMiXV1sejQABAAAAAMAAAAwbmls
|
||||||
:: sfx/0.sfx
|
:: sfx/0.sfx
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0xNSAxODowNzowMiIscmV2aXNpb249MTM2XV1sejQAbAEAAJEIAADwJ3B4dQADKAAAAwAED0AQ
|
NC0xNSAyMToxMjowNyIscmV2aXNpb249MTY2XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||||
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
||||||
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
||||||
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
||||||
EAEgASAB8AACEAIMEAEgDyEgATAPQPDDDygP--DGD-gKD-8PgA-3Dw0B8AkBEAYMMAA-Dw-gMQAb
|
EAEgASAB8AACEAIMEAEgDyEgATAPQPDDDygP--DGD-gKD-8PgA-3Dw0B8AkBEAYMMAA-Dw-gMQAb
|
||||||
L-AAMAD--4If-wEAzPAR6A9AAA1ADzkfOg88DzYfRg8pDy8PMA8_Dx0PQg8fDyILBWEvKA8tDzMp
|
L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
|
||||||
BfMCMg8xDz0POw85DzgPNQ8xDyxJBfEBPQ8_--8K8Rb_CvwW-grwcFYAX-6w8HADCAD-3B--AQCX
|
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
||||||
UP----8f
|
|
||||||
:: sfx/.info.pod
|
:: sfx/.info.pod
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixzdG9yZWQ9IjIwMjQtMDQt
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixzdG9yZWQ9IjIwMjQtMDQt
|
||||||
MDQgMDc6MTk6MzMiXV1sejQABAAAAAMAAAAwbmls
|
MDQgMDc6MTk6MzMiXV1sejQABAAAAAMAAAAwbmls
|
||||||
:: .info.pod
|
:: .info.pod
|
||||||
b64$LS1bW3BvZCxydW50aW1lPTUsc3RvcmVkPSIyMDI0LTA0LTE1IDE4OjA3OjAyIix3b3Jrc3Bh
|
b64$LS1bW3BvZCxydW50aW1lPTUsc3RvcmVkPSIyMDI0LTA0LTE1IDIxOjEyOjA3Iix3b3Jrc3Bh
|
||||||
Y2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzIiLHdvcmtzcGFjZV9pbmRleD0xfSx7bG9jYXRpb249
|
Y2VzPXt7bG9jYXRpb249Im1haW4ubHVhIzIiLHdvcmtzcGFjZV9pbmRleD0xfSx7bG9jYXRpb249
|
||||||
ImdmeC8wLmdmeCIsd29ya3NwYWNlX2luZGV4PTJ9LHtsb2NhdGlvbj0ibWFwLzAubWFwIix3b3Jr
|
ImdmeC8wLmdmeCIsd29ya3NwYWNlX2luZGV4PTJ9LHtsb2NhdGlvbj0ibWFwLzAubWFwIix3b3Jr
|
||||||
c3BhY2VfaW5kZXg9M30se2xvY2F0aW9uPSJzZngvMC5zZngiLHdvcmtzcGFjZV9pbmRleD00fX1d
|
c3BhY2VfaW5kZXg9M30se2xvY2F0aW9uPSJzZngvMC5zZngiLHdvcmtzcGFjZV9pbmRleD00fX1d
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-15 17:58:22",revision=94]]
|
--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-15 22:01:12",revision=116]]
|
||||||
--include("/cirnofarm/src/actor.lua")
|
--include("/cirnofarm/src/actor.lua")
|
||||||
|
|
||||||
mouse_debug = true
|
mouse_debug = true
|
||||||
|
|
@ -11,22 +11,18 @@ function _init()
|
||||||
add(player, {
|
add(player, {
|
||||||
x=128,
|
x=128,
|
||||||
y=128,
|
y=128,
|
||||||
|
w=16,
|
||||||
|
h=16,
|
||||||
speed=1.2,
|
speed=1.2,
|
||||||
hflip=false,
|
hflip=false,
|
||||||
spriteIndex=64,
|
spriteIndex=64,
|
||||||
move_x=0,
|
move_x=0,
|
||||||
move_y=0,
|
move_y=0,
|
||||||
cm=false, -- Collide with map tiles
|
cm=true, -- Collide with map tiles
|
||||||
cb=true, -- Collide with world bounds
|
cb=true, -- Collide with world bounds
|
||||||
draw=function(self)
|
draw=function(self)
|
||||||
spr(self.spriteIndex,self.x,self.y, self.hflip)
|
spr(self.spriteIndex,self.x,self.y, self.hflip)
|
||||||
|
drawCollision(self)
|
||||||
if (mouse_debug == true) then
|
|
||||||
local col = 8;
|
|
||||||
if (checkCollision(self.move_x,self.move_y) == true) then col = 7 end
|
|
||||||
--pset(self.move_x,self.move_y,col)
|
|
||||||
end
|
|
||||||
|
|
||||||
end,
|
end,
|
||||||
update=function(self)
|
update=function(self)
|
||||||
self.move_x = self.x
|
self.move_x = self.x
|
||||||
|
|
@ -36,9 +32,13 @@ function _init()
|
||||||
if (btn(2)) self.move_y -= self.speed
|
if (btn(2)) self.move_y -= self.speed
|
||||||
if (btn(3)) self.move_y += self.speed
|
if (btn(3)) self.move_y += self.speed
|
||||||
|
|
||||||
|
|
||||||
|
--if (can_move(self.move_x,self.move_y)) then
|
||||||
--if (cmap(self) == false) then
|
--if (cmap(self) == false) then
|
||||||
self.x = self.move_x
|
self.x = self.move_x
|
||||||
self.y = self.move_y
|
self.y = self.move_y
|
||||||
|
--else
|
||||||
|
-- sfx(0)
|
||||||
--end
|
--end
|
||||||
--if (checkCollision(col_x,col_y) == false) then
|
--if (checkCollision(col_x,col_y) == false) then
|
||||||
-- x = col_x
|
-- x = col_x
|
||||||
|
|
@ -76,8 +76,45 @@ function _update()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function checkCollision(x,y)
|
function drawCollision(o)
|
||||||
return fget(mget(x/tile_width,y/tile_height),0)
|
local right = o.x+o.w+o.speed
|
||||||
|
local left = o.x-o.speed
|
||||||
|
local bottom = o.y+o.h+o.speed
|
||||||
|
local top = o.y-o.speed
|
||||||
|
|
||||||
|
rect(left,top,right,bottom,2)
|
||||||
|
end
|
||||||
|
|
||||||
|
function checkCollision(o)
|
||||||
|
-- check right
|
||||||
|
-- devo controllare la collisione prima di calcolare il dove, per ogni input direzionale
|
||||||
|
local right = o.x+o.w+o.speed
|
||||||
|
local left = o.x-o.speed
|
||||||
|
local bottom = o.y+o.h+o.speed
|
||||||
|
local top = o.y-o.speed
|
||||||
|
|
||||||
|
if (not is_tile(1,top,left)
|
||||||
|
and not is_tile(1,top,right)
|
||||||
|
)
|
||||||
|
|
||||||
|
-- check left
|
||||||
|
-- check top
|
||||||
|
-- check bottom
|
||||||
|
return is_tile(0,x,y)
|
||||||
|
--return fget(mget(x/tile_width,y/tile_height),0)
|
||||||
|
end
|
||||||
|
|
||||||
|
function is_tile(tile_type,x,y)
|
||||||
|
local tile = mget(x/tile_width,y/tile_height)
|
||||||
|
local has_flag = fget(tile,tile_type)
|
||||||
|
return has_flag
|
||||||
|
end
|
||||||
|
|
||||||
|
function can_move(x,y)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
return not is_tile(1,x,y)
|
||||||
end
|
end
|
||||||
|
|
||||||
function debug_mouse()
|
function debug_mouse()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue