mirror of
https://gitlab.com/MaddoScientisto/cirnofarm.git
synced 2026-06-16 06:43:47 +00:00
Sprite box
This commit is contained in:
parent
933f240bb0
commit
e2ab6ee3e9
5 changed files with 54 additions and 17 deletions
|
|
@ -6,7 +6,7 @@ version 2
|
||||||
:: sfx/
|
:: sfx/
|
||||||
:: gfx/0.gfx
|
:: gfx/0.gfx
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIscmV2aXNpb249MTE2OF1dbHo0AP0LAABfQwAA8xR7WzBdPXtibXA9cHh1
|
NC0yOCAxMDozODoyMiIscmV2aXNpb249MTIxNV1dbHo0AP0LAABfQwAA8xR7WzBdPXtibXA9cHh1
|
||||||
AEMgEBAE8PAsZmxhZ3M9MCxwYW5feAgA2nk9MCx6b29tPTExfSwyAPEIrxsj3gN_A94j3gP_CRNu
|
AEMgEBAE8PAsZmxhZ3M9MCxwYW5feAgA2nk9MCx6b29tPTExfSwyAPEIrxsj3gN_A94j3gP_CRNu
|
||||||
A04TbiNOA34TAP8DjgM_A04DLiN_Iy4DngP_FAMuXgAd8AnwRU2ALSYtUB1mHQUgHYYNFQAdlh0V
|
A04TbiNOA34TAP8DjgM_A04DLiN_Iy4DngP_FAMuXgAd8AnwRU2ALSYtUB1mHQUgHYYNFQAdlh0V
|
||||||
DaYEAMMNFQANlh0FEL0F8BNYAB8zWAAV8CpQRIAUTx8UUA8Ujx8EQC8UTx8kQA8UHx9EDg8ZBEAP
|
DaYEAMMNFQANlh0FEL0F8BNYAB8zWAAV8CpQRIAUTx8UUA8Ujx8EQC8UTx8kQA8UHx9EDg8ZBEAP
|
||||||
|
|
@ -63,11 +63,11 @@ IQx-EBwPHAEQES8QhwnyBTE-EBGAAS4BoAEeDxwBkAEeDQGQDwAQDQUAXwGwMfAKogAfDzIA----
|
||||||
----------------------------------9zUD0xMX19
|
----------------------------------9zUD0xMX19
|
||||||
:: gfx/.info.pod
|
:: gfx/.info.pod
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
NC0yOCAxMDozODoyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||||
MG5pbA==
|
MG5pbA==
|
||||||
:: map/0.map
|
:: map/0.map
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIscmV2aXNpb249MTIyM11dbHo0ALgFAAAUQgAA8Ah7e2JtcD11c2VyZGF0
|
NC0yOCAxMDozODoyMiIscmV2aXNpb249MTI0OV1dbHo0ALgFAAAUQgAA8Ah7e2JtcD11c2VyZGF0
|
||||||
YSgiaTE2IiwzMgMALyIwAQD-gy4xMAwADwEAoiozMAEAHjQUAAwBADU1ODABAD80ODABACsvNDAz
|
YSgiaTE2IiwzMgMALyIwAQD-gy4xMAwADwEAoiozMAEAHjQUAAwBADU1ODABAD80ODABACsvNDAz
|
||||||
ACYfNnwABD8xMzCAAEoPXAAaBAQADwEANQ9QACEvMzCAAG0PAQC6KjQ4CAEPBAMHDiAADwEANgSA
|
ACYfNnwABD8xMzCAAEoPXAAaBAQADwEANQ9QACEvMzCAAG0PAQC6KjQ4CAEPBAMHDiAADwEANgSA
|
||||||
AB8zYAEALzMwAQBOLzQ4GAAPDiQADwEAOQ5oAA8BAHIeM4ABD4AAYA8BAP_EBLQDDhAADwEAUwxw
|
AB8zYAEALzMwAQBOLzQ4GAAPDiQADwEAOQ5oAA8BAHIeM4ABD4AAYA8BAP_EBLQDDhAADwEAUwxw
|
||||||
|
|
@ -96,11 +96,11 @@ AQABL2UwAQAuLzE4BAATD4AA-0YvMDgEABQfZQQAIA8BABEfOAQAFB9lBAAeDwkhkkpiYWNrCSFk
|
||||||
MTM3LjE2AQAVN4YQLzEyhhARUG09MX19
|
MTM3LjE2AQAVN4YQLzEyhhARUG09MX19
|
||||||
:: map/.info.pod
|
:: map/.info.pod
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
NC0yOCAxMDozODoyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||||
MG5pbA==
|
MG5pbA==
|
||||||
:: sfx/0.sfx
|
:: sfx/0.sfx
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjM0Iixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIscmV2aXNpb249OTQ3XV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
NC0yOCAxMDozODoyMiIscmV2aXNpb249OTcyXV1sejQARgEAAGYIAADwJ3B4dQADKAAAAwAED0AQ
|
||||||
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
Ag4AAaABIAKgDgAPEAAN8MoBAgMEBQYHAA--kAgJCgsPDA8NDw4PDxAA8AANDxEPEg8TDxQPFQ8W
|
||||||
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
DxcTAPEBDxgPGQ8aDxsPHA8dDx4PHxQA8QAgDyEPIg8jDyQPJQ8mDycUAPEAKA8pDyoPKw8sDy0P
|
||||||
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
Lg8vFADxADAPMQ8yDzMPNA81DzYPNxQA-wU4DzkPOg87DzwPPQ8_Dz8AD--w-wEA6-InWgEQBg8g
|
||||||
|
|
@ -109,14 +109,14 @@ L-AAMAD--4If-wEAzPEd6A9AAA1ADxcACxoIBggQAgMQBQAGAAgASRcAJggJUP--CfEX-gn8F-4J
|
||||||
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
8HArAF-_sPBwBAgA-9wf-wEAl1D-----Hw==
|
||||||
:: sfx/.info.pod
|
:: sfx/.info.pod
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
NC0yOCAxMDozODoyMyIsc3RvcmVkPSIyMDI0LTA0LTA0IDA3OjE5OjMzIl1dbHo0AAQAAAADAAAA
|
||||||
MG5pbA==
|
MG5pbA==
|
||||||
:: main.lua
|
:: main.lua
|
||||||
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-28 09:11:04",revision=1234]]
|
--[[pod_format="raw",created="2024-04-04 07:19:33",modified="2024-04-28 10:38:22",revision=1259]]
|
||||||
include("/cirnofarm/src/game.lua")
|
include("/cirnofarm/src/game.lua")
|
||||||
:: .info.pod
|
:: .info.pod
|
||||||
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
|
b64$LS1bW3BvZCxjcmVhdGVkPSIyMDI0LTA0LTE2IDE5OjQyOjIyIixtb2RpZmllZD0iMjAyNC0w
|
||||||
NC0yOCAwOToxMTowNCIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
NC0yOCAxMDozODoyMyIscnVudGltZT02LHN0b3JlZD0iMjAyNC0wNC0xNiAxOTo0MDowNSIsd29y
|
||||||
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
|
a3NwYWNlcz17e2xvY2F0aW9uPSJtYWluLmx1YSMxIix3b3Jrc3BhY2VfaW5kZXg9MX0se2xvY2F0
|
||||||
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
|
aW9uPSJnZngvMC5nZngiLHdvcmtzcGFjZV9pbmRleD0yfSx7bG9jYXRpb249Im1hcC8wLm1hcCIs
|
||||||
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9
|
d29ya3NwYWNlX2luZGV4PTN9LHtsb2NhdGlvbj0ic2Z4LzAuc2Z4Iix3b3Jrc3BhY2VfaW5kZXg9
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@ LAYERS_COUNT=4
|
||||||
local Cirno = MovableActor:new()
|
local Cirno = MovableActor:new()
|
||||||
Cirno.spriteIndex = 65
|
Cirno.spriteIndex = 65
|
||||||
Cirno.crosshair_index=82
|
Cirno.crosshair_index=82
|
||||||
|
Cirno.weapon=nil
|
||||||
|
|
||||||
function Cirno:new(x,y)
|
function Cirno:new(x,y)
|
||||||
local obj = Actor:new(x,y)
|
local obj = Actor:new(x,y)
|
||||||
|
|
@ -32,7 +33,7 @@ function Cirno:update()
|
||||||
|
|
||||||
if (btn(4)) then
|
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)
|
||||||
weapons_manager.create_bullet(self.x+8,self.y+8,self.move_x,self.move_y)
|
weapons_manager.shoot(self.weapon,self.x+8,self.y+8,self.move_x,self.move_y)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -59,6 +60,8 @@ M = {}
|
||||||
function M.init()
|
function M.init()
|
||||||
--return cirno_init()
|
--return cirno_init()
|
||||||
local c = Cirno:new(128,128)
|
local c = Cirno:new(128,128)
|
||||||
|
local weapon = weapons_manager.get_weapons().ICE_BLASTER
|
||||||
|
c.weapon = weapon
|
||||||
return c
|
return c
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -93,10 +93,14 @@ function _update()
|
||||||
|
|
||||||
--slidervalue = pgui:component("hslider",{pos=vec(190,20),value=slidervalue})
|
--slidervalue = pgui:component("hslider",{pos=vec(190,20),value=slidervalue})
|
||||||
|
|
||||||
pgui:component("vstack",{stroke=true,height=0,margin=3,gap=3,contents={
|
pgui:component("vstack",{stroke=true,pos=vec(0,0),color={0,18,12,0,7,6},height=0,margin=3,gap=3,contents={
|
||||||
|
{"text_box",{text=string.format("x: %.2f y: %.2f", cirnoInstance.x, cirnoInstance.y),margin=2,stroke=true,active=false,hover=false},color={0,18,12,0,7,6}},
|
||||||
|
{"text_box",{text=string.format("mx: %.2f my: %.2f", cirnoInstance.move_x, cirnoInstance.move_y),margin=2,stroke=true,active=false,hover=false}},
|
||||||
{"text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false}},
|
{"text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false}},
|
||||||
{"text_box",{text=string.format("%.4f %dfps",stat(1),stat(7)),margin=2,stroke=true,active=false,hover=false}},
|
{"text_box",{text=string.format("%.4f %dfps",stat(1),stat(7)),margin=2,stroke=true,active=false,hover=false}},
|
||||||
{"text_box",{text=string.format("Bullets: %d", count(bullets)),margin=2,stroke=true,active=false,hover=false}},
|
{"text_box",{text=string.format("Bullets: %d", count(bullets)),margin=2,stroke=true,active=false,hover=false}},
|
||||||
|
{"text_box",{text=string.format("Weapon: %s", cirnoInstance.weapon.name),margin=2,stroke=true,active=false,hover=false}},
|
||||||
|
{"sprite_box",{sprite=cirnoInstance.weapon.spriteIndex,margin=2,stroke=true,active=false,hover=false}},
|
||||||
}})
|
}})
|
||||||
|
|
||||||
--pgui:component("text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false})
|
--pgui:component("text_box",{text=string.format("Actors: %d", count(actors)),margin=2,stroke=true,active=false,hover=false})
|
||||||
|
|
|
||||||
24
src/pgui.lua
24
src/pgui.lua
|
|
@ -24,6 +24,14 @@ pgui_components.text.fns.draw = function(self)
|
||||||
pgui:_text(self.text,self,self.color[4])
|
pgui:_text(self.text,self,self.color[4])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
pgui_components.sprite = {fns={}, data={_id="sprite",sprite=0,size=vec(0,7)}}
|
||||||
|
pgui_components.sprite.fns.update = function(self)
|
||||||
|
return self.sprite
|
||||||
|
end
|
||||||
|
pgui_components.sprite.fns.draw = function(self)
|
||||||
|
pgui:_sprite(self.sprite,self)
|
||||||
|
end
|
||||||
|
|
||||||
pgui_components.rect = {fns={}, data={_id="rect",size=vec(16,16)}}
|
pgui_components.rect = {fns={}, data={_id="rect",size=vec(16,16)}}
|
||||||
pgui_components.rect.fns.draw = function(self)
|
pgui_components.rect.fns.draw = function(self)
|
||||||
pgui:_rect(self.pos.x+self.offset.x,self.pos.y+self.offset.y,self.size.x,self.size.y,self.color[4],false)
|
pgui:_rect(self.pos.x+self.offset.x,self.pos.y+self.offset.y,self.size.x,self.size.y,self.color[4],false)
|
||||||
|
|
@ -79,6 +87,16 @@ pgui_components.text_box.fns.update = function(self,offset)
|
||||||
return self.text
|
return self.text
|
||||||
end
|
end
|
||||||
|
|
||||||
|
pgui_components.sprite_box = {fns={}, data={_id="sprite_box",sprite=0,margin=2,stroke=true,active=false,hover=false}}
|
||||||
|
pgui_components.sprite_box.fns.update = function(self,offset)
|
||||||
|
local sprite_width = 16
|
||||||
|
local sprite_height = 16
|
||||||
|
self.size = vec(sprite_width+(self.margin*2),(self.margin*2)+sprite_height)
|
||||||
|
pgui:component("box",{offset=offset,clip=self.clip,layer=self.layer,size=self.size,hover=self.hover,active=self.active,stroke=self.stroke})
|
||||||
|
pgui:component("sprite",{offset=offset,clip=self.clip,layer=self.layer,pos=vec(self.margin,self.margin),active=self.active,sprite=self.sprite})
|
||||||
|
return self.sprite
|
||||||
|
end
|
||||||
|
|
||||||
pgui_components.scrollable = {fns={}, data={label="scrll",_id="scrollable",scroll_x=false,scroll_y=true,size=vec(50,50),sensibility=4,content={"text_box",{text="scrollable",margin=50}}}}
|
pgui_components.scrollable = {fns={}, data={label="scrll",_id="scrollable",scroll_x=false,scroll_y=true,size=vec(50,50),sensibility=4,content={"text_box",{text="scrollable",margin=50}}}}
|
||||||
pgui_components.scrollable.fns.update = function(self,offset)
|
pgui_components.scrollable.fns.update = function(self,offset)
|
||||||
if pgui:get_store(self.label,true) == nil then
|
if pgui:get_store(self.label,true) == nil then
|
||||||
|
|
@ -628,6 +646,12 @@ function pgui_methods:_text(text,com,col)
|
||||||
print(tostring(text),x,y,col)
|
print(tostring(text),x,y,col)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function pgui_methods:_sprite(sprite,com)
|
||||||
|
local x = com.pos.x+com.offset.x
|
||||||
|
local y = com.pos.y+com.offset.y
|
||||||
|
spr(sprite,x,y)
|
||||||
|
end
|
||||||
|
|
||||||
function pgui_methods:_rect(x,y,w,h,c,f)
|
function pgui_methods:_rect(x,y,w,h,c,f)
|
||||||
line(x+1,y,x+w-1,y,c)
|
line(x+1,y,x+w-1,y,c)
|
||||||
line(x,y+1,x,y+h-1,c)
|
line(x,y+1,x,y+h-1,c)
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,17 @@ local weapons_list = {
|
||||||
rate_of_fire = 0.2,
|
rate_of_fire = 0.2,
|
||||||
bullet=bullets_list.BASIC,
|
bullet=bullets_list.BASIC,
|
||||||
spriteIndex=104,
|
spriteIndex=104,
|
||||||
shoot=function(self,x,y,dir_x,dir_y)
|
--shoot=function(self,x,y,dir_x,dir_y)
|
||||||
|
-- create_bullet(self.bullet, x, y, dir_x, dir_y)
|
||||||
end
|
--end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function shoot(weapon, x, y, dir_x, dir_y)
|
||||||
|
-- handle cooldown
|
||||||
|
create_bullet(weapon.bullet, x, y, dir_x, dir_y)
|
||||||
|
end
|
||||||
|
|
||||||
-- local particles = {}
|
-- local particles = {}
|
||||||
|
|
||||||
Particle = Actor:new()
|
Particle = Actor:new()
|
||||||
|
|
@ -102,7 +108,7 @@ function Bullet:draw()
|
||||||
spr(self.spriteIndex,self.x,self.y)
|
spr(self.spriteIndex,self.x,self.y)
|
||||||
end
|
end
|
||||||
|
|
||||||
function create_bullet(new_x, new_y, dir_x, dir_y)
|
function create_bullet(bullet, new_x, new_y, dir_x, dir_y)
|
||||||
-- Calculate the length of the direction vector
|
-- Calculate the length of the direction vector
|
||||||
local length = sqrt(dir_x^2 + dir_y^2)
|
local length = sqrt(dir_x^2 + dir_y^2)
|
||||||
|
|
||||||
|
|
@ -110,7 +116,7 @@ function create_bullet(new_x, new_y, dir_x, dir_y)
|
||||||
local normalized_dir_x = dir_x / length
|
local normalized_dir_x = dir_x / length
|
||||||
local normalized_dir_y = dir_y / length
|
local normalized_dir_y = dir_y / length
|
||||||
|
|
||||||
local b = Bullet:new(bullets_list.BASIC, new_x, new_y, normalized_dir_x, normalized_dir_y)
|
local b = Bullet:new(bullet, new_x, new_y, normalized_dir_x, normalized_dir_y)
|
||||||
--b.dx = normalized_dir_x * 2
|
--b.dx = normalized_dir_x * 2
|
||||||
--b.dy = normalized_dir_y * 2
|
--b.dy = normalized_dir_y * 2
|
||||||
|
|
||||||
|
|
@ -119,8 +125,8 @@ function create_bullet(new_x, new_y, dir_x, dir_y)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.create_bullet(new_x, new_y, dir_x, dir_y)
|
function M.shoot(weapon, new_x, new_y, dir_x, dir_y)
|
||||||
return create_bullet(new_x,new_y,dir_x,dir_y)
|
return shoot(weapon, new_x,new_y,dir_x,dir_y)
|
||||||
end
|
end
|
||||||
|
|
||||||
function M.get_weapons()
|
function M.get_weapons()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue