From 602265d574acfc9503a25bc8a83d90f5578fb843 Mon Sep 17 00:00:00 2001 From: NCLanceman Date: Tue, 1 Apr 2025 22:18:32 -0500 Subject: [PATCH] beginnings of ui --- assets/asteroid/Asteroid 01 - Base.png | Bin 0 -> 1095 bytes assets/asteroid/Asteroid 01 - Explode.png | Bin 0 -> 6009 bytes assets/player/autocannon.png | Bin 0 -> 1243 bytes assets/ui/base_engine.png | Bin 0 -> 336 bytes blaster.lua | 2 +- entities/enemy.lua | 4 ++-- entities/player.lua | 4 ---- main.lua | 8 +++++--- ui.lua | 21 +++++++++++++++++++++ 9 files changed, 29 insertions(+), 10 deletions(-) create mode 100644 assets/asteroid/Asteroid 01 - Base.png create mode 100644 assets/asteroid/Asteroid 01 - Explode.png create mode 100644 assets/player/autocannon.png create mode 100644 assets/ui/base_engine.png diff --git a/assets/asteroid/Asteroid 01 - Base.png b/assets/asteroid/Asteroid 01 - Base.png new file mode 100644 index 0000000000000000000000000000000000000000..044cfd9e275657fcd309e3777e22f778cf73440e GIT binary patch literal 1095 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-HD>U}5xhaSW-L z^LCc4w|1aF+x-~5C89w&GZhlObA`5f&#YHiB9?PxzHpv$1p6QMX=MjZqS_QZXF6^0 z-Man887phc*}eDrZ$9|lupr(3&fM>3j?di8px7ed#DRheV)(od9LIU zdSjL7IynX7pC4Z;+FIKl_te%pQ-E%>CVM;ED{7v*)e{+7PpON9eR;Dzbduck zmde;9H{Tw0iNUn`P3Vw!nX;ALBpouQ7qdU(!WagGw&#&jv^+oETFc^j6l z;SH4AQRQ%xXPb6Hw#8dkt1BIjYmZM+yq*$uRjI@Ai_SIEIt~4ZlD-wMmQ_8DV|_X4wJFMmCHpNqirtrBZ6-bxmC~ZG(+sprh^FqMf zlT23IUI&D1{c!0z)5Ehef6HS(HD_B#ZBuNm73~yr5ZdvrW&IQW2fw!|HLPV|_|~b+!m8<;~Zp-i3vm-0Vwcuc`s?7_2=}pSt{%t#VJT+foOA)W+)izOvgJrIU zEpPAL=Dw~1QlP*7JcE(`g?R#8;$pc+Ho0ggomj5jbmrgw?`H9bOZ_7*%wHNJDD>pQ zO`Un)KK+U@__v+MQHs;OIc$gP+V4H~**T|AzcvP@Tj%Fu{&!ez)c*8gQTW_v#N2j) ziSyI;ef<*uyZit6uV`gwQ1VEV5p=5GAZk=J)x+uu!-}~d8>MO_7wn(3?V)Q6LswEr z;iaxG>KcxR*{?C_?cn~vX?J_Q{jzdpeA)3|%YA_~KdIQm?)!ix1B0ilpUXO@geCx7 CHsb;S literal 0 HcmV?d00001 diff --git a/assets/asteroid/Asteroid 01 - Explode.png b/assets/asteroid/Asteroid 01 - Explode.png new file mode 100644 index 0000000000000000000000000000000000000000..c741ea1e98c6e2d14921a4f474d3cc4f2569584c GIT binary patch literal 6009 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 z000000000000000000000000000000000000001~_!q>9a0J}5mGl4r002ovPDHLk FV1lkTVtW7p literal 0 HcmV?d00001 diff --git a/assets/ui/base_engine.png b/assets/ui/base_engine.png new file mode 100644 index 0000000000000000000000000000000000000000..35f4d9fe5e7fd33d094ba0c6918c5539c65a0869 GIT binary patch literal 336 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC#^NA%Cx&(BWL^T%wBG8Y0ub}Em|CZ z6%_x~b9!b*RrK#$Ccp?Z7YP2SpMSX7RsMa^)P{(2;$Fv}7M6b6H}NgI(8P|z9YOmS zsGQb3S>*M%>5+lbuNcu}J)sv@9|#+)JbA2W#ZBgG$rpVca>A^4-9Hz~&b_1P{*ziA zZj0RS*=s9$ygOL;WSx$We3x(RcKyNkhOI28gfdor{iIXTyVc2@akb-%YxWacMOWP3 zQB*(Ma95Ae4Bur}Rkh94xp!R3Gv2;>E literal 0 HcmV?d00001 diff --git a/blaster.lua b/blaster.lua index 6c81bc1..c4b8d5e 100644 --- a/blaster.lua +++ b/blaster.lua @@ -3,7 +3,7 @@ Blaster = Object:extend() function Blaster:new(x, y, owner) self.x = x self.y = y - self.radius = 10 + self.radius = 5 self.height = self.radius * 2 self.width = self.radius * 2 self.speed = 700 diff --git a/entities/enemy.lua b/entities/enemy.lua index 646a536..67a144d 100644 --- a/entities/enemy.lua +++ b/entities/enemy.lua @@ -17,8 +17,8 @@ function Enemy:new(x, y, radius) self.type = "enemy" self.health = 10 self.move_radius = radius - self.speed = 100 - self.fireRate = 2 + self.speed = 80 + self.fireRate = 1 self.destroy = false self.bounds = { (self.x + 18), (self.x + 44), (self.y + 20), (self.y + 44) } diff --git a/entities/player.lua b/entities/player.lua index 966e022..c7efe12 100644 --- a/entities/player.lua +++ b/entities/player.lua @@ -58,17 +58,13 @@ function Player:update(dt, enemies) end function Player:draw() - --local vert = { self.x, self.y, (self.x - 70), (self.y + 70), (self.x + 70), (self.y + 70) } - --love.graphics.polygon("fill", vert) local fullHealth = self.image[1][2] love.graphics.draw(fullHealth, self.x, self.y) for _, v in ipairs(playerBullets) do - --love.graphics.setColor(v.color) v:draw() end - --love.graphics.setColor(1, 1, 1) end function Player:keyPressed(key) diff --git a/main.lua b/main.lua index 387d2d6..b003a9e 100644 --- a/main.lua +++ b/main.lua @@ -1,13 +1,14 @@ function love.load() Object = require("scripts.classic") - --require("blaster") require("entities.player") require("entities.enemy") + require("ui") + ui = Ui(600, 800) local window_width = love.graphics.getWidth() local window_height = love.graphics.getHeight() - - player = Player(window_width / 2, window_height * 0.8) + --place the player in the middle of the screen, close to the bottom + player = Player(window_width / 2, window_height * 0.9) listOfEnemies = {} @@ -31,6 +32,7 @@ function love.update(dt) end function love.draw() + ui:draw() player:draw() for _, v in ipairs(listOfEnemies) do v:draw() diff --git a/ui.lua b/ui.lua index 27c86b9..f61c922 100644 --- a/ui.lua +++ b/ui.lua @@ -1,3 +1,24 @@ +Ui = Object:extend() + +--Set game canvas size +function Ui:new(window_width, window_height) + self.playableSpace = { window_width, window_height, (window_width * 0.25) } + self.score = 0 + + love.window.setMode((window_width * 1.5), window_height) +end +--set window size + +function Ui:draw() + local left_line = self.playableSpace[3] + local right_line = self.playableSpace[1] + self.playableSpace[3] + local window_height = self.playableSpace[2] + love.graphics.line(left_line, 0, left_line, window_height) + love.graphics.line(right_line, 0, right_line, window_height) +end + +--set + --display the score --display player health