From 9f9624661c1380c7df123a3acf0e96b4154e599b Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Tue, 23 Apr 2024 22:41:43 +0200 Subject: [PATCH] Directional shooting --- cirnofarm.p64 | 22 +++++++++++----------- src/cirno.lua | 29 ++++++++++++++++++++++------- src/sprite_atlas.lua | 2 +- src/strawberry.lua | 2 +- 4 files changed, 35 insertions(+), 20 deletions(-) diff --git a/cirnofarm.p64 b/cirnofarm.p64 index 9ef233d..6139ff4 100644 --- a/cirnofarm.p64 +++ b/cirnofarm.p64 @@ -6,7 +6,7 @@ version 2 :: sfx/ :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIscmV2aXNpb249NTY3XV1sejQAbgYAAOA6AADzFHtbMF09e2JtcD1weHUA +NC0yMyAyMDo0MToyOSIscmV2aXNpb249NjEwXV1sejQAbgYAAOA6AADzFHtbMF09e2JtcD1weHUA QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN pgQAww0VAA2WHQUQvQXwE1gAHzFYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U @@ -38,11 +38,11 @@ EAfwBAcQByAHMAeAQgAdkAgAOAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA-------- ------------------------------------w1A9MTF9fQ== :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yMyAyMDo0MTozMCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: map/0.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIscmV2aXNpb249NTc4XV1sejQAagIAALFBAADwCHt7Ym1wPXVzZXJkYXRh +NC0yMyAyMDo0MToyOSIscmV2aXNpb249NjIxXV1sejQAagIAALFBAADwCHt7Ym1wPXVzZXJkYXRh KCJpMTYiLDMyAwAvIjABAP--jD80ODABAF4vNDABAAs-MTMw9AL--1wOBAMOIAAPAQBGEzMEAAgB AC8zMAEATi80OBgADw4kAA8BADkOaAAPAQD----------8vxGSIpLGhpZGRlbj1mYWxzZSxuYW1l PSJvYmplY3RzIixwYW5feD0tOTAKAPIBeT0tMTEwLHRpbGVfaD0xNgoAEHcKAI96b29tPTF9LGsQ @@ -56,11 +56,11 @@ ACIPAQA3HzgEACIPgAE3HzgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4 BAAjD9cg-----------FTGJhY2vXIA9uEBFQbT0xfX0= :: map/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yMyAyMDo0MTozMCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: sfx/0.sfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIscmV2aXNpb249NDc3XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ +NC0yMyAyMDo0MToyOSIscmV2aXNpb249NTIwXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g @@ -69,10 +69,10 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J 8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw== :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yMyAyMDo0MTozMCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: main.lua ---[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-22 21:09:28",revision=646]] +--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-23 20:41:29",revision=700]] --cd("/cirnofarm/src") --include("/cirnofarm/src/cirno.lua") @@ -123,8 +123,8 @@ function require(name) return module end -local strawberry = require(make_path("strawberry")) -strawberry.func() +--local strawberry = require(make_path("strawberry")) +--strawberry.func() local cirno = require(make_path("cirno")) local mouse_debug = require(make_path("mouse_debug")) @@ -146,8 +146,8 @@ function _draw() end :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w -NC0yMiAyMTowOToyOCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y -a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSM2NSIsd29ya3NwYWNlX2luZGV4PTF9LHtsb2Nh +NC0yMyAyMDo0MTozMCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y +a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSM1MiIsd29ya3NwYWNlX2luZGV4PTF9LHtsb2Nh dGlvbj0iZ2Z4LzAuZ2Z4Iix3b3Jrc3BhY2VfaW5kZXg9Mn0se2xvY2F0aW9uPSJtYXAvMC5tYXAi LHdvcmtzcGFjZV9pbmRleD0zfSx7bG9jYXRpb249InNmeC8wLnNmeCIsd29ya3NwYWNlX2luZGV4 PTR9fV1dbHo0AAQAAAADAAAAMG5pbA== diff --git a/src/cirno.lua b/src/cirno.lua index 9e3d845..9b6115a 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-22 21:09:25",revision=334]] +--[[pod_format="raw",created="2024-04-14 14:05:11",modified="2024-04-23 20:41:32",revision=380]] --include("/cirnofarm/src/actor.lua") last_coll=0 @@ -15,12 +15,20 @@ LAYERS = { {index=1, name="objects", render=false, render_objects=false, spawn_objects=true} } -function create_bullet(new_x,new_y) +function create_bullet(new_x, new_y, dir_x, dir_y) + + -- Calculate the length of the direction vector + local length = sqrt(dir_x^2 + dir_y^2) + + -- Normalize the direction vector + local normalized_dir_x = dir_x / length + local normalized_dir_y = dir_y / length + add(bullets, { x=new_x, y=new_y, - dx=2, - dy=2, + dx=normalized_dir_x * 2, + dy=normalized_dir_y * 2, spriteIndex=80, destroy_sprite_index=66, life=100, @@ -66,13 +74,18 @@ function cirno_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 bls:%s",self.x,self.y, + print(string.format("x:%.2f y:%.2f mx:%.2f my:%.2f blts:%s",self.x,self.y, self.move_x,self.move_y,count(bullets)),0,0,1) + --print(string.format("dir_x:%.4f dir_y:%.4f",self. end, update=function(self) self.move_character(self) - if (btn(4)) then create_bullet(self.x,self.y) end + -- Shoot bullet + if (btn(4)) then + --create_bullet(self.x,self.y,self.move_x,self.move_Y) + create_bullet(self.x,self.y,self.move_x,self.move_y) + end end, move_character=function(self) @@ -122,7 +135,9 @@ function cirno_draw() --debug_mouse() - print(string.format("%.4f %dfps",stat(1),stat(7)),2,2,5) + print(string.format("%.4f %dfps",stat(1),stat(7)),2,16,5) + + end function render_layer(layer) diff --git a/src/sprite_atlas.lua b/src/sprite_atlas.lua index 6a24657..e04bf63 100644 --- a/src/sprite_atlas.lua +++ b/src/sprite_atlas.lua @@ -1,4 +1,4 @@ ---[[pod_format="raw",created="2024-04-23 18:57:57",modified="2024-04-23 18:57:58",revision=1]] +--[[pod_format="raw",created="2024-04-23 18:57:57",modified="2024-04-23 19:02:49",revision=2]] -- spr_from_atlas() - draw to the screen a slice of a sprite atlas -- param: s - sprite atlas to use (the number in the Picotron spritesheet) -- param: idx - the 0-based index to render from the atlas diff --git a/src/strawberry.lua b/src/strawberry.lua index 63395e6..03ca136 100644 --- a/src/strawberry.lua +++ b/src/strawberry.lua @@ -1,4 +1,4 @@ ---[[pod_format="raw",created="2024-04-22 19:32:54",modified="2024-04-22 20:14:13",revision=5]] +--[[pod_format="raw",created="2024-04-22 19:32:54",modified="2024-04-23 20:21:06",revision=6]] M = {} function M.func()