diff --git a/cirnofarm.p64 b/cirnofarm.p64 index aa96bd6..0350047 100644 --- a/cirnofarm.p64 +++ b/cirnofarm.p64 @@ -6,55 +6,61 @@ version 2 :: sfx/ :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0xOCAxNzoxMTo0OCIscmV2aXNpb249NDEwXV1sejQAZQUAALQ4AADzFHtbMF09e2JtcD1weHUA -QyAQEATw8CxmbGFncz0wLHBhbl94CADKeT0wLHpvb209Nn0sMQDxCK8bI94DfgPeI94D-gkTbgNO -E24jTgN_EwD-A44DPgNOAy4jfiMuA54D-hQDLl0AHPAJ8EVNgC0mLVAdZh0FIB2GDRUAHZYdFQ2m -BADDDRUADZYdBRC9BfATVwAfMVcAFPEaUESAFE8fFFAPFI8fBEAvFE8fJEAPFB8fRB4EQA8UPhoN -HgRADS4KAAoJAFAeGgAKCQkAUA5KCQoOCAAyKgAKCgAzXg0eBgCfUBQ_DRSARPAViwAc8AjwFZxA -DH8QHDAMfgwODCCcHgwgDH8cDAcAH30GAAavDgwwDH0cQJzwFG4AHfcEBj8ZUGkuWU4ZDhleWR55 -UB4ZsAMAIcAOAwBfKcAZ8BdaAA4POAIFDzEARd-PEy8RDxNfEQ8TPxEPDAAUc38TPxE-Ex8QAAAE -AB9PDAAQdS8RLxM-EY84AD9vEQ8MABQv3xPVABzZ9AwPHzQedB40HiQeJAYA8QBEDiQe1B6EHiQO -lB6EDjQEAAYeABCEBAA-DvQJpgEc-0H-FgA2DoYOFgUWDgUmBTYONgUOZgUGDkYOFgVWDgb_AFYO -Rg42BTYOJgUGDoYOBgUmDgYFZg5GDib_AIYOlgU2DhYFtg52BSYFFg42BZYOVn8AHfIAFQMMDxAM -DhwODA4MbxUOCgBRHQwdDC0LALEdDgwdDA4tDhwOLQoAUgwtHC0MCgA0Dl0OCgA-DD0MDAACBSIA -BTYABUoAAl8AMy0MTXMAI20MCQA-DP0DxAAc0B8V1B6UDx8kHgQNZB0GAD8UHSQIAAQwdB40BABQ -DYQelA0SACZ0DSAAFzQGAH8EDRQNhB7UcgN_DzEAHvEUQF8UcB4PFT8fLkAeDxUOPx8PFQ4NDiAe -DQ4NPx8ODQ4NDhAGAGE8DQ4NHgALADENDhwHABE_BgAhHA4HABEeBgAnDhQaACUUDhoA4CwNDixe -TA4NTA0OAA48FgBSPA4QDixaAEEOIA4MCgBhDQ4cDkAuCgBPHnBeQCwBfuDwE51QDX8QDVANDl8Y -DgcAQgw-HgwJAD8LHAsKABISOwgAEFwGAEV_DVCdCQcfM_cAHg8xAKfwCqYHNgcWB5YHZgf2BAf2 -FAf2BQf2BgemB1YQAM_GByYH9gkHtgeGB6ZYABz2APUB3xgV3hXfFRXeFd4V3QYAf-UC3RXd9QFP -ABxP9gANBgIAyi-2AWEBHkcPFg0OAgA4FQ0OAgAv9QHLB5ov8PAxAP--OV--FBLQHgIABg8pCBxP --xQQ8DQAIC-QHgIABw5OAA8xARQPMQDYIh8ULAEPxwE3PxLALgIAAi-_EUsAHB7QnAAP4AH-PS-_ -EEMBHU-Q-xQQxwE4Lv4SgQAPMQEUDzEA2GEwPA8cLGAJDpEHDA4cMBwODEdeEZAODGcMDjAeFw4C -ADIMQA4JAPAhIB4gVwAOMB4gNzAeQCwIHBAeQAcsCBwHQB4AB1wHAB4AHhB8EB4gBwwHDAdMcBcA -CACfDHAXEBeQGBAYgwwd8gQwLD8ccBxuYAwOEA4QBw5gDAcOAwBgYAwHHAccCAD-MQ8XRw0OUBwn -DScegAwHDqAHDAcIBw4HcAcMDggOCB4HUAccbgcwFyxeFyAXfAAXQAcAFwAHEAeQBwAHsBwAHFCQ -AR4PMQD-Ev8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9 -cG2QTbAtjAEfDzEA----------------------------------------------8CUG09Nn19 +NC0xOCAyMTo0OToyNyIscmV2aXNpb249NDY3XV1sejQATQYAAL06AADzFHtbMF09e2JtcD1weHUA +QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D +ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN +pgQAww0VAA2WHQUQvQXwE1gAHzFYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U +PhoNDxkOBEANLgoACg0ODARADR4aAAoJDBQAQA5KCQoSAEEOKgAKJQASXiIA714NDA4EUBQ_DRSA +RPAVkwAd8AjwFZxADH8QHDAMfgwODCCcHgwgDH8cDAcAH30GAAavDgwwDH0cQJzwFG8AHvcEBj8Z +UGkuWU4ZDhleWR55UB4ZsAMAIcAOAwBfKcAZ8BdbAA8PRQIFDzIAR-wBzxMvEQ8TXxEPEz8RDxMM +Hw0AKAxPDgAjLC8OALQcDxF-EwwvET8THyAAABsAH08NAA7xADwOLxEuDC2OHQ4MLQ5tDgcAJwxd +CAB-PA4sPQ4d3sgAHdn0DA8fNB50HjQeJB4kBgDxAEQOJB7UHoQeJA6UHoQONAQABh4AEIQEAD8O +9AmcAR3-Qf8WADYOhg4WBRYOBSYFNg42BQ5mBQYORg4WBVYOBv4AVg5GDjYFNg4mBQYOhg4GBSYO +BgVmDkYOJv4Ahg6WBTYOFgW2DnYFJgUWDjYFlg5WgAAe8gAVAwwPEAwOHA4MDgxvFQ4KAFEdDB0M +LQsAsR0ODB0MDi0OHA4tCgBSDC0cLQwKADQOXQ4KAD8MPQwMAAIFIgAFNgAFSgACXwAzLQxNcwAj +bQwJAD8M-QPFAB3QHxXUHpQPHyQeBA1kHQYAPxQdJAgABDB0HjQEAFANhB6UDRIAJnQNIAAXNAYA +fwQNFA2EHtRrA4EPMgAf8RRAXxRwHg8VPx8uQB4PFQ4-Hw8VDg0OIB4NDg0-Hw4NDg0OEAYAYTwN +Dg0eAAsAMQ0OHAcAET4GACEcDgcAER4GACcOFBoAJRQOGgDgLA0OLF5MDg1MDQ4ADjwWAFI8DhAO +LFoAQQ4gDgwKAGENDhwOQC4KAE8ecF5AywAkAD8AUS5ADg8fSQBjDg0uIA4sCwAxHA4QyQBgDg08 +AA5MCABRTC5MLkyiACAUTLYANxwUHM4ALBwe5wA1DgAeGQAIGgESINQAbg0eQC48LrwAD_sBQdAT +nVANfxANUA0OXxgOBwBCDD8eDAkAPwscCwoAEhI7CAAQXAYARX4NUJ2dBx8zuAAfDzIAqyoGBQIA +egcWB5YHBgUCAFm2B0YFBgIASfYABQYCAFlmB5YFBgIAWYYHVgUGAgA9VgeGWwBZxgcWBQYCAD9G +B6bFAB32APUB3xgV3hXfFRXeFd4V3QYAf-UC3RXd9QFQAB1P9gANBgIAyi-2AWMBH0cPFg0OAgA4 +FQ0OAgAm9QHdCFcvEX8TP78IFz_kCA8MAAl1LxEvEz8RjzgAP28RDwwAFC-fE1wDHw8yAP--RV-- +FBLQHgIABg87CR1P-xQQ8DUAIS-QHgIABw5PAA82ARUPMgDdIh8UMgEPzwE4PxLALgIAAi-_EUwA +HR7QngAP6AH-Qy-_EEkBHk-Q-xQQzwE5Lv4SgwAPNgEVDzIA3WEwPA8cLGA0D5EHDA4cMBwODEeC +EpAODGcMDjAeFw4CADIMQA4JAPAhIB4gVwAOMB4gNzAeQCwIHBAeQAcsCBwHQB4AB1wHAB4AHhB8 +EB4gBwwHDAdMcBcACACfDHAXEBeQGBAY7Qwe8gQwLD8ccBxuYAwOEQ4RBw5gDAcOAwBgYAwHHAcc +CAD-MQ8XRw0OUBwnDScegAwHDqAHDAcIBw4HcAcMDggOCB4HUAccbgcwFyxeFyAXfAAXQAcAFwAH +EAeQBwAHsBwAHFCUAR8PMgD-GP8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBN +CF0wPQJtQF0CLWB9cG2QTbAtkwH-Sw8yABz-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcwByAH +EAfwBAcQByAHMAeA4gAfDzIA--------------------------------------------9VA9MTF9 +fQ== :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0xOCAxNzoxMTo0OCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0xOCAyMTo0OToyOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: map/0.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -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 +NC0xOCAyMTo0OToyNyIscmV2aXNpb249NDgwXV1sejQAagIAALFBAADwCHt7Ym1wPXVzZXJkYXRh +KCJpMTYiLDMyAwAvIjABAP--jD80ODABAF4vNDABAAs-MTMw9AL--1wOBAMOIAAPAQBGEzMEAAgB +AC8zMAEATi80OBgADw4kAA8BADkOaAAPAQD----------8vxGSIpLGhpZGRlbj1mYWxzZSxuYW1l +PSJvYmplY3RzIixwYW5feD0tOTAKAPIBeT0tMTEwLHRpbGVfaD0xNgoAEHcKAI96b29tPTF9LGsQ +-58uMTAMAA8BAP-vL2EwgADtDwEA--------------9LD2sQA6Zmb3JlZ3JvdW5kbhAfNG4Qvi8z +OQQAAw8BAFFjMzIwMDA5BAAaYgwAD8wbUAqAABowDAAfMwABbRY4jAEPBAABD4AANg8BAAUeY5QA +CAgAHzOAAFkXMAwAD4AAPRc1BAAIAQAMEAAaMwQALzMwgAA0HjTaIQ88AA8PgABoHzOAADwfNQQA +DAQBABo1BAAPgAA2DwEAIg_AADwfM4AAbB8wgAChDwEA-80fMxwAGC8yMAEAMw9IAAEvMjABAGgP +kADQD_gBCR8wXAAuDwEArx8y3AARDxQCrB8yvAECDwEA8w9MAQ0vMzBuEP_zR3NvbGlpEB84aRAx +DwEA-4QuOTAMAA-PIdEfYQQAAw8BAFUvMWEEAAMvMDCQAVMnMWIEABY5BAAvMDgEAAoPAQA3HzgE +ACIPAQA3HzgEACIPgAE3HzgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4 +BAAjD9cg-----------FTGJhY2vXIA9uEBFQbT0xfX0= :: map/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0xOCAxNzoxMTo0OCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0xOCAyMTo0OToyOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: sfx/0.sfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0xOCAxNzoxMTo0OCIscmV2aXNpb249MzQzXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ +NC0xOCAyMTo0OToyNyIscmV2aXNpb249MzgxXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g @@ -63,10 +69,10 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J 8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw== :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0xOCAxNzoxMTo0OCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0xOCAyMTo0OToyOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: main.lua ---[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-18 17:11:48",revision=453]] +--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-18 21:49:27",revision=496]] --cd("/cirnofarm/src") include("/cirnofarm/src/cirno.lua") --function _init() @@ -97,8 +103,8 @@ include("/cirnofarm/src/cirno.lua") --end :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w -NC0xOCAxNzoxMTo0OCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y -a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMyIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0 +NC0xOCAyMTo0OToyOCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y +a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0 aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9 NH19XV1sejQABAAAAAMAAAAwbmls diff --git a/src/cirno.lua b/src/cirno.lua index 033c38d..9e20c80 100644 --- a/src/cirno.lua +++ b/src/cirno.lua @@ -1,4 +1,4 @@ ---[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-18 17:11:46",revision=281]] +--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-18 21:49:23",revision=310]] --include("/cirnofarm/src/actor.lua") last_coll=0 mouse_debug = true @@ -11,12 +11,45 @@ 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=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) + add(bullets, { + x=new_x, + y=new_y, + dx=2, + dy=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 _init() + bullets={} player={} add(player, { @@ -26,7 +59,7 @@ function _init() h=16, speed=0.05, hflip=false, - spriteIndex=64, + spriteIndex=65, move_x=0, move_y=0, noclip=false, @@ -34,10 +67,15 @@ function _init() cb=true, -- Collide with world bounds draw=function(self) spr(self.spriteIndex,self.x,self.y, self.hflip) - print(string.format("x:%.2f y:%.2f mx:%.2f my:%.2f coll:%d",self.x,self.y, - self.move_x,self.move_y,last_coll),0,0,1) + print(string.format("x:%.2f y:%.2f mx:%.2f my:%.2f bls:%s",self.x,self.y, + self.move_x,self.move_y,count(bullets)),0,0,1) end, - update=function(self) + update=function(self) + self.move_character(self) + + if (btn(4)) then create_bullet(self.x,self.y) end + end, + move_character=function(self) local hitbox_x = 4 local hitbox_y = 8 @@ -50,7 +88,7 @@ function _init() if (btn(1)) self.move_x += self.speed self.hflip = false if (btn(2)) self.move_y -= self.speed if (btn(3)) self.move_y += self.speed - + if (check_collision(self.x+self.move_x+hitbox_x, self.y+hitbox_y, hitbox_w, @@ -96,6 +134,10 @@ function render_layer(layer) for p in all(player) do p:draw() end + + for b in all(bullets) do + b:draw() + end end end @@ -110,6 +152,10 @@ function _update() for p in all(player) do p:update() end + + for b in all(bullets) do + b:update() + end end function check_collision(x,y,w,h)