|
- ship = Class{}
-
-
- function ship:init(x, y, image)
- self.x = x
- self.y = y
- self.ox = x
- self.oy = y
- self.dy = 0
- self.dx = 5
- self.speed = 1
- self.image = love.graphics.newImage(image)
- self.width = self.image:getWidth()
- self.height = self.image:getHeight()
- self.rotation = 1.5708
- self.vector = 1.5708
- self.color = {1,1,1,1}
- self.path = {}
- self.dottimer = 0.5
- self.fuel = 0
- self.destX = x
- end
- function ship:newPathDot(dotx, doty, color)
- return {
- x = dotx,
- y = doty,
- color = color
- }
- end
- function ship:update(dt)
- if not shipIsHit then
- self.dottimer = self.dottimer - dt
- if self.dottimer < 0 then
- if (love.keyboard.isDown('w') and self.fuel > 0 and gameState == "levelgeneral") then
- table.insert(self.path, self:newPathDot(self.x, self.y, 1))
- else
- table.insert(self.path, self:newPathDot(self.x, self.y, 2))
- end
- self.dottimer = 0.2
- end
- if love.timer.getFPS() < 20 then
- self.path = {}
- end
- self.x = self.x + self.dx*self.speed/2
- self.y = self.y + self.dy*self.speed/2
- if self.dx ~= 0 then
- self.vector = math.atan( self.dy/ self.dx)
- end
- --[[if love.keyboard.isDown('s') then
- self.speed = math.sqrt(self.dx^2 + self.dy^2)
- if self.speed > 0 then
- self.speed = self.speed - 0.5
- end
- self.dx = math.cos(self.vector) * self.speed
- self.dy = math.sin(self.vector) * self.speed
- end ]]--
- if love.keyboard.isDown('w') and self.fuel > 0 and gameState == "levelgeneral" then
- self.fuel = self.fuel - 0.5
- self.speed = self.speed + 0.05
-
- end
- local tag = false
- for i in ipairs(planets) do
- local distanceToShip = math.sqrt((firstShip.x - planets[i].x)^2 + (firstShip.y - planets[i].y)^2)
- if distanceToShip < 200 and not shipIsHit and gameStatus == "play" then
- sounds["close"]:play()
- tag = true
- end
- end
- if not tag or shipIsHit then
- sounds["close"]:stop()
- end
- --[[
- if love.keyboard.isDown('left') then
- self.dx = self.dx - 0.5
- end
- if love.keyboard.isDown('right') then
- self.dx = self.dx + 0.5
- end
- if love.keyboard.isDown('up') then
- self.dy = self.dy - 0.5
- end
- if love.keyboard.isDown('down') then
- self.dy = self.dy + 0.5
- end
- ]]--
- --print(self.speed)
-
- --[[
- if love.keyboard.isDown('right') then
- self.rotation = self.rotation + 10
- elseif love.keyboard.isDown('left') then
- self.rotation = self.rotation - 10
- end]]--
-
- --print("rotation:" .. self.rotation)
- --print("speed:" .. self.dx .. " " .. self.dy)
-
- if self.dx < 0 then
- self.vector = self.vector - 3.14159
- end
- self.vector = self.vector + 1.5708
- end
- end
-
- function ship:draw()
-
- -- Draw the `self.canvas` to screen
- love.graphics.setColor(unpack(self.color))
- --print("DAW" .. camera.x)
- love.graphics.draw(self.image, self.x, self.y, self.vector, 1, 1, self.width/2, self.height/2)
- for i in ipairs(self.path) do
- if i > 1 then
-
- love.graphics.setColor(0.9,0.9,0.9,1)
- if (self.path[i].color < 2) then
- love.graphics.setColor(0.9,0.4,0.4,1)
- end
- --print("DOING".. i)
- love.graphics.line(self.path[i].x, self.path[i].y, self.path[i-1].x, self.path[i-1].y)
- end
- end
- love.graphics.setColor(1,1,1,1)
-
- end
-
- function ship:reset()
- self.x = self.ox
- self.y = self.oy
- self.dy = 0
- self.dx = 5
- self.rotation = 1.57
- self.canvas = love.graphics.newCanvas(WINDOW_WIDTH, WINDOW_HEIGHT)
- self.vector = 1.56
- self.speed = 1
- self.destX = self.x
- self.path = {}
- self.dottimer = 0.5
- end
|