Added solo playing (start with '1' from menu)
This commit is contained in:
parent
cc4b52fd6b
commit
38d80b9dc1
3 changed files with 51 additions and 5 deletions
|
@ -2,6 +2,7 @@ Gamestate = require 'hump.gamestate'
|
|||
require 'level'
|
||||
require 'player'
|
||||
require 'computerplayer'
|
||||
require 'nullplayer'
|
||||
require 'scoreboard'
|
||||
require 'entities/powerup'
|
||||
require 'entities/chaingunpowerup'
|
||||
|
@ -47,7 +48,9 @@ function level_state:enter(previous, level_file)
|
|||
level_music:play()
|
||||
end
|
||||
|
||||
if self.computer then
|
||||
if self.mode == "solo" then
|
||||
players[2] = NullPlayer(2, "Null")
|
||||
elseif self.mode == "computer" then
|
||||
players[2] = ComputerPlayer(2, 'Vengeance')
|
||||
else
|
||||
players[2] = Player(2, 'Nicd')
|
||||
|
@ -61,7 +64,9 @@ function level_state:enter(previous, level_file)
|
|||
current_level.world:setCallbacks(begin_contact, end_contact, pre_solve, post_solve)
|
||||
|
||||
players[1]:setPlane(current_level:getPlane(1))
|
||||
players[2]:setPlane(current_level:getPlane(2))
|
||||
if players[2] then
|
||||
players[2]:setPlane(current_level:getPlane(2))
|
||||
end
|
||||
|
||||
-- Set up scoreboards
|
||||
for i = 1, #players, 1 do
|
||||
|
|
|
@ -56,11 +56,14 @@ end
|
|||
|
||||
|
||||
function menu_state:keypressed(key, unicode)
|
||||
if key == "c" then
|
||||
level_state.computer = true
|
||||
if key == "1" then
|
||||
level_state.mode = "solo"
|
||||
Gamestate.switch(level_state)
|
||||
elseif key == "c" then
|
||||
level_state.mode = "computer"
|
||||
Gamestate.switch(level_state)
|
||||
else
|
||||
level_state.computer = false
|
||||
level_state.computer = "2player"
|
||||
Gamestate.switch(level_state)
|
||||
end
|
||||
end
|
||||
|
|
38
nullplayer.lua
Normal file
38
nullplayer.lua
Normal file
|
@ -0,0 +1,38 @@
|
|||
Class = require 'hump/class'
|
||||
require 'settings'
|
||||
require 'entities/entity'
|
||||
|
||||
NullPlayer = Class{
|
||||
init = function(self, id, name)
|
||||
self.id = id
|
||||
self.name = name
|
||||
self.score = 0
|
||||
print('Null player ready for non-action!')
|
||||
end;
|
||||
|
||||
-- TODO: move to common base
|
||||
setPlane = function(self, plane)
|
||||
self.plane = Entity(0, 0, plane.level)
|
||||
self.plane.health = 0
|
||||
self.plane.motorPower = 0
|
||||
plane:delete()
|
||||
end;
|
||||
|
||||
-- TODO: move to common base
|
||||
getPlane = function(self)
|
||||
return self.plane
|
||||
end;
|
||||
|
||||
-- TODO: move to common base
|
||||
addScore = function(self, score)
|
||||
end;
|
||||
|
||||
update = function(self, dt)
|
||||
end;
|
||||
|
||||
press = function(self, key)
|
||||
end;
|
||||
|
||||
release = function(self, key)
|
||||
end;
|
||||
}
|
Loading…
Reference in a new issue