Exemple #1
0
 def __init__(self, gameDisplay, gameWidth, gameHeight, FPS, stateID):
     StateBase.__init__(self, gameDisplay, gameWidth, gameHeight, FPS,
                        stateID)
     self.initMap(gameDisplay)
     self.themeSound = MySound("res/sounds/gamePlayTheme2.ogg")
     self.enemy1Num = 2
     self.enemy2Num = 1
     self.enemy3Num = 1
     self.myClockRef = MyClock(FPS)
     self.setUpState(gameDisplay, gameWidth, gameHeight, FPS)
     self.cPlayerDead = 0
     self.myScoreRef = MyScore()
     self.myTextWriterRef = MyTextWriter(gameDisplay, gameWidth, gameHeight)
     self.scoreSummonBoss = 2000
Exemple #2
0
 def __init__(self, gameDisplay, gameWidth, gameHeight, FPS):
     self.gameDisplay = gameDisplay
     self.gameWidth = gameWidth
     self.gameHeight = gameHeight
     self.FPS = FPS
     self.HP = 3000
     self.speed = 30
     self.power = 10
     self.slashSound = MySound("res/sounds/slashSound.ogg")
     self.damageSound = MySound("res/sounds/damage1Sound.ogg")
     self.initSP()
     self.myClockRef = MyClock(FPS)
     self.initBeam(gameDisplay, gameWidth, gameHeight)
     self.score = 0
     self.myTextWriterRef = MyTextWriter(gameDisplay, gameWidth, gameHeight)
Exemple #3
0
 def __init__(self, gameDisplay, gameWidth, gameHeight, FPS):
     self.gameDisplay = gameDisplay
     self.gameWidth = gameWidth
     self.gameHeight = gameHeight
     self.FPS = FPS
     self.myClockRef = MyClock(FPS)
     self.boomSound = MySound("res/sounds/boomSound.ogg")
     self.damageSound = MySound("res/sounds/damage1Sound.ogg")
     self.x = self.gameWidth
     self.y = self.gameHeight / 2
     self.isAlive = False
     self.randomRebornTime = randint(4, 10)
     self.randomShootTime = randint(3, 6)
     self.power = 10
     self.randomBoundaryTop = self.gameHeight / 2 - randint(100, 300)
     self.randomBoundaryBot = self.gameHeight / 2 + randint(100, 300)
     self.moveUP = True
     self.moveDown = True
     self.isBoss = False
Exemple #4
0
	def __init__(self,gameDisplay,gameWidth,gameHeight,FPS,stateID):
		StateBase.__init__(self,gameDisplay, gameWidth, gameHeight,FPS,stateID)
		self.initMap(gameDisplay)
		self.themeSound = MySound("res/sounds/gamePlayTheme2.ogg")
		self.enemy1Num = 2
		self.enemy2Num = 1
		self.enemy3Num = 1
		self.myClockRef = MyClock(FPS)
		self.setUpState(gameDisplay,gameWidth,gameHeight,FPS)
		self.cPlayerDead = 0
		self.myScoreRef = MyScore()
		self.myTextWriterRef = MyTextWriter(gameDisplay, gameWidth, gameHeight)
		self.scoreSummonBoss = 2000
Exemple #5
0
	def __init__(self,gameDisplay,gameWidth,gameHeight,FPS):
		self.gameDisplay = gameDisplay
		self.gameWidth = gameWidth
		self.gameHeight = gameHeight
		self.FPS = FPS
		self.HP = 3000
		self.speed = 30
		self.power = 10
		self.slashSound = MySound("res/sounds/slashSound.ogg")
		self.damageSound = MySound("res/sounds/damage1Sound.ogg")
		self.initSP()
		self.myClockRef = MyClock(FPS)
		self.initBeam(gameDisplay, gameWidth, gameHeight)
		self.score = 0
		self.myTextWriterRef = MyTextWriter(gameDisplay,gameWidth,gameHeight)
Exemple #6
0
	def __init__(self,gameDisplay,gameWidth,gameHeight,FPS):
		self.gameDisplay = gameDisplay
		self.gameWidth = gameWidth
		self.gameHeight = gameHeight
		self.FPS = FPS
		self.myClockRef = MyClock(FPS)
		self.boomSound = MySound("res/sounds/boomSound.ogg")
		self.damageSound = MySound("res/sounds/damage1Sound.ogg")
		self.x = self.gameWidth
		self.y = self.gameHeight/2
		self.isAlive = False
		self.randomRebornTime = randint(4,10)
		self.randomShootTime = randint(3,6)
		self.power = 10
		self.randomBoundaryTop = self.gameHeight/2 - randint(100,300)
		self.randomBoundaryBot = self.gameHeight/2 + randint(100,300)
		self.moveUP = True
		self.moveDown = True
		self.isBoss = False
Exemple #7
0
class Enemy:
    def __init__(self, gameDisplay, gameWidth, gameHeight, FPS):
        self.gameDisplay = gameDisplay
        self.gameWidth = gameWidth
        self.gameHeight = gameHeight
        self.FPS = FPS
        self.myClockRef = MyClock(FPS)
        self.boomSound = MySound("res/sounds/boomSound.ogg")
        self.damageSound = MySound("res/sounds/damage1Sound.ogg")
        self.x = self.gameWidth
        self.y = self.gameHeight / 2
        self.isAlive = False
        self.randomRebornTime = randint(4, 10)
        self.randomShootTime = randint(3, 6)
        self.power = 10
        self.randomBoundaryTop = self.gameHeight / 2 - randint(100, 300)
        self.randomBoundaryBot = self.gameHeight / 2 + randint(100, 300)
        self.moveUP = True
        self.moveDown = True
        self.isBoss = False

    def render(self):
        self.SP.loop(self.x, self.y, -1)
        self.beam.renderEnemyBeam()

    def update(self):
        self.myClockRef.update()
        if not self.isAlive and self.myClockRef.isSec(self.randomRebornTime):
            self.setPos(self.gameWidth, randint(1, self.gameHeight - 225))
        if self.isAlive:
            self.enemyMove()
            self.enemyShoot()

        if self.getHP() < 0:
            self.isAlive = False
            self.resetPos()

        self.beam.updateEnemyBeam()

    def enemyMove(self):
        if self.x > self.gameWidth / 2 + 175:
            self.x -= self.speed
        else:
            if self.moveUP:
                self.y -= self.speed
                if self.y < self.randomBoundaryTop or self.y < 0:
                    self.moveUP = False
                    self.moveDown = True
            elif self.moveDown:
                self.y += self.speed
                if self.y > self.randomBoundaryBot or self.y > self.gameHeight - 225:
                    self.moveDown = False
                    self.moveUP = True

    def enemyShoot(self):
        if self.myClockRef.isSec(self.randomShootTime):
            self.beam.setPos(self.x - 100, self.y + 100)

    def getHP(self):
        return self.HP

    def HPdamage(self, damage):
        #self.damageSound.play()
        self.HP -= damage

    def setPos(self, x, y):
        self.isAlive = True
        self.x = x
        self.y = y

    def resetPos(self):
        self.boomSound.play()
        self.speed += 0.5
        self.x = self.gameWidth
        self.y = -500
        self.HP = self.maxHP
        self.randomRebornTime = randint(1, 10)
        self.randomShootime = randint(2, 10)
        self.randomBoundaryTop = self.gameHeight / 2 - randint(100, 300)
        self.randomBoundaryBot = self.gameHeight / 2 + randint(100, 300)

    def initSP(self, path, total, width, height):
        self.SP = MySprite(self.gameDisplay, path, total, width, height)
Exemple #8
0
class State_GamePlay(StateBase):
    def __init__(self, gameDisplay, gameWidth, gameHeight, FPS, stateID):
        StateBase.__init__(self, gameDisplay, gameWidth, gameHeight, FPS,
                           stateID)
        self.initMap(gameDisplay)
        self.themeSound = MySound("res/sounds/gamePlayTheme2.ogg")
        self.enemy1Num = 2
        self.enemy2Num = 1
        self.enemy3Num = 1
        self.myClockRef = MyClock(FPS)
        self.setUpState(gameDisplay, gameWidth, gameHeight, FPS)
        self.cPlayerDead = 0
        self.myScoreRef = MyScore()
        self.myTextWriterRef = MyTextWriter(gameDisplay, gameWidth, gameHeight)
        self.scoreSummonBoss = 2000

    def renderState(self):
        self.renderMap()
        self.renderEnemy()
        self.renderPlayer()

    def updateState(self):
        self.myClockRef.update()
        self.playThemeSound(self.themeSound)
        self.updatePlayer()
        if self.summonEnemy or self.myClockRef.isSec(5):
            self.summonEnemy = True
            self.updateEnemy()
            self.checkCollide()

        for player in self.playerList:
            if player.score > self.scoreSummonBoss:
                self.summonBoss()

        self.updateScore()
        self.checkGameOver(self.gameDisplay, self.gameWidth, self.gameHeight,
                           self.FPS)

    def summonBoss(self):
        for enemy in self.enemyList:
            enemy.isBoss = False

    def checkGameOver(self, gameDisplay, gameWidth, gameHeight, FPS):
        cPlayerDead = 0
        for player in self.playerList:
            if player.HP <= 0:
                cPlayerDead += 1
                if cPlayerDead == len(self.playerList):
                    self.setUpState(gameDisplay, gameWidth, gameHeight, FPS)
                    self.themeSound.stop()
                    self.setCurrentStateID(self.nextStateId)

    def initSP(self, gameDisplay):
        pass

    def renderMapLayer(self, mapLayerList, mapLayerPosXList, mapLayerPosYList,
                       speed):
        mapLayerList[0].renderImg(mapLayerPosXList[0], mapLayerPosYList[0])
        mapLayerList[1].renderImg(mapLayerPosXList[1], mapLayerPosYList[1])

        for i in range(len(mapLayerPosXList)):
            mapLayerPosXList[i] -= speed
            if mapLayerPosXList[i] < -2 * self.gameWidth:
                mapLayerPosXList[i] = 2 * self.gameWidth - speed

    def initMap(self, gameDisplay):
        self.fadeOutBG = MySprite(gameDisplay, "res/images/fadeOut.png")
        self.initMap1Layer1(gameDisplay)
        self.initMap1Layer2(gameDisplay)

    def initMap1Layer1(self, gameDisplay):
        self.map1Layer1 = MySprite(gameDisplay, "res/images/map1Layer1.png")
        self.map1Layer1List = [
            self.map1Layer1, self.map1Layer1, self.map1Layer1
        ]
        self.map1Layer1PosXList = [0, 2 * self.gameWidth]
        self.map1Layer1PosYList = [0, 0]

    def initMap1Layer2(self, gameDisplay):
        self.map1Layer2 = MySprite(gameDisplay, "res/images/map1Layer2.png")
        self.map1Layer2List = [
            self.map1Layer2, self.map1Layer2, self.map1Layer2
        ]
        self.map1Layer2PosXList = [0, 2 * self.gameWidth]
        self.map1Layer2PosYList = [0, 0]

    def renderMap(self):
        self.renderMapLayer(self.map1Layer2List, self.map1Layer2PosXList,
                            self.map1Layer2PosYList, 1)
        self.renderMapLayer(self.map1Layer1List, self.map1Layer1PosXList,
                            self.map1Layer1PosYList, 2)
        self.renderFadeIn()

    def renderFadeIn(self):
        self.fadeOutBG.setFadeOutImg(10)
        self.fadeOutBG.renderImgConvert(0, 0)

    def initEnemy(self, gameDisplay, gameWidth, gameHeight, FPS):
        self.enemyList = []
        self.enemyBeamList = []
        for i in range(self.enemy1Num):
            enemy1Ref = Enemy1(gameDisplay, gameWidth, gameHeight, FPS)
            self.enemyList.append(enemy1Ref)
            self.enemyBeamList.append(enemy1Ref.beam)

        for i in range(self.enemy2Num):
            enemy2Ref = Enemy2(gameDisplay, gameWidth, gameHeight, FPS)
            self.enemyList.append(enemy2Ref)
            self.enemyBeamList.append(enemy2Ref.beam)

        for i in range(self.enemy3Num):
            enemy3Ref = Enemy3(gameDisplay, gameWidth, gameHeight, FPS)
            self.enemyList.append(enemy3Ref)
            self.enemyBeamList.append(enemy3Ref.beam)

        enemyBoss1Ref = EnemyBoss1(gameDisplay, gameWidth, gameHeight, FPS)
        self.enemyList.append(enemyBoss1Ref)
        self.enemyBeamList.append(enemyBoss1Ref.beam)

        enemyBoss2Ref = EnemyBoss2(gameDisplay, gameWidth, gameHeight, FPS)
        self.enemyList.append(enemyBoss2Ref)
        self.enemyBeamList.append(enemyBoss2Ref.beam)

        enemyBoss3Ref = EnemyBoss3(gameDisplay, gameWidth, gameHeight, FPS)
        self.enemyList.append(enemyBoss3Ref)
        self.enemyBeamList.append(enemyBoss3Ref.beam)

    def renderEnemy(self):
        for enemy in self.enemyList:
            enemy.render()

    def updateEnemy(self):
        for enemy in self.enemyList:
            if not enemy.isBoss:
                enemy.update()

    def checkCollidePlayerAndEnemy(self):
        for player in self.playerList:
            for sp in player.SPList:
                for enemy in self.enemyList:
                    if sp.isCollide(enemy.SP):
                        if player.currentMotion == 5:
                            enemy.HPdamage(player.power)
                            if enemy.HP < 0:
                                player.score += enemy.score
                        else:
                            if player.currentMotion != 6:
                                player.HPdamage(enemy.power)

    def checkCollidePlayerAndEnemyBeam(self):
        for player in self.playerList:
            for sp in player.SPList:
                for beam in self.enemyBeamList:
                    if sp.isCollide(beam.enemyBeamSP):
                        if player.currentMotion != 6:
                            player.HPdamage(beam.power)
                        beam.resetPos()

    def checkCollidePlayerBeamAndEnemy(self):
        for player in self.playerList:
            for beam in player.beamList:
                for enemy in self.enemyList:
                    if beam.beamSP.isCollide(enemy.SP):
                        enemy.HPdamage(beam.power)
                        beam.resetPos()
                        if enemy.HP < 0:
                            player.score += enemy.score

    def checkCollide(self):
        self.checkCollidePlayerAndEnemy()
        self.checkCollidePlayerAndEnemyBeam()
        self.checkCollidePlayerBeamAndEnemy()

    def renderPlayer(self):
        for player in self.playerList:
            player.render()

    def updatePlayer(self):
        for player in self.playerList:
            player.update()

    def initPlayer(self):
        pass

    def setUpState(self, gameDisplay, gameWidth, gameHeight, FPS):
        self.initPlayer(gameDisplay, gameWidth, gameHeight, FPS)
        self.initEnemy(gameDisplay, gameWidth, gameHeight, FPS)
        self.fadeOutBG.resetCountAndDelay()
        self.summonEnemy = False

    def updateScore(self):
        pass
Exemple #9
0
class State_GamePlay(StateBase):


	def __init__(self,gameDisplay,gameWidth,gameHeight,FPS,stateID):
		StateBase.__init__(self,gameDisplay, gameWidth, gameHeight,FPS,stateID)
		self.initMap(gameDisplay)
		self.themeSound = MySound("res/sounds/gamePlayTheme2.ogg")
		self.enemy1Num = 2
		self.enemy2Num = 1
		self.enemy3Num = 1
		self.myClockRef = MyClock(FPS)
		self.setUpState(gameDisplay,gameWidth,gameHeight,FPS)
		self.cPlayerDead = 0
		self.myScoreRef = MyScore()
		self.myTextWriterRef = MyTextWriter(gameDisplay, gameWidth, gameHeight)
		self.scoreSummonBoss = 2000

	def renderState(self):
		self.renderMap()
		self.renderEnemy()
		self.renderPlayer()

	def updateState(self):
		self.myClockRef.update()
		self.playThemeSound(self.themeSound)
		self.updatePlayer()
		if self.summonEnemy or self.myClockRef.isSec(5):
			self.summonEnemy = True
			self.updateEnemy()
			self.checkCollide()

		for player in self.playerList:
			if player.score > self.scoreSummonBoss:
				self.summonBoss()


		self.updateScore()
		self.checkGameOver(self.gameDisplay, self.gameWidth,self.gameHeight,self.FPS)
	def summonBoss(self):
		for enemy in self.enemyList:
			enemy.isBoss = False

	def checkGameOver(self,gameDisplay, gameWidth, gameHeight, FPS):
		cPlayerDead = 0
		for player in self.playerList:
			if player.HP <= 0 :
				cPlayerDead += 1
				if cPlayerDead == len(self.playerList):
					self.setUpState(gameDisplay, gameWidth, gameHeight, FPS)
					self.themeSound.stop()
					self.setCurrentStateID(self.nextStateId)

	def initSP(self,gameDisplay):
		pass

	def renderMapLayer(self,mapLayerList,mapLayerPosXList,mapLayerPosYList,speed):
		mapLayerList[0].renderImg(mapLayerPosXList[0],mapLayerPosYList[0])
		mapLayerList[1].renderImg(mapLayerPosXList[1],mapLayerPosYList[1])
		
		for i in range(len(mapLayerPosXList)):
			mapLayerPosXList[i] -= speed
			if mapLayerPosXList[i] < -2*self.gameWidth:
				mapLayerPosXList[i] = 2*self.gameWidth-speed

	def initMap(self,gameDisplay):
		self.fadeOutBG = MySprite(gameDisplay,"res/images/fadeOut.png")
		self.initMap1Layer1(gameDisplay)
		self.initMap1Layer2(gameDisplay)

	def initMap1Layer1(self,gameDisplay):
		self.map1Layer1 = MySprite(gameDisplay,"res/images/map1Layer1.png")
		self.map1Layer1List = [self.map1Layer1,self.map1Layer1,self.map1Layer1]
		self.map1Layer1PosXList = [0,2*self.gameWidth]
		self.map1Layer1PosYList = [0,0]

	def initMap1Layer2(self,gameDisplay):
		self.map1Layer2 = MySprite(gameDisplay,"res/images/map1Layer2.png")
		self.map1Layer2List = [self.map1Layer2,self.map1Layer2,self.map1Layer2]
		self.map1Layer2PosXList = [0,2*self.gameWidth]
		self.map1Layer2PosYList = [0,0]

	def renderMap(self):
		self.renderMapLayer(self.map1Layer2List,self.map1Layer2PosXList,self.map1Layer2PosYList,1)
		self.renderMapLayer(self.map1Layer1List,self.map1Layer1PosXList,self.map1Layer1PosYList,2)
		self.renderFadeIn()

	def renderFadeIn(self):
		self.fadeOutBG.setFadeOutImg(10)
		self.fadeOutBG.renderImgConvert(0, 0)

	def initEnemy(self,gameDisplay,gameWidth,gameHeight,FPS):
		self.enemyList = []
		self.enemyBeamList = []
		for i in range(self.enemy1Num):
			enemy1Ref = Enemy1(gameDisplay,gameWidth,gameHeight,FPS)
			self.enemyList.append(enemy1Ref)
			self.enemyBeamList.append(enemy1Ref.beam)

		for i in range(self.enemy2Num):
			enemy2Ref = Enemy2(gameDisplay,gameWidth,gameHeight,FPS)
			self.enemyList.append(enemy2Ref)
			self.enemyBeamList.append(enemy2Ref.beam)	

		for i in range(self.enemy3Num):
			enemy3Ref = Enemy3(gameDisplay,gameWidth,gameHeight,FPS)
			self.enemyList.append(enemy3Ref)
			self.enemyBeamList.append(enemy3Ref.beam)

		enemyBoss1Ref = EnemyBoss1(gameDisplay,gameWidth,gameHeight,FPS)
		self.enemyList.append(enemyBoss1Ref)
		self.enemyBeamList.append(enemyBoss1Ref.beam)

		enemyBoss2Ref = EnemyBoss2(gameDisplay,gameWidth,gameHeight,FPS)
		self.enemyList.append(enemyBoss2Ref)
		self.enemyBeamList.append(enemyBoss2Ref.beam)

		enemyBoss3Ref = EnemyBoss3(gameDisplay,gameWidth,gameHeight,FPS)
		self.enemyList.append(enemyBoss3Ref)
		self.enemyBeamList.append(enemyBoss3Ref.beam)

	def renderEnemy(self):
		for enemy in self.enemyList:
				enemy.render()

	def updateEnemy(self):
		for enemy in self.enemyList:
			if not enemy.isBoss:
				enemy.update()

	def checkCollidePlayerAndEnemy(self):
		for player in self.playerList:
			for sp in player.SPList:
				for enemy in self.enemyList:
					if sp.isCollide(enemy.SP):
						if player.currentMotion == 5:
							enemy.HPdamage(player.power)
							if enemy.HP < 0: 
								player.score += enemy.score
						else:
							if player.currentMotion != 6:
								player.HPdamage(enemy.power)

	def checkCollidePlayerAndEnemyBeam(self):
		for player in self.playerList:
			for sp in player.SPList:
				for beam in self.enemyBeamList:
					if sp.isCollide(beam.enemyBeamSP):
						if player.currentMotion != 6:
							player.HPdamage(beam.power)
						beam.resetPos()

	def checkCollidePlayerBeamAndEnemy(self):
		for player in self.playerList:
			for beam in player.beamList:
				for enemy in self.enemyList:
					if beam.beamSP.isCollide(enemy.SP):
						enemy.HPdamage(beam.power)
						beam.resetPos()
						if enemy.HP < 0: 
							player.score += enemy.score

	def checkCollide(self):
		self.checkCollidePlayerAndEnemy()
		self.checkCollidePlayerAndEnemyBeam()
		self.checkCollidePlayerBeamAndEnemy()		

	def renderPlayer(self):
		for player in self.playerList:
			player.render()

	def updatePlayer(self):
		for player in self.playerList:
			player.update()

	def initPlayer(self):
		pass

	def setUpState(self,gameDisplay,gameWidth,gameHeight,FPS):
		self.initPlayer(gameDisplay, gameWidth, gameHeight, FPS)
		self.initEnemy(gameDisplay,gameWidth,gameHeight,FPS)
		self.fadeOutBG.resetCountAndDelay()
		self.summonEnemy = False

	def updateScore(self):
		pass
Exemple #10
0
class Player:
	def __init__(self,gameDisplay,gameWidth,gameHeight,FPS):
		self.gameDisplay = gameDisplay
		self.gameWidth = gameWidth
		self.gameHeight = gameHeight
		self.FPS = FPS
		self.HP = 3000
		self.speed = 30
		self.power = 10
		self.slashSound = MySound("res/sounds/slashSound.ogg")
		self.damageSound = MySound("res/sounds/damage1Sound.ogg")
		self.initSP()
		self.myClockRef = MyClock(FPS)
		self.initBeam(gameDisplay, gameWidth, gameHeight)
		self.score = 0
		self.myTextWriterRef = MyTextWriter(gameDisplay,gameWidth,gameHeight)

	def render(self):
			self.renderSP()
			self.renderBeam()
			self.renderHP()
			self.renderScore()

	def renderHP(self):
		pass

	def update(self):
		self.myClockRef.update()
		if self.HP > 0:
			self.handle_basicMove()
			self.handle_AtkMove()
			self.handle_ChangeWeapon()
			self.resetMove()
		else:
			self.x = -3000
			self.y = -3000
			self.currentMotion = 0
		self.updateBeam()

	def getHP(self):
		return self.HP

	def HPdamage(self,damage):
		self.damageSound.play()
		self.HP -= damage

	def moveUp(self):
		if self.y > 0:
			self.y -= self.speed

	def moveDown(self):
		if self.y < self.gameHeight-175:
			self.y += self.speed

	def moveRight(self):
		if self.x < self.gameWidth-450:
			self.x += self.speed

	def moveLeft(self):
		if self.x > 0:
			self.x -= self.speed

	def initSP(self):
		pass

	def initBeam(self):
		pass

	def handle_basicMove(self):
		pass

	def handle_AtkMove(self):
		pass

	def handle_ChangeWeapon(self):
		pass

	def updateBeam(self):
		pass

	def resetMove(self):
		if self.currentMotion != 0:
			if self.myClockRef.isSec(1):
				self.currentMotion = 0

	def renderBeam(self):
		pass

	def renderSP(self):
		pass

	def renderScore(self):
		pass
Exemple #11
0
class Enemy:
	def __init__(self,gameDisplay,gameWidth,gameHeight,FPS):
		self.gameDisplay = gameDisplay
		self.gameWidth = gameWidth
		self.gameHeight = gameHeight
		self.FPS = FPS
		self.myClockRef = MyClock(FPS)
		self.boomSound = MySound("res/sounds/boomSound.ogg")
		self.damageSound = MySound("res/sounds/damage1Sound.ogg")
		self.x = self.gameWidth
		self.y = self.gameHeight/2
		self.isAlive = False
		self.randomRebornTime = randint(4,10)
		self.randomShootTime = randint(3,6)
		self.power = 10
		self.randomBoundaryTop = self.gameHeight/2 - randint(100,300)
		self.randomBoundaryBot = self.gameHeight/2 + randint(100,300)
		self.moveUP = True
		self.moveDown = True
		self.isBoss = False
 
	def render(self):
		self.SP.loop(self.x,self.y,-1)
		self.beam.renderEnemyBeam()

	def update(self):
		self.myClockRef.update()
		if not self.isAlive and self.myClockRef.isSec(self.randomRebornTime):
			self.setPos(self.gameWidth,randint(1,self.gameHeight-225))
		if self.isAlive:
			self.enemyMove()
			self.enemyShoot()

		if self.getHP() < 0 :
			self.isAlive = False
			self.resetPos()
			
		self.beam.updateEnemyBeam()

	def enemyMove(self):
			if self.x > self.gameWidth/2 + 175:
				self.x -= self.speed
			else:
				if self.moveUP:
					self.y -= self.speed
					if self.y < self.randomBoundaryTop or self.y < 0:
						self.moveUP = False
						self.moveDown = True
				elif self.moveDown:
					self.y += self.speed
					if self.y > self.randomBoundaryBot or self.y > self.gameHeight-225:
						self.moveDown = False
						self.moveUP = True
	
	def enemyShoot(self):
		if self.myClockRef.isSec(self.randomShootTime):
			self.beam.setPos(self.x-100,self.y + 100)


	def getHP(self):
		return self.HP

	def HPdamage(self,damage):
		#self.damageSound.play()
		self.HP -= damage

	def setPos(self,x,y):
		self.isAlive = True
		self.x = x 
		self.y = y

	def resetPos(self):
		self.boomSound.play()
		self.speed += 0.5
		self.x = self.gameWidth
		self.y = -500 
		self.HP = self.maxHP
		self.randomRebornTime = randint(1,10)
		self.randomShootime = randint(2,10)
		self.randomBoundaryTop = self.gameHeight/2 - randint(100,300)
		self.randomBoundaryBot = self.gameHeight/2 + randint(100,300)


	def initSP(self,path,total,width,height):
		self.SP = MySprite(self.gameDisplay,path,total,width,height)
Exemple #12
0
import pygame
from pygame.locals import *
from MyClock import MyClock
from State_Menu import State_Menu
from State_SelectMode import State_SelectMode
from State_GamePlaySingle import State_GamePlaySingle
from State_GamePlayCoop import State_GamePlayCoop
from State_GameOverSingle import State_GameOverSingle
from State_GameOverCoop import State_GameOverCoop

gameWidth = 1024
gameHeight = 640
FPS = 60
myClockRef = MyClock(FPS)
gameDisplay = pygame.display.set_mode((gameWidth, gameHeight))
pygame.display.set_caption('SDRush')


def main():

    pygame.init()
    gameOver = False
    menuStateRef = State_Menu(gameDisplay, gameWidth, gameHeight, FPS, 0)
    selectStateRef = State_SelectMode(gameDisplay, gameWidth, gameHeight, FPS,
                                      1)
    singleStateRef = State_GamePlaySingle(gameDisplay, gameWidth, gameHeight,
                                          FPS, 2)
    coopStateRef = State_GamePlayCoop(gameDisplay, gameWidth, gameHeight, FPS,
                                      3)
    gameOverSingleRef = State_GameOverSingle(gameDisplay, gameWidth,
                                             gameHeight, FPS, 4)
Exemple #13
0
class Player:
    def __init__(self, gameDisplay, gameWidth, gameHeight, FPS):
        self.gameDisplay = gameDisplay
        self.gameWidth = gameWidth
        self.gameHeight = gameHeight
        self.FPS = FPS
        self.HP = 3000
        self.speed = 30
        self.power = 10
        self.slashSound = MySound("res/sounds/slashSound.ogg")
        self.damageSound = MySound("res/sounds/damage1Sound.ogg")
        self.initSP()
        self.myClockRef = MyClock(FPS)
        self.initBeam(gameDisplay, gameWidth, gameHeight)
        self.score = 0
        self.myTextWriterRef = MyTextWriter(gameDisplay, gameWidth, gameHeight)

    def render(self):
        self.renderSP()
        self.renderBeam()
        self.renderHP()
        self.renderScore()

    def renderHP(self):
        pass

    def update(self):
        self.myClockRef.update()
        if self.HP > 0:
            self.handle_basicMove()
            self.handle_AtkMove()
            self.handle_ChangeWeapon()
            self.resetMove()
        else:
            self.x = -3000
            self.y = -3000
            self.currentMotion = 0
        self.updateBeam()

    def getHP(self):
        return self.HP

    def HPdamage(self, damage):
        self.damageSound.play()
        self.HP -= damage

    def moveUp(self):
        if self.y > 0:
            self.y -= self.speed

    def moveDown(self):
        if self.y < self.gameHeight - 175:
            self.y += self.speed

    def moveRight(self):
        if self.x < self.gameWidth - 450:
            self.x += self.speed

    def moveLeft(self):
        if self.x > 0:
            self.x -= self.speed

    def initSP(self):
        pass

    def initBeam(self):
        pass

    def handle_basicMove(self):
        pass

    def handle_AtkMove(self):
        pass

    def handle_ChangeWeapon(self):
        pass

    def updateBeam(self):
        pass

    def resetMove(self):
        if self.currentMotion != 0:
            if self.myClockRef.isSec(1):
                self.currentMotion = 0

    def renderBeam(self):
        pass

    def renderSP(self):
        pass

    def renderScore(self):
        pass