From 56fa9bce02d0b02972fe825b5ac5871014125394 Mon Sep 17 00:00:00 2001 From: MaddoScientisto Date: Fri, 26 Apr 2024 14:00:34 +0200 Subject: [PATCH] Camera refactor --- cirnofarm.p64 | 53 ++++++++++---------- src/cirno.lua | 130 +++++++++++++++++++++++++++----------------------- src/game.lua | 7 ++- 3 files changed, 102 insertions(+), 88 deletions(-) diff --git a/cirnofarm.p64 b/cirnofarm.p64 index ca8a0b6..9821159 100644 --- a/cirnofarm.p64 +++ b/cirnofarm.p64 @@ -6,7 +6,7 @@ version 2 :: sfx/ :: gfx/0.gfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIscmV2aXNpb249ODcyXV1sejQAcggAANo9AADzFHtbMF09e2JtcD1weHUA +NC0yNiAxMjowMDoxMiIscmV2aXNpb249ODg0XV1sejQAkAgAAPw9AADzFHtbMF09e2JtcD1weHUA QyAQEATw8CxmbGFncz0wLHBhbl94CADaeT0wLHpvb209MTF9LDIA8QivGyPeA34D3iPeA-4JE24D ThNuI04DfhMA-wOOAz4DTgMuI34jLgOeA-4UAy5eAB3wCfBFTYAtJi1QHWYdBSAdhg0VAB2WHRUN pgQAww0VAA2WHQUQvQXwE1gAHzNYABXwKlBEgBRPHxRQDxSPHwRALxRPHyRADxQfH0QODxkEQA8U @@ -39,42 +39,43 @@ X4AY0BhQ0gFPmGAI4AiAFDAIQOQAGghzAxUY4wAhPhjjACA9GNcADAYAA78AJwQY4gAXGOEAAxgA zw0AFDAYMBRwGNAYYJIBHS-w8OQCbC-_ELMAHk-Q-xQQywI5L-4STgAdWFA4sCjAAgBvmHB4oEjw nQ0fj1AYAGhQ_BDw1AUeAO0BAgIArrA4kFhQiGB48Gh_AA-8AW9hMDwPHCxgwhHwCAcMDhwwHA4M RwwODDAMDgxnDA4wHhcOAgAyDEAOCQDwISAeIFcADjAeIDcwHkAsCBwQHkAHLAgcB0AeAAdcBwAe -AB4QfBAeIAcMBwwHTHAXAAgAnwxwFxAXkBgQGH8BHvIEMCw-HHAcbmAMDhEOEQcOYAwHDgMAYGAM -BxwHHAgA-zAPF0cNDlAcJw0nHoAMBw6gBwwHCAcOB3AHDA4IDggeB1AHHG4HMBcsXhcgF3wAF0AH -ABcABxAHkAcAB7AcABxwBCAPMgD-GP8ngA8b0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0C -LTBNCF0wPQJtQF0CLWB9cG2QTbAtkwH-Sw8yABz-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcw -ByAHEAfwBAcQByAHMAeAQgAdkAgAOAAIAAgwCAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA---- -----------------------------------------w1A9MTF9fQ== +AB4QfBAeIAcMBwwHTHAXAAgAnwxwFxAXkBgQGH8BHvAFIAEsPxwBUAEcbgFAAQwOEQ4RBw4KACIH +DgMAAQwAMhwHHAoA8A8PF0cNDgEwARwnDSceATAxDAcOMVABBwwHCAcOBwEKAP8mDggOCB4HATAB +BxxuBwEQARcsXhcBAAEXfAEXARARBwEXAQcRBxFAAQABBwEHAZABHAEcAUC2AR8PMgD-GP8ngA8b +0B6ATxgOPUA9Am0wvTAdAm0CHSBdAl0gzTAdAk0CLTBNCF0wPQJtQF0CLWB9cG2QTbAtJQYgDzIA +-0f-AAQEBAAfHAAOFx4XDgAeADwAGv8GCAgEgAcwByAHEAfwBAcQByAHMAeAQgAdkAgAOAAIAAgw +CAYAgRAIABhQGFAYCgAEFgA-OAAINwEfDzIA---------------------------------------- +----w1A9MTF9fQ== :: gfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yNiAxMjowMDoxMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: map/0.map b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIscmV2aXNpb249ODkxXV1sejQAnAMAABVCAADwCHt7Ym1wPXVzZXJkYXRh +NC0yNiAxMjowMDoxMiIscmV2aXNpb249OTA0XV1sejQAngMAABVCAADwCHt7Ym1wPXVzZXJkYXRh KCJpMTYiLDMyAwAvIjABAP_DLjEwDAAPAQDhPzQ4MAEAXi80MAEACz8xMzABAHMXNAQADwEANQ9Q ACEfM4AAbg8BALoqNDgIAQ8EAwcOIAAPAQA2BIAAHzNgAQAvMzABAE4vNDgYAA8OJAAPAQA5DmgA DwEAch4zgAEPgABgDwEA---------7-1HSIpLGhpZGRlbj1mYWxzZSxuYW1lPSJvYmplY3RzIixw YW5feD0tMTUyLjgzAQABFwBpeT0tMTAxFwCSdGlsZV9oPTE2CgAQdwoAj3pvb209MX0shBAJDwEA -----mi9hMIAA7Q8BAP--------------Sw_EEAOvZm9yZWdyb3VuZIcQ4i8zOQQAAw8BAFFjMzIw -MDA5BAAaYgwAHzOAAF0aMAwAHzMAAW0WOIwBDwQAAQ_AADYPAQAFHmOUAAgIAB8zgABZFzAMAA_A -AD0XNQQACAEALzUwAQAIDwABUB8wgADUHzUEAAwEAQAaNQQADwABtg_AAOxqMmIwMDJjBAAEAQAv -MmMEAAQfZIAANz8zNTABAB4vM2KAAGsvMDCAAPwfMoAAO2cyODAwMjkEAB9hAAFIL2QwXAAOACgA -DiQADwEALw5YAA9cAAMvMzIkAAEPAQAvD4AABgz8CA_AASUfM4AAIwF8CBc5BAAPpAECDwEALwGA -ABc1BAAPgAARAywALzMwAQAzDuACDzAADAMcAw4BAA_QAycPiAEDDxwCEw8BAAMPgABHDZwBD4AA -3Q4BAA_AAK4FCAMPBAAkD4cQMU9zb2xpghBWDwEA-4QISgIvOTABANYvMWEEAAMPAQBVLzFhBAAD -LzAwkAFTJzFiBAAWOQQALzA4BAAKDwEANx84BAAiDwEANx84BAAiD4ABNx84BAAjDwEANS8xOAQA -Iw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8xOAQAIw8BADUvMWIEAAAECAQfYgQABw8BADYfOAQA -Ig8BADcfOAQAIg8BADcfOAQAIg8BADceOAQAD4IQAhs4BAAPAQA1HjgEAB8zogsBGzgEAA8BADUf -OIAA-2wuMWJ4BA_AAAEEHAAOgAQPAQA0HzgEABIPAQBGLzE4BAATDwEARS8xOAQAEw8BAEUvMTgE -ABMPAQBGHzgEACIPAQA3HzgEACIPCSG2TGJhY2sJIU4xMi4zhxAoMjYWAA_HEAZQbT0xfX0= +----mi9hMIAA-2AvMzABAP-------------WD4QQA69mb3JlZ3JvdW5khxDiLzM5BAADDwEAUWMz +MjAwMDkEABpiDAAfM4AAXRowDAAfMwABbRY4jAEPBAABD4AANg8BAAUeY5QACAgAHzOAAFkXMAwA +D4AAPRc1BAAIAQAvNTABAAgPAAFQHzCAANQfNQQADAQBABo1BAAPAAG2D4AA7GoyYjAwMmMEAAQB +AC8yYwQABB9kgAA3PzM1MAEAHi8zYoAAay8wMIAA-B8ygAA7ZzI4MDAyOQQAH2EAAUgvZDBcAA4A +KAAOJAAPAQAvDlgAD1wAAy8zMiQAAQ8BAC8PgAAGDPwID4ABJR8zgAAjAXwIFzkEAA_kAQIPAQAv +AYAAFzUEAA_AABEDLAAvMzABADMO4AIPMAAMAxwDDgEAD5ADJw_IAQMPHAITDwEAAw_AAEcNnAEP +gADdDgEAD4AArgUIAw8EACQPhxAxT3NvbGmCEFYPAQD-hAhKAi85MAEA1i8xYQQAAw8BAFUvMWEE +AAMvMDCQAVMnMWIEABY5BAAvMDgEAAoPAQA3HzgEACIPAQA3HzgEACIPgAE3HzgEACMPAQA1LzE4 +BAAjDwEANS8xOAQAIw8BADUvMTgEACMPAQA1LzE4BAAjDwEANS8xYgQAAAQIBB9iBAAHDwEANh84 +BAAiDwEANx84BAAiDwEANx84BAAiDwEANx44BAAPghACGzgEAA8BADUeOAQAHzOiCwEbOAQADwEA +NR84gAD-bC4xYngED4AAAQQcAA6ABA8BADQfOAQAEg8BAEYvMTgEABMPAQBFLzE4BAATDwEARS8x +OAQAEw8BAEYfOAQAIg8BADcfOAQAIg8JIbZMYmFjawkhTjEyLjOHECgyNhYAD4cQBlBtPTF9fQ== :: map/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yNiAxMjowMDoxMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: sfx/0.sfx b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIscmV2aXNpb249NzMzXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ +NC0yNiAxMjowMDoxMiIscmV2aXNpb249NzQxXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g @@ -83,14 +84,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J 8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw== :: sfx/.info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA +NC0yNiAxMjowMDoxMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA MG5pbA== :: main.lua ---[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 11:31:18",revision=995]] +--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-26 12:00:12",revision=1005]] include("/cirnofarm/src/game.lua") :: .info.pod b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w -NC0yNiAxMTozMToxOCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y +NC0yNiAxMjowMDoxMyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0 aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9 diff --git a/src/cirno.lua b/src/cirno.lua index 3a7b1bd..020aa1e 100644 --- a/src/cirno.lua +++ b/src/cirno.lua @@ -29,73 +29,77 @@ function cirno_init() --bullets={} player={} - add(player, { - x=128, - y=128, - w=16, - h=16, - speed=0.05, - hflip=false, - spriteIndex=65, - crosshair_index=82, - move_x=0, - move_y=0, - noclip=false, - cm=true, -- Collide with map tiles - cb=true, -- Collide with world bounds - draw=function(self) - camera(self.x - 240, self.y - 135) - spr(self.spriteIndex,self.x,self.y, self.hflip) - print(string.format("x:%.2f y:%.2f mx:%.2f my:%.2f",self.x,self.y, - self.move_x,self.move_y),0,0,1) + local cirnoInstance = { + x=128, + y=128, + w=16, + h=16, + speed=0.05, + hflip=false, + spriteIndex=65, + crosshair_index=82, + move_x=0, + move_y=0, + noclip=false, + cm=true, -- Collide with map tiles + cb=true, -- Collide with world bounds + draw=function(self) - draw_crosshair(self) - --print(string.format("dir_x:%.4f dir_y:%.4f",self. - end, - update=function(self) - self.move_character(self) + spr(self.spriteIndex,self.x,self.y, self.hflip) + print(string.format("x:%.2f y:%.2f mx:%.2f my:%.2f",self.x,self.y, + self.move_x,self.move_y),0,0,1) + + draw_crosshair(self) + --print(string.format("dir_x:%.4f dir_y:%.4f",self. + end, + update=function(self) + self.move_character(self) + + -- Shoot bullet with Z + if (btn(4)) then + --create_bullet(self.x,self.y,self.move_x,self.move_Y) + weapons_manager.create_bullet(self.x+8,self.y+8,self.move_x,self.move_y) + end + end, + move_character=function(self) - -- Shoot bullet with Z - if (btn(4)) then - --create_bullet(self.x,self.y,self.move_x,self.move_Y) - weapons_manager.create_bullet(self.x+8,self.y+8,self.move_x,self.move_y) - end - end, - move_character=function(self) + local hitbox_x = 4 + local hitbox_y = 8 + local hitbox_w = 6 + local hitbox_h = 8 - local hitbox_x = 4 - local hitbox_y = 8 - local hitbox_w = 6 - local hitbox_h = 8 - - --self.move_x = self.x - --self.move_y = self.y - if (btn(0)) self.move_x -= self.speed self.hflip = true - 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, - hitbox_h)) then - if (not self.noclip) then self.move_x = 0 end - end - - if (check_collision(self.x+hitbox_x, - self.y+self.move_y+hitbox_y, - hitbox_w, - hitbox_h)) then - if (not self.noclip) then self.move_y = 0 end + --self.move_x = self.x + --self.move_y = self.y + if (btn(0)) self.move_x -= self.speed self.hflip = true + 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, + hitbox_h)) then + if (not self.noclip) then self.move_x = 0 end + end + + if (check_collision(self.x+hitbox_x, + self.y+self.move_y+hitbox_y, + hitbox_w, + hitbox_h)) then + if (not self.noclip) then self.move_y = 0 end + end + + self.move_x *= 0.95 + self.move_y *= 0.95 + + self.x += self.move_x + self.y += self.move_y end + } - self.move_x *= 0.95 - self.move_y *= 0.95 + add(player, cirnoInstance) - self.x += self.move_x - self.y += self.move_y - end - }) + return cirnoInstance end @@ -182,4 +186,8 @@ function M.draw() return cirno_draw() end +function M.get() + return player[1] +end + return M \ No newline at end of file diff --git a/src/game.lua b/src/game.lua index c5d62a3..cf9471a 100644 --- a/src/game.lua +++ b/src/game.lua @@ -62,7 +62,7 @@ tile_height = 16 function _init() spawn_objects() - cirno.init() + cirnoInstance = cirno.init() end function _update() @@ -97,10 +97,15 @@ particles = {} function _draw() cls(0) + camera(cirnoInstance.x - 240, cirnoInstance.y - 135) + foreach(LAYERS, render_layer) mouse_debug.draw(4, tile_width, tile_height) weapons_manager.debug_draw() + + + end function spawn_objects()