diff orig/actor.lua new/actor.lua 11c11 < --- > 26c26 < object.sprite = love.graphics.newImage("gfx/player.png") --- > object.sprite = love.graphics.newImage("player.png") 40c40 < love.graphics.setScissor(self.xPos-12+gameShakeX, self.yPos-12+gameShakeY, spriteSize*3, spriteSize*3) --- > love.graphics.setScissor(self.xPos-12, self.yPos-12, spriteSize*3, spriteSize*3) 51a52,53 > Actor:move(dt) > Actor:deadBug(dt) 145c147,207 < end \ No newline at end of file --- > end > > function Actor:move(dt) > local speedAdd = 3000 > if player.inAir then speedAdd = speedAdd / 1.7 end > if (love.keyboard.isDown("a") or love.keyboard.isDown("left")) and player.xVel > -player.maxSpeed then > player.xVel = player.xVel - (speedAdd * dt) > player.dir = "l" > elseif (love.keyboard.isDown("d") or love.keyboard.isDown("right")) and player.xVel < player.maxSpeed then > player.xVel = player.xVel + (speedAdd * dt) > player.dir = "r" > end > if player.xVel < -player.maxSpeed then player.xVel = -player.maxSpeed end > if player.xVel > player.maxSpeed then player.xVel = player.maxSpeed end > end > > function Actor:deadBug(dt) > if swarm:collidesWithBug(player) == true then > gameInit = true > sfx:play("fail") > end > end > > function Actor:keypressed(key) > if gameScreen == "game" and not player.inAir then > if key == " " or key == "up" then > sfx:play("jump") > player.yVel = -375 > player.inAir = true > end > end > if key == "r" and gameLevel > 0 then > gameInit = true > sfx:play("fail") > end > end > > function Actor:mousepresed(x,y,button) > if gameScreen == "game" then > if button == "l" and clickCooldown < 0 then > local px, py = player.xPos, player.yPos > local mx, my = x, y > > local dx = mx - px > local dy = my - py > > local magnitude = math.sqrt(dx*dx+dy*dy) > dx = (dx / magnitude) * 600 > dy = (dy / magnitude) * 600 > > player.xVel = player.xVel + ((dx * -1) / 3) > player.yVel = player.yVel + ((dy * -1) / 7) > swarm:add(px, py, dx, dy, "bomb") > > sfx:play("toss") > clickCooldown = .5 > end > end > end > > diff orig/conf.lua new/conf.lua 3,4c3,6 < t.title = 'Another Kind of World' < t.author = 'Markus Kothe (Daandruff)' --- > > t.title = 'Slime Boy' > t.author = 'Muresan Vlad(Buhb11)' > t.identity = 'SlimeBoy' 11c13,14 < t.modules.joystick = false --- > t.console = true > t.modules.joystick = true 20c23 < t.modules.physics = false --- > t.modules.physics = true Only in orig/: cursor.png Only in new/: effects.lua Only in new/: logo.ogg Only in new/: logo.png Binary files orig/lvl0col.png and new/lvl0col.png differ Binary files orig/lvl0over.png and new/lvl0over.png differ Binary files orig/lvl10col.png and new/lvl10col.png differ Binary files orig/lvl10over.png and new/lvl10over.png differ Only in new/: lvl11col.png Only in new/: lvl11over.png Only in new/: lvl12col.png Only in new/: lvl12over.png Only in new/: lvl13col.png Only in new/: lvl13over.png Binary files orig/lvl1col.png and new/lvl1col.png differ Binary files orig/lvl2col.png and new/lvl2col.png differ diff orig/main.lua new/main.lua 1,3c1,4 < require("actor") < require("world") < require("sfxengine") --- > require 'actor' > require 'effects' > require 'world' > require 'sfxengine' 5,8c6,7 < function love.load() < -- Screen settings < love.graphics.setMode(768, 480, false, false, 0) < love.mouse.setVisible(false) --- > --poate alte skinuri > --bombe noi,radius mai mare 9a9,10 > function love.load() > 11,21c12,20 < gameScreen = "game" < gameInit = true < gameUpdate = true < gameLevel = 0 < gameSave = 0 < gameBlackout = 255 < gameScreenShake = 0 < gameShakeX = 0 < gameShakeY = 0 < < -- Setup game --- > gameScreen = "logo" -- game state > gameScreenTime = 0 -- time between switching the state > gameInit = true -- effect process and loading maps > --load system > save = love.filesystem.newFile("save.txt") > save:open("r") > data = save:read() > gameLevel = data-- current level of the game > -- Setup gamegfx 25a25 > Effects:new() 30,34c30,31 < clickCooldown = 0 < dirtCover = love.graphics.newImage("gfx/dirtcover.png") < mouseCursor = love.graphics.newImage("gfx/cursor.png") < mouseCursor:setFilter("nearest", "nearest") < sfx:play("music") --- > clickCooldown = 0 -- shooting bombs interval > 39c36,43 < if gameScreen == "menu" then --- > if gameScreen == "logo" then > sfx:play("logo") > love.graphics.draw(logo,1,1) > if gameScreenTime > 1.6 then gameScreen = "warring" end -- switch to game state > > elseif gameScreen == "warring" then > love.graphics.draw(warring,1,1) > if gameScreenTime > 3 then gameScreen = "game" end 42a47 > gameScreenTime = 0 45,46c50,53 < gameBlackout = 255 < gameScreenShake = 0 --- > --save system > love.filesystem.write("save.txt",gameLevel) > sfx:play("music") > Effects:new() 50c57 < swarm = Swarm:new() --- > swarm = swarm:new() 51a59,60 > spike = swarm:spike() > woodenSpike = swarm:WoodenSpike() 55,62d63 < < -- Move screen from shake < gameShakeX = math.random(gameScreenShake/2-gameScreenShake, gameScreenShake/2) < gameShakeY = math.random(gameScreenShake/2-gameScreenShake, gameScreenShake/2) < if gameScreenShake > 0 then < love.graphics.translate(gameShakeX, gameShakeY) < end < 63a65 > Effects:draw() 66,76d67 < < -- Return screen to normal < love.graphics.translate(0, 0) < end < < love.graphics.draw(mouseCursor, math.floor(love.mouse.getX()/3)*3-12, math.floor(love.mouse.getY()/3)*3-12, 0, 3, 3) < < if gameBlackout > 0 then < love.graphics.setColor(0, 0, 0, gameBlackout) < love.graphics.rectangle("fill", 0, 0, love.graphics.getWidth(), love.graphics.getHeight()) < love.graphics.setColor(255, 255, 255, 255) 80,97d70 < < if gameLevel == 0 then < if love.mouse.getX() > 80*3 and love.mouse.getX() < 80*3+96*3 then < love.graphics.setColor(255, 255, 255, 35) < if love.mouse.getY() > 68*3 and love.mouse.getY() < 68*3+16*3 then < love.graphics.rectangle("line", 80*3+1, 68*3+1, 96*3, 16*3) < elseif love.mouse.getY() > 88*3 and love.mouse.getY() < 88*3+16*3 then < love.graphics.rectangle("line", 80*3+1, 88*3+1, 96*3, 16*3) < elseif love.mouse.getY() > 108*3 and love.mouse.getY() < 108*3+16*3 then < love.graphics.rectangle("line", 80*3+1, 108*3+1, 96*3, 16*3) < end < end < if gameSave == 0 then < love.graphics.setColor(0, 0, 0, 150) < love.graphics.rectangle("fill", 80*3+1, 88*3+1, 96*3, 16*3) < end < end < love.graphics.setColor(255, 255, 255, 255) 100a74,75 > gameScreenTime = gameScreenTime + dt > 102d76 < if gameUpdate then 104,116c78 < < local speedAdd = 3000 < if player.inAir then speedAdd = speedAdd / 1.7 end < if (love.keyboard.isDown("a") or love.keyboard.isDown("left")) and player.xVel > -player.maxSpeed and gameLevel > 0 then < player.xVel = player.xVel - (speedAdd * dt) < player.dir = "l" < elseif (love.keyboard.isDown("d") or love.keyboard.isDown("right")) and player.xVel < player.maxSpeed and gameLevel > 0 then < player.xVel = player.xVel + (speedAdd * dt) < player.dir = "r" < end < if player.xVel < -player.maxSpeed then player.xVel = -player.maxSpeed end < if player.xVel > player.maxSpeed then player.xVel = player.maxSpeed end < --- > Effects:update(dt) 119c81 < end --- > 122c84 < if mobsLeftOnMap == 0 then --- > if mobsLeftOnMap == 0 then -- if there is not bug/enemy then delete it 125d86 < gameSave = gameLevel 130,146d90 < < if swarm:collidesWithBug(player) == true then < gameInit = true < sfx:play("fail") < end < end < < if gameBlackout > 2 then < gameBlackout = gameBlackout - 125 * dt < else < gameBlackout = 0 < end < < if gameScreenShake > 2 then < gameScreenShake = gameScreenShake - 75 * dt < else < gameScreenShake = 0 151,162c95,97 < if gameScreen == "game" and not player.inAir then < if (key == " " or key == "up") and gameLevel > 0 then < sfx:play("jump") < player.yVel = -375 < player.inAir = true < end < end < if key == "r" and gameLevel > 0 then < gameInit = true < sfx:play("fail") < end < if key == "escape" and gameLevel > 0 then --- > Actor:keypressed(key) > > if key == "escape" then 166a102 > 170,208c106 < if gameScreen == "game" and gameLevel > 0 then < if button == "l" and clickCooldown < 0 then < local px, py = player.xPos, player.yPos < local mx, my = x, y < < local dx = mx - px < local dy = my - py < < local magnitude = math.sqrt(dx*dx+dy*dy) < dx = (dx / magnitude) * 600 < dy = (dy / magnitude) * 600 < < player.xVel = player.xVel + ((dx * -1) / 3) < player.yVel = player.yVel + ((dy * -1) / 7) < swarm:add(px, py, dx, dy, "bomb") < < sfx:play("toss") < clickCooldown = .5 < end < elseif gameScreen == "game" and gameLevel == 0 then < if button == "l" then < if love.mouse.getX() > 80*3 and love.mouse.getX() < 80*3+96*3 then < if love.mouse.getY() > 68*3 and love.mouse.getY() < 68*3+16*3 then < gameLevel = 1 < gameSave = 1 < gameInit = true < sfx:play("success") < elseif love.mouse.getY() > 88*3 and love.mouse.getY() < 88*3+16*3 then < if gameSave > 0 then < gameLevel = gameSave < gameInit = true < sfx:play("success") < end < elseif love.mouse.getY() > 108*3 and love.mouse.getY() < 108*3+16*3 then < love.event.push("quit") < end < end < end < end --- > Actor:mousepresed(x,y,button) Only in new/: save.txt diff orig/sfxengine.lua new/sfxengine.lua 6,12c6,13 < object.music = love.audio.newSource("sfx/gamemusic.ogg", "stream") < object.boom = love.audio.newSource("sfx/boom.ogg", "static") < object.toss = love.audio.newSource("sfx/toss.ogg", "static") < object.jump = love.audio.newSource("sfx/jump.ogg", "static") < object.splat = love.audio.newSource("sfx/splat.ogg", "static") < object.success = love.audio.newSource("sfx/success.ogg", "static") < object.fail = love.audio.newSource("sfx/fail.ogg", "static") --- > object.music = love.audio.newSource("gamemusic.ogg", "stream") > object.boom = love.audio.newSource("boom.ogg", "static") > object.toss = love.audio.newSource("toss.ogg", "static") > object.jump = love.audio.newSource("jump.ogg", "static") > object.splat = love.audio.newSource("splat.ogg", "static") > object.success = love.audio.newSource("success.ogg", "static") > object.fail = love.audio.newSource("fail.ogg", "static") > object.logo = love.audio.newSource("logo.ogg", "static") 62a64,67 > end > elseif sound == "logo" then > if self.logo:isStopped() then > self.logo:play() Only in new/: spike.png Binary files orig/strandbox.png and new/strandbox.png differ diff orig/swarm.lua new/swarm.lua 7c7 < --- > --set metatable because i want to make a BIG self class so i can use it everywhere,smt 12a13 > --spawn bug,read below more 14,16c15,17 < local i = 1 < for x = 0, 31 do < for y = 0, 19 do --- > local i = 1 -- index > for x = 0, 31 do -- map W - 1 > for y = 0, 19 do -- map H - 1 19,23c20,24 < self.enteties[i] = Actor:new(x*8*3+12, y*8*3+10) < self.enteties[i].type = "bug" < self.enteties[i].ai = true < self.enteties[i].maxSpeed = 15 < self.enteties[i].sprite = love.graphics.newImage("gfx/enbug.png") --- > self.enteties[i] = Actor:new(x*8*3+12, y*8*3+10) -- posizition this entity > self.enteties[i].type = "bug" -- a type > self.enteties[i].ai = true -- it moves? > self.enteties[i].maxSpeed = 15 -- max speed that he can reach > self.enteties[i].sprite = love.graphics.newImage("enbug.png") -- a sprite 25,26c26,27 < self.enteties[i].fps = 6 + math.random(1, 3) < i = i + 1 --- > self.enteties[i].fps = 6 + math.random(1, 3) -- animation speed > i = i + 1 -- if i am not putting the i + 1 then i`ll spawn just 1 bug,i want to spawn all of them 30c31 < return i-1 --- > return i-1 -- after i put all the bugs i want to decress 1 else it bugs 32c33,62 < --- > --spawn spike > function Swarm:spike() > local i = 0 > for x = 0, 31 do > for y = 0, 19 do > red, green, blue, alpha = world.baseImg:getPixel(x, y) > if red == 0 and green == 0 and blue == 117 then > self.enteties[#self.enteties+1] = Actor:new(x*8*3+12, y*8*3+10) > self.enteties[#self.enteties].type = "spike" > self.enteties[#self.enteties].sprite = love.graphics.newImage("spike.png") > self.enteties[#self.enteties].sprite:setFilter("nearest", "nearest") > end > end > end > end > --spawn Woodenspike > function Swarm:WoodenSpike() > for x = 0, 31 do -- world size width - 1 > for y = 0, 19 do -- world size height - 1 > red, green, blue, alpha = world.baseImg:getPixel(x, y) > if red == 93 and green == 70 and blue == 30 then > self.enteties[#self.enteties+1] = Actor:new(x*8*3+12, y*8*3+10) > self.enteties[#self.enteties].type = "woodenSpike" > self.enteties[#self.enteties].sprite = love.graphics.newImage("woodenSpike.png") > self.enteties[#self.enteties].sprite:setFilter("nearest", "nearest") > end > end > end > end > --self explinatory 46c76 < self.enteties[#self.enteties].sprite = love.graphics.newImage("gfx/ball.png") --- > self.enteties[#self.enteties].sprite = love.graphics.newImage("ball.png") 54c84 < self.enteties[#self.enteties].sprite = love.graphics.newImage("gfx/smoke.png") --- > self.enteties[#self.enteties].sprite = love.graphics.newImage("smoke.png") 56c86 < self.enteties[#self.enteties].sprite = love.graphics.newImage("gfx/fire.png") --- > self.enteties[#self.enteties].sprite = love.graphics.newImage("fire.png") 65c95 < self.enteties[#self.enteties].sprite = love.graphics.newImage("gfx/glitter.png") --- > self.enteties[#self.enteties].sprite = love.graphics.newImage("glitter.png") 72c102 < self.enteties[#self.enteties].sprite = love.graphics.newImage("gfx/blood.png") --- > self.enteties[#self.enteties].sprite = love.graphics.newImage("blood.png") 79c109 < if not self.enteties[i] == false then --- > if self.enteties[i] then 87c117,118 < if not self.enteties[i] == false then --- > if self.enteties[i] then > 89c120,121 < if self.enteties[i].hasLife then --- > > if self.enteties[i].hasLife then -- if it has life(I assign it) then after some seconds i want to kill it 97c129 < if (not self.enteties[j] == false) then --- > if self.enteties[j] then 99c131 < local radius = 30 --- > local radius = 45 -- the radius of bomb to kill 102,105c134,136 < if self.enteties[j].yPos > self.enteties[i].yPos-radius and self.enteties[j].yPos < self.enteties[i].yPos+radius then < if self.enteties[j].type == "bomb" and self.enteties[j].life > .3 then < self.enteties[j].life = .3 < elseif self.enteties[j].type == "bug" then --- > if self.enteties[j].yPos > self.enteties[i].yPos-radius and self.enteties[j].yPos < self.enteties[i].yPos+radius then --destroy bug > --destroy the bug if is in the radius action > if self.enteties[j].type == "bug" or self.enteties[j].type == "woodenSpike" then 114c145,147 < gameScreenShake = 25 --- > --shake a little bit the screen > gameScreenShake = 15 > --spawn 40 smoke 118a152 > --if i kill a bug then i want to apply some effects + anathor stuffs 131c165,166 < self.enteties[i] = false --- > --deletes the effects,else make lagg try your self :D > self.enteties[i] = false -- if i put it to true i bug the game :) 137a173 > --preatty easy collison between entities and actor(player),i found it better than the one from wiki,in this project 141,143c177,179 < if not (self.enteties[i] == false) then < if self.enteties[i].type == "bug" then < if actor.xPos > self.enteties[i].xPos-12 and actor.xPos < self.enteties[i].xPos+12 and actor.yPos < self.enteties[i].yPos+12 and actor.yPos > self.enteties[i].yPos-6 then --- > if self.enteties[i] then > if self.enteties[i].type == "bug" or self.enteties[i].type == "spike" or self.enteties[i].type == "woodenSpike" then > if actor.xPos > self.enteties[i].xPos-16 and actor.xPos < self.enteties[i].xPos+16 and actor.yPos < self.enteties[i].yPos+12 and actor.yPos > self.enteties[i].yPos-6 then Only in new/: veens.png Only in new/: warring.png Only in new/: woodenSpike.png diff orig/world.lua new/world.lua 2a3,4 > --consolas > 13,14c15,16 < object.baseImg = love.image.newImageData("levels/lvl"..level.."col.png") < object.overImg = love.graphics.newImage("levels/lvl"..level.."over.png") --- > object.baseImg = love.image.newImageData("lvl"..level.."col.png") > object.overImg = love.graphics.newImage("lvl"..level.."over.png") 20c22 < object.gfxNormal = love.graphics.newImage("levels/nullbox.png") --- > object.gfxNormal = love.graphics.newImage("nullbox.png") 22c24 < object.gfxTop = love.graphics.newImage("levels/grassbox.png") --- > object.gfxTop = love.graphics.newImage("grassbox.png") 24c26 < object.gfxUnder = love.graphics.newImage("levels/underbox.png") --- > object.gfxUnder = love.graphics.newImage("underbox.png") 26c28 < object.gfxStrand = love.graphics.newImage("levels/strandbox.png") --- > object.gfxStrand = love.graphics.newImage("strandbox.png") 28c30 < object.gfxPillar = love.graphics.newImage("levels/pillarbox.png") --- > object.gfxPillar = love.graphics.newImage("pillarbox.png") 30c32 < object.gfxBack = love.graphics.newImage("levels/backbox.png") --- > object.gfxBack = love.graphics.newImage("backbox.png") 32c34 < object.gfxDoor = love.graphics.newImage("levels/doorbox.png") --- > object.gfxDoor = love.graphics.newImage("doorbox.png") 33a36,37 > object.gfxVeens = love.graphics.newImage("veens.png") > object.gfxVeens:setFilter("nearest", "nearest") 54,60c58,60 < -- < local spriteSize = self.gfxStrand:getHeight() < local spriteNum = math.floor(self.gfxStrand:getWidth()/spriteSize) < love.graphics.setScissor(x*8*self.scale+gameShakeX, y*8*self.scale+gameShakeY, spriteSize*3, spriteSize*3) < love.graphics.draw(self.gfxStrand, (x*8*self.scale)-(math.floor(2*(love.timer.getTime()+((x+y)/10.0))%spriteNum)*24), (y*8*self.scale), 0, 3, 3) < love.graphics.setScissor() < -- --- > love.graphics.draw(self.gfxStrand, x*8*self.scale, y*8*self.scale, 0, 3, 3) > elseif red == 86 and green == 140 and blue == 255 then > love.graphics.draw(self.gfxVeens, x*8*self.scale, y*8*self.scale, 0, 3, 3) 78c78 < --swarm:draw() --- > swarm:draw()