mirror of
https://gitlab.com/MaddoScientisto/cirnofarm.git
synced 2026-06-01 08:45:34 +00:00
Added per-layer collisions
This commit is contained in:
parent
6392e9b07f
commit
254da24cf1
2 changed files with 64 additions and 34 deletions
|
|
@ -6,7 +6,7 @@ version 2
|
|||
:: sfx/
|
||||
:: gfx/0.gfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIscmV2aXNpb249MzQ2XV1sejQAZQUAALQ4AADzFHtbMF09e2JtcD1weHUA
|
||||
NC0xOCAxNzoxMTo0OCIscmV2aXNpb249NDEwXV1sejQAZQUAALQ4AADzFHtbMF09e2JtcD1weHUA
|
||||
QyAQEATw8CxmbGFncz0wLHBhbl94CADKeT0wLHpvb209Nn0sMQDxCK8bI94DfgPeI94D-gkTbgNO
|
||||
E24jTgN_EwD-A44DPgNOAy4jfiMuA54D-hQDLl0AHPAJ8EVNgC0mLVAdZh0FIB2GDRUAHZYdFQ2m
|
||||
BADDDRUADZYdBRC9BfATVwAfMVcAFPEaUESAFE8fFFAPFI8fBEAvFE8fJEAPFB8fRB4EQA8UPhoN
|
||||
|
|
@ -20,12 +20,12 @@ DhwODA4MbxUOCgBRHQwdDC0LALEdDgwdDA4tDhwOLQoAUgwtHC0MCgA0Dl0OCgA-DD0MDAACBSIA
|
|||
BTYABUoAAl8AMy0MTXMAI20MCQA-DP0DxAAc0B8V1B6UDx8kHgQNZB0GAD8UHSQIAAQwdB40BABQ
|
||||
DYQelA0SACZ0DSAAFzQGAH8EDRQNhB7UcgN_DzEAHvEUQF8UcB4PFT8fLkAeDxUOPx8PFQ4NDiAe
|
||||
DQ4NPx8ODQ4NDhAGAGE8DQ4NHgALADENDhwHABE_BgAhHA4HABEeBgAnDhQaACUUDhoA4CwNDixe
|
||||
TA4NTA0OAA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQCwBfuD2E51WDX8QDVYNDl8Y
|
||||
DgcAQgw-HgwJAD8LHAsKABISOwgAEFwGAFR_DVad9n8EHzPnAB4PMQCn8AqmBzYHFgeWB2YH9gQH
|
||||
9hQH9gUH9gYHpgdWEADPhgcmB-YJB7YHhgemWAAc9gD1Ad8YFd4V3xUV3hXeFd0GAH-1At0V3fUB
|
||||
TwAcT-YADQYCAMov9gFhAR5HDxYNDgIAOBUNDgIAL-UByweaL-DwMQD--zlf-xQS0B4CAAYPKQgc
|
||||
X-8UEPDQgQAePxDQHgIABw8xAR4PMQDgIh8ULAEPxwEGDxQCHy-ALgIAAi-_EUsAHB7QnAAP4AH-
|
||||
PS-_EH8AHU-Q-xQQxwE4L-4SMQEeDzEA4GEwPA8cLGAJDpEHDA4cMBwODEdeEZAODGcMDjAeFw4C
|
||||
TA4NTA0OAA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQCwBfuDwE51QDX8QDVANDl8Y
|
||||
DgcAQgw-HgwJAD8LHAsKABISOwgAEFwGAEV_DVCdCQcfM_cAHg8xAKfwCqYHNgcWB5YHZgf2BAf2
|
||||
FAf2BQf2BgemB1YQAM_GByYH9gkHtgeGB6ZYABz2APUB3xgV3hXfFRXeFd4V3QYAf-UC3RXd9QFP
|
||||
ABxP9gANBgIAyi-2AWEBHkcPFg0OAgA4FQ0OAgAv9QHLB5ov8PAxAP--OV--FBLQHgIABg8pCBxP
|
||||
-xQQ8DQAIC-QHgIABw5OAA8xARQPMQDYIh8ULAEPxwE3PxLALgIAAi-_EUsAHB7QnAAP4AH-PS-_
|
||||
EEMBHU-Q-xQQxwE4Lv4SgQAPMQEUDzEA2GEwPA8cLGAJDpEHDA4cMBwODEdeEZAODGcMDjAeFw4C
|
||||
ADIMQA4JAPAhIB4gVwAOMB4gNzAeQCwIHBAeQAcsCBwHQB4AB1wHAB4AHhB8EB4gBwwHDAdMcBcA
|
||||
CACfDHAXEBeQGBAYgwwd8gQwLD8ccBxuYAwOEA4QBw5gDAcOAwBgYAwHHAccCAD-MQ8XRw0OUBwn
|
||||
DScegAwHDqAHDAcIBw4HcAcMDggOCB4HUAccbgcwFyxeFyAXfAAXQAcAFwAHEAeQBwAHsBwAHFCQ
|
||||
|
|
@ -33,27 +33,28 @@ AR4PMQD-Ev8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9
|
|||
cG2QTbAtjAEfDzEA----------------------------------------------8CUG09Nn19
|
||||
:: gfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0xOCAxNzoxMTo0OCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: map/0.map
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIscmV2aXNpb249MzY1XV1sejQA5gEAAN4gAADwCHt7Ym1wPXVzZXJkYXRh
|
||||
KCJpMTYiLDMyAwAvIjABAHovMzkEAAMPAQBRYzMyMDAwOQQAGmIMAC8zMIAAWyoxMAwAD4AAXQ0A
|
||||
ARY4jAEPBAABD4AANg8BAAUeY5QACAgAHzOAAFgmMTMMAA_AAD4XNQQACAEADBAAGjMEAC8zMIAA
|
||||
NBM0BAAPPAAaD4AAaB8zgAA8HzUEAAwEAQAaNQQAD4AANg8BACIPgAA8HzOAAGwfMIAAoQ8BAP-N
|
||||
HzMcABgvMjABADMPSAABLzIwAQBoD5AA0A-oAQkfMFwALg8BAK8fMtwAEQ8UAqwfMrwBAg8BAPMP
|
||||
TAENLzMwAQD-nfEXIiksaGlkZGVuPWZhbHNlLG5hbWU9InNvbGlkIixwYW5feD0tOTgKAPIBeT0t
|
||||
MTEwLHRpbGVfaD0xNgoAEHcKAL96b29tPTAuMjV9LGwQCQ8BAP_ELjkwDAAPAQDQLzFhBAADDwEA
|
||||
VS8xYQQAAw8BAFUnMWIEABY5BAAvMDgEAAoPAQA3HzgEACIPAQA3HzgEACIPgAE3HzgEACMPAQA1
|
||||
LzE4BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEA----------_vD2wQA59iYWNr
|
||||
Z3JvdW5xEB9QLjI1fX0=
|
||||
NC0xOCAxNzoxMTo0OCIscmV2aXNpb249NDI5XV1sejQAMgIAALFBAADwCHt7Ym1wPXVzZXJkYXRh
|
||||
KCJpMTYiLDMyAwAvIjABAP---wEvNDABAAs-MTMwAQD--9kTMwQACAEALzMwAQD------------B
|
||||
8RkiKSxoaWRkZW49ZmFsc2UsbmFtZT0ib2JqZWN0cyIscGFuX3g9LTk4CgDyAXk9LTExMCx0aWxl
|
||||
X2g9MTYKABB3CgCPem9vbT0xfSxrEP_fLjEwDAAPAQD------------------1EPaxADr2ZvcmVn
|
||||
cm91bmRuEMkvMzkEAAMPAQBRYzMyMDAwOQQAGmIMAB8zgABdGjAMAB8zAAFtFjiMAQ8EAAEPgAA2
|
||||
DwEABR5jlAAICAAfM4AAWRcwDAAPgAA9FzUEAAgBAAwQABozBAAvMzCAADQeNNohDzwADw_AAGgf
|
||||
M4AAPB81BAAMBAEAGjUEAA_AADYPAQAiD4AAPB8zgABsHzCAAKEPAQD-zR8zHAAYLzIwAQAzD0gA
|
||||
AS8yMAEAaA_QANAP6AEJHzBcAC4PAQCvHzLcABEPFAKsHzK8AQIPAQDzD0wBDS8zMG4Q-7NPc29s
|
||||
aWkQPQ8BAP_ELjkwDAAPzyHRH2EEAAMPAQBVLzFhBAADLzAwkAFTJzFiBAAWOQQALzA4BAAKDwEA
|
||||
Nx84BAAiDwEANx84BAAiD4ABNx84BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEA
|
||||
NS8xOAQAIw-XIP----------xU9iYWNr1yAhUG09MX19
|
||||
:: map/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0xOCAxNzoxMTo0OCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: sfx/0.sfx
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIscmV2aXNpb249Mjg2XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
NC0xOCAxNzoxMTo0OCIscmV2aXNpb249MzQzXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
||||
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
||||
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
||||
|
|
@ -62,10 +63,10 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
|
|||
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
||||
:: sfx/.info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
NC0xOCAxNzoxMTo0OCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||
MG5pbA==
|
||||
:: main.lua
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-17 22:28:26",revision=390]]
|
||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-18 17:11:48",revision=453]]
|
||||
--cd("/cirnofarm/src")
|
||||
include("/cirnofarm/src/cirno.lua")
|
||||
--function _init()
|
||||
|
|
@ -96,7 +97,7 @@ include("/cirnofarm/src/cirno.lua")
|
|||
--end
|
||||
:: .info.pod
|
||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
|
||||
NC0xNyAyMjoyODoyNiIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
NC0xOCAxNzoxMTo0OCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMyIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
|
||||
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
|
||||
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-17 12:50:21",revision=231]]
|
||||
--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-18 17:11:46",revision=281]]
|
||||
--include("/cirnofarm/src/actor.lua")
|
||||
last_coll=0
|
||||
mouse_debug = true
|
||||
|
|
@ -7,6 +7,15 @@ h=300
|
|||
tile_width = 16
|
||||
tile_height = 16
|
||||
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=false, spawn_objects=false},
|
||||
{index=2, name="foreground", render=true, render_objects=true, spawn_objects=false},
|
||||
{index=1, name="objects", render=false, render_objects=false, spawn_objects=true}
|
||||
}
|
||||
|
||||
function _init()
|
||||
|
||||
player={}
|
||||
|
|
@ -71,17 +80,28 @@ function _draw()
|
|||
cls(0)
|
||||
--camera(x - 240, y - 135)
|
||||
|
||||
drawMap()
|
||||
foreach(LAYERS, render_layer)
|
||||
--drawMap()
|
||||
|
||||
for p in all(player) do
|
||||
p:draw()
|
||||
end
|
||||
|
||||
debug_mouse()
|
||||
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
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
function drawMap()
|
||||
for i=2,1,-1 do
|
||||
for i=LAYERS_COUNT,1,-1 do
|
||||
map(fetch"map/0.map"[i].bmp)
|
||||
end
|
||||
end
|
||||
|
|
@ -111,8 +131,13 @@ function check_collision(x,y,w,h)
|
|||
return collide
|
||||
end
|
||||
|
||||
function get_layer_tile(x,y,layer)
|
||||
return get(fetch"map/0.map"[layer].bmp,x,y)
|
||||
end
|
||||
|
||||
function is_tile(tile_type,x,y)
|
||||
local tile = mget(x/tile_width,y/tile_height)
|
||||
--local tile = mget(x/tile_width,y/tile_height)
|
||||
local tile = get_layer_tile(x/tile_width,y/tile_height,3)
|
||||
local has_flag = fget(tile,tile_type)
|
||||
--last_coll = fget(tile)
|
||||
return has_flag
|
||||
|
|
@ -146,14 +171,18 @@ function debug_mouse()
|
|||
-- draw debug text box
|
||||
local tile_x = mx\tw
|
||||
local tile_y = my\th
|
||||
local sprite = mget(tile_x,tile_y)
|
||||
local flag = fget(sprite)
|
||||
|
||||
rect((tile_x*tw)+tw,(tile_y*th)+th,tile_x*tw,(tile_y*th),8)
|
||||
rectfill(mx+x_offset-1,my+y_offset-1,mx+x_offset+14,my+y_offset+23+8,1)
|
||||
print(string.format("%d (%d)",tile_x,mx),mx+x_offset,my+y_offset,8)
|
||||
print(string.format("%d (%d)",tile_y,my),mx+x_offset,my+y_offset+8,9)
|
||||
print(sprite,mx+x_offset,my+y_offset+8*2,10)
|
||||
print(flag,mx+x_offset,my+y_offset+8+8*2,10)
|
||||
|
||||
for i=LAYERS_COUNT,1,-1 do
|
||||
local sprite = 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)
|
||||
end
|
||||
end
|
||||
|
||||
function cmap(o)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue