From 5d624acaea2cd3f478b3976a68ffec9fd3d30336 Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Fri, 26 Apr 2024 17:37:11 +0200 Subject: [PATCH] Actor spawning --- cirnofarm.p64 | 91 ++++++++++++++++++++++++++------------------------- src/game.lua | 39 ++++++++++++++++++---- 2 files changed, 79 insertions(+), 51 deletions(-) diff --git a/cirnofarm.p64 b/cirnofarm.p64 index c2c3bb2..b8bbb07 100644 --- a/cirnofarm.p64 +++ b/cirnofarm.p64 @@ -6,7 +6,7 @@ version 2 :: sfx/ :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIscmV2aXNpb249OTEzXV1sejQAkAgAAPw9AADzFHtbMF09e2JtcD1weHUA +NC0yNiAxNTozNjo1NCIscmV2aXNpb249OTQ1XV1sejQA9ggAAKo_AADzFHtbMF09e2JtcD1weHUA QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN pgQAww0VAA2WHQUQvQXwE1gAHzNYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U @@ -26,57 +26,58 @@ DiAeDQ4NPx8ODQ4NDhAGAGE8DQ4NHgALADENDhwHABE_BgAhHA4HABEeBgAnDhQaACUUDhoA4CwN DixeTA4NTA0OAA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQMsAJAA-AFEuQA4PH0kA Yw4NLiAOLAsAMRwOEMkAYA4NPAAOTAgAUUwuTC5MogAgFEy2ADccFBzOACwcHucANQ4AHhkACBoB EiDUAG4NHkAuPC68AA-rAUHQE51QDX8QDVANDl8YDgcAQgw-HgwJAD8LHAsKABISOwgAEFwGAE5_ -DVCdaAgPuAAXDzIAq5AGBwYHHxYGBx4JALEGBw4WHhYeZgcGHgMAAQIAdRYelh4WBwYCAHIeBgem -HhYODgADKABSVh4WHlYcAAZJABKmHAAfBkgAAAIoADxmHhZJAF8WDiYehsQAHfYA9QHfGBXeFd8V -Fd4V3hXdBgB-9QLdFd31AVAAHU-2AA0GAgDKL-YBYwEfRw8WDQ4CADgVDQ4CAHP1AQ8TLwwv6Agg -HwwiCRkPIwkZDwoJDw4ACXE-DA8TLxEvFgA1jxMfIAA3bxEPDgA-DwxfEAAEAUAAIQw-DgAv3xN1 -Ax8PMgD--0Vf-xQS0B4CAAYPfwYdT-8UEPA1ACEv0B4CAAcPTwAd4PBIKLCIYIhgGNAY0AjgAgAQ -GAYAH2BMAR7DERSQFAAPFA8fBA4PPAmVDg0OBB4NBA0OAgDHBA0eBK4EDh0ErQQtBAAbDQIAQx0k -DQQCADk0DQQCAG8AFJAU8BHmAB47ERTAnAAoMA6aAIAgHgSeIB0EbQsAWh0EbR4NDQAiBA0OAFIN -JA0EPRAAMA0ETUYAMcRABBMAIQRQEAAeIJoAD7YCbyIfFBwCD7kCOD8SwC4CAAIf-psBHh7QngAP -0gIrmXAI4AhwFEAIMI8CGgiPAhUIjwIwTghOkQJdTQhNBC0GABQNAgAYCJkCGAiZAgMaACENAHMA -X4AY0BhQ0gFPmGAI4AiAFDAIQOQAGghzAxUY4wAhPhjjACA9GNcADAYAA78AJwQY4gAXGOEAAxgA -zw0AFDAYMBRwGNAYYJIBHS-w8OQCbC-_ELMAHk-Q-xQQywI5L-4STgAdWFA4sCjAAgBvmHB4oEjw -nQ0fj1AYAGhQ_BDw1AUeAO0BAgIArrA4kFhQiGB48Gh_AA-8AW9hMDwPHCxgwhHwCAcMDhwwHA4M -RwwODDAMDgxnDA4wHhcOAgAyDEAOCQDwISAeIFcADjAeIDcwHkAsCBwQHkAHLAgcB0AeAAdcBwAe -AB4QfBAeIAcMBwwHTHAXAAgAnwxwFxAXkBgQGH8BHvAFIAEsPxwBUAEcbgFAAQwOEQ4RBw4KACIH -DgMAAQwAMhwHHAoA8A8PF0cNDgEwARwnDSceATAxDAcOMVABBwwHCAcOBwEKAP8mDggOCB4HATAB -BxxuBwEQARcsXhcBAAEXfAEXARARBwEXAQcRBxFAAQABBwEHAZABHAEcAUC2AR8PMgD-GP8ngA8b -0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9cG2QTbAtJQYgDzIA --0f-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcwByAHEAfwBAcQByAHMAeAQgAdkAgAOAAIAAgw -CAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA---------------------------------------- -----w1A9MTF9fQ== +DVCdaAgPhgAgEzddAD8HHAcKABIeN4UADz0BHg8yAIGQBgcGBx8WBgceCQCxBgcOFh4WHmYHBh4D +AAECAHUWHpYeFgcGAgByHgYHph4WDg4AAygAUlYeFh5WHAAGSQASphwAHwZIAAACKAA8Zh4WSQBf +Fg4mHobEAB32APUB3xgV3hXfFRXeFd4V3QYAf-UC3RXd9QFQAB1P9gANBgIAyi-2AWMBH0cPFg0O +AgA4FQ0OAgBz9QEPEy8MLzsJIB8MdQkZD3YJGQ9dCQ8OAAlxPwwPEy8RLxYANY8THyAAN28RDw4A +Pw8MXxAABAFAACEMPw4AH9_nAyAPMgD--0Vf-xQS0B4CAAYP0gYdT-8UEPA1ACEv0B4CAAcPTwAd +4PBIKLCIYIhgGNAY0AjgAgAQGAYAH2BMAR7DERSQFAAPFA8fBA4PjwmVDg0OBB4NBA0OAgDHBA0e +BK4EDh0ErQQtBAAbDQIAQx0kDQQCADk0DQQCAG8AFJAU8BHmAB47ERTAnAAoMA6aAIAgHgSeIB0E +bQsAWh0EbR4NDQAiBA0OAFINJA0EPRAAMA0ETUYAMcRABBMAIQRQEAAeIJoAD7YCbyIfFBwCD7kC +OD8SwC4CAAIf-psBHh7QngAP0gIrmXAI4AhwFEAIMI8CGgiPAhUIjwIwTghOkQJdTQhNBC0GABQN +AgAYCJkCGAiZAgMaACENAHMAX4AY0BhQ0gFPmGAI4AiAFDAIQOQAGghzAxUY4wAhPhjjACA9GNcA +DAYAA78AJwQY4gAXGOEAAxgAzw0AFDAYMBRwGNAYYJIBHS-w8OQCbC-_ELMAHk-Q-xQQywI5L-4S +TgAdWFA4sCjAAgBvmHB4oEjw8A0fj1AYAGhQ_BDw1AUeAO0BAgIArrA4kFhQiGB48Gh_AA-8AW9h +MDwPHCxgFRLwCAcMDhwwHA4MRwwODDAMDgxnDA4wHhcOAgAyDEAOCQDwISAeIFcADjAeIDcwHkAs +CBwQHkAHLAgcB0AeAAdcBwAeAB4QfBAeIAcMBwwHTHAXAAgAnwxwFxAXkBgQGH8BHvAFIAEsPxwB +UAEcbgFAAQwOEQ4RBw4KACIHDgMAAQwAMhwHHAoA8A8PF0cNDgEwARwnDSceATAxDAcOMVABBwwH +CAcOBwEKAP8mDggOCB4HATABBxxuBwEQARcsXhcBAAEXfAEXARARBwEXAQcRBxFAAQABBwEHAZAB +HAEcAUC2AR8PMgD-GP8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJt +QF0CLWB9cG2QTbAtJQYgDzIA-0f-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcwByAHEAfwBAcQ +ByAHMAeAQgAdkAgAOAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA5fAUEL8YIA60DgAO +1B5EPEQeJBw-HBwkHiQMXQwkHhQMDVwNDBQIADIMPQwKABEdAgAICgDRJAwdHB0MJB4kHD0cJEUA +n9QOAA60DiC_EL8AHw8yAP------------------------------------------llA9MTF9fQ== :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yNiAxNTozNjo1NCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: map/0.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIscmV2aXNpb249OTQzXV1sejQAqAMAABVCAADwCHt7Ym1wPXVzZXJkYXRh -KCJpMTYiLDMyAwAvIjABAP_DLjEwDAAPAQDhPzQ4MAEAXi80MAEACz8xMzABAHMXNAQADwEANQ9Q -ACEfM4AAbg8BALoqNDgIAQ8EAwcOIAAPAQA2BIAAHzNgAQAvMzABAE4vNDgYAA8OJAAPAQA5DmgA -DwEAch4zgAEPgABgDwEA---------7-1HSIpLGhpZGRlbj1mYWxzZSxuYW1lPSJvYmplY3RzIixw -YW5feD0tMTQwLjgzAQABFwBpeT0tMTA1FwCSdGlsZV9oPTE2CgAQdwoAj3pvb209MX0shBAJDwEA -----mi9hMIAA-2AvMzABAP-------------WD4QQA6Zmb3JlZ3JvdW5khxAvNTKHEAMfMYcQvy8z -OQQAAw8BAFFjMzIwMDA5BAAaYgwAHzOAAF0aMAwAHzMAAW0WOIwBDwQAAQ_AADYPAQAFHmOUAAgI -AB8zgABZFzAMAA_AAD0XNQQACAEALzUwAQAIDwABUB8wgADUHzUEAAwEAQAaNQQADwABtg_AAOxq -MmIwMDJjBAAEAQAvMmMEAAQfZIAANz8zNTABAB4vM2KAAGsvMDCAAPwfMoAAO2cyODAwMjkEAB9h -AAFIL2QwXAAOACgADiQADwEALw5YAA9cAAMvMzIkAAEPAQAvD4AABgz8CA_AASUfM4AAIwF8CBc5 -BAAPpAECDwEALwGAABc1BAAPgAARAywALzMwAQAzDuACDzAADAMcAw4BAA_QAycPiAEDDxwCEw8B -AAMPgABHDZwBD4AA3Q4BAA_AAK4FCAMPBAAkD4cQMU9zb2xpghBWDwEA-4QISgIvOTABANYvMWEE -AAMPAQBVLzFhBAADLzAwkAFTJzFiBAAWOQQALzA4BAAKDwEANx84BAAiDwEANx84BAAiD4ABNx84 -BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMWIEAAAECAQf -YgQABw8BADYfOAQAIg8BADcfOAQAIg8BADcfOAQAIg8BADceOAQAD4IQAhs4BAAPAQA1HjgEAB8z -ogsBGzgEAA8BADUfOIAA-2wuMWJ4BA_AAAEEHAAOgAQPAQA0HzgEABIPAQBGLzE4BAATDwEARS8x -OAQAEw8BAEUvMTgEABMPAQBGHzgEACIPAQA3HzgEACIPCSG2TGJhY2sJIU4xMi4zhxAoMjYWAA_H -EAZQbT0xfX0= +NC0yNiAxNTozNjo1NCIscmV2aXNpb249OTgwXV1sejQArAMAABVCAADwCHt7Ym1wPXVzZXJkYXRh +KCJpMTYiLDMyAwAvIjABAP_DLjEwDAAPAQDVNTU4MAEAPzQ4MAEAXi80MAEACz8xMzABAHMXNAQA +DwEANQ9QACEfM4AAbg8BALoqNDgIAQ8EAwcOIAAPAQA2BIAAHzNgAQAvMzABAE4vNDgYAA8OJAAP +AQA5DmgADwEAch4zgAEPgABgDwEA---------7-1HSIpLGhpZGRlbj1mYWxzZSxuYW1lPSJvYmpl +Y3RzIixwYW5feD0tMTQwLjgzAQABFwBpeT0tMTA1FwCSdGlsZV9oPTE2CgAQdwoAj3pvb209MX0s +hBAJDwEA----mi9hMIAA7Q8BAP--------------Sw_EEAOvZm9yZWdyb3VuZIcQ4i8zOQQAAw8B +AFFjMzIwMDA5BAAaYgwAHzOAAF0aMAwAHzMAAW0WOIwBDwQAAQ_AADYPAQAFHmOUAAgIAB8zgABZ +FzAMAA_AAD0XNQQACAEALzUwAQAIDwABUB8wgADUHzUEAAwEAQAaNQQADwABtg_AAOxqMmIwMDJj +BAAEAQAvMmMEAAQfZIAANz8zNTABAB4vM2KAAGsvMDCAAPwfMoAAO2cyODAwMjkEAB9hAAFIL2Qw +XAAOACgADiQADwEALw5YAA9cAAMvMzIkAAEPAQAvD4AABgz8CA_AASUfM4AAIwF8CBc5BAAPpAEC +DwEALwGAABc1BAAPgAARAywALzMwAQAzDuACDzAADAMcAw4BAA_QAycPiAEDDxwCEw8BAAMPgABH +DZwBD4AA3Q4BAA_AAK4FCAMPBAAkD4cQMUdzb2xpghAvNTKCEAMfMYIQMg8BAP_ECEoCLzkwAQDW +LzFhBAADDwEAVS8xYQQAAy8wMJABUycxYgQAFjkEAC8wOAQACg8BADcfOAQAIg8BADcfOAQAIg_A +ATcfOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzFiBAAA +BAgEH2IEAAcPAQA2HzgEACIPAQA3HzgEACIPAQA3HzgEACIPAQA3HjgEAA_CEAIbOAQADwEANR44 +BAAfM6ILARs4BAAPAQA1HziAAP9sLjFieAQPgAABBBwADoAEDwEANB84BAASDwEARi8xOAQAEw8B +AEUvMTgEABMPAQBFLzE4BAATDwEARh84BAAiDwEANx84BAAiDwkhtkxiYWNrCSFOMTIuM4cQKDI2 +FgAPhxAGUG09MX19 :: map/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yNiAxNTozNjo1NCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: sfx/0.sfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIscmV2aXNpb249NzY2XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ +NC0yNiAxNTozNjo1NCIscmV2aXNpb249Nzg5XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g @@ -85,14 +86,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J 8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw== :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yNiAxNTozNjo1NCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: main.lua ---[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 13:30:52",revision=1041]] +--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 15:36:54",revision=1065]] include("/cirnofarm/src/game.lua") :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMzozMDo1MiIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y +NC0yNiAxNTozNjo1NCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0 aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9 diff --git a/src/game.lua b/src/game.lua index 755c4e6..be7ec39 100644 --- a/src/game.lua +++ b/src/game.lua @@ -92,6 +92,16 @@ LAYERS = { {index=1, name="objects", render=false, render_objects=false, spawn_objects=true} } +actors_db = { + {name="teleporter",sprite=88,actor=nil}, + {name="barrel",sprite=3,actor=Barrel}, + {name="strawberry",sprite=72,actor=Strawberry}, + {name="player",sprite=65,actor=nil}, + {name="box",sprite=4,actor=nil}, + {name="alarm",sprite=19,actor=nil}, + {name="fan",sprite=16,actor=nil} +} + actors = {} bullets = {} particles = {} @@ -120,14 +130,21 @@ function spawn_objects() for y=0,height,1 do local tile = map_manager.get_layer_tile(x,y,1) - 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) + local a = get_actor_from_sprite(tile) + if (a) then + local ai = a:new(x*tile_width,y*tile_height) + --local ai = Barrel:new(x*tile_width,y*tile_height) + add(actors,ai) end + -- 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 @@ -135,6 +152,16 @@ function spawn_objects() end +function get_actor_from_sprite(sprite) + local res = nil + for a in all(actors_db) do + if (a.sprite == sprite) then + res = a.actor + end + end + return res +end + function render_layer(layer) if (layer.render) then -- todo move function in map manager