Exemple #1
0
    def __init__(self, context):

        self._context = context

        context.update_list.append(self)
        self.index = len(self._context.bullet_list)
        context.bullet_list.append(self)

        self.controller = BulletMLController()
        self.controller.game_object = self

        self.wait = 0

        self.sprite = sprite.get_sprite(BULLET_BITMAP)
Exemple #2
0
	def __init__(self, context):
	
		self._context = context
		
		context.update_list.append(self)
		self.index = len(self._context.bullet_list)
		context.bullet_list.append(self)
		
		self.controller = BulletMLController()
		self.controller.game_object = self
		
		self.wait = 0

		self.sprite = sprite.get_sprite(BULLET_BITMAP)
Exemple #3
0
class BulletMLFoe(Foe):
    #FIXME: refactor this and SimpleBulletML
    def __init__(self, bulletml_behav):
        super(BulletMLFoe, self).__init__()
        self.controller = BulletMLController()
        self.controller.game_object = self
        self.controller.set_behavior(bulletml_behav)
        self.wait = 0

    def spawn(self, context):
        super(BulletMLFoe, self).spawn(context)
        #FIXME: the first player is always aimed, ahahah !!
        if context.player_list:
            self.aimed_player = context.player_list[0]
        else:
            self.aimed_player = None

    def update(self):
        if self.wait > 0:
            self.wait -= 1
        else:
            self.controller.run()

        return super(BulletMLFoe, self).update()
Exemple #4
0
class BulletMLFoe(Foe):
	#FIXME: refactor this and SimpleBulletML
	def __init__(self, bulletml_behav):
		super(BulletMLFoe, self).__init__()
		self.controller = BulletMLController()
		self.controller.game_object = self
		self.controller.set_behavior(bulletml_behav)
		self.wait = 0
	
	def spawn(self,context):
		super(BulletMLFoe, self).spawn(context)
		#FIXME: the first player is always aimed, ahahah !!
		if context.player_list:
			self.aimed_player = context.player_list[0]
		else:
			self.aimed_player = None

	def update(self):
		if self.wait > 0:
			self.wait -= 1
		else:
			self.controller.run()

		return super(BulletMLFoe, self).update()
Exemple #5
0
 def __init__(self, bulletml_behav):
     super(BulletMLFoe, self).__init__()
     self.controller = BulletMLController()
     self.controller.game_object = self
     self.controller.set_behavior(bulletml_behav)
     self.wait = 0
Exemple #6
0
	def __init__(self, bulletml_behav):
		super(BulletMLFoe, self).__init__()
		self.controller = BulletMLController()
		self.controller.game_object = self
		self.controller.set_behavior(bulletml_behav)
		self.wait = 0
Exemple #7
0
class SimpleBulletML(object):

	to_remove = False

	def __init__(self, context):
	
		self._context = context
		
		context.update_list.append(self)
		self.index = len(self._context.bullet_list)
		context.bullet_list.append(self)
		
		self.controller = BulletMLController()
		self.controller.game_object = self
		
		self.wait = 0

		self.sprite = sprite.get_sprite(BULLET_BITMAP)
	
	def getx(self):
		return self._context.bullet_array_ml[ARRAY_ML_X,self.index]
	x = property(getx)
	
	def gety(self):
		return self._context.bullet_array_ml[ARRAY_ML_Y,self.index]
	y = property(gety)

	def getz(self):
		return self._context.bullet_array_ml[ARRAY_ML_Z,self.index]
	z = property(getz)
	
	def getd(self):
		return self._context.bullet_array_ml[ARRAY_ML_DIRECTION][self.index]

	def setd(self,d):
		self._context.bullet_array_ml[ARRAY_ML_DIRECTION][self.index] = d
	direction = property(getd,setd)
	
	def gets(self):
		return self._context.bullet_array_ml[ARRAY_ML_SPEED][self.index]
	def sets(self,s):
		self._context.bullet_array_ml[ARRAY_ML_SPEED][self.index] = s	
	speed = property(gets,sets)


	def vanish(self):
		self.to_remove = True
		self._context.delete_bullet_ml(self.index)

	def fire_complex(self, controller, direction=None, speed=None):
		new_bullet = SimpleBulletML(self._context)
		new_bullet.controller = controller
		controller.set_game_object(new_bullet)
		new_bullet.aimed_player = self.aimed_player
		new_bullet.sprite = self.sprite

		if direction is None:
			direction = self.direction
		if speed is None:
			speed = self.speed
			
		self._context.create_bullet_ml(self.x, self.y, self.z+0.001, direction, speed, self.sprite.list)

	def fire(self, direction=None, speed=None):
		if direction is None:
			direction = self.direction
		if speed is None:
			speed = self.speed
		
		self._context.create_bullet(self.x, self.y, self.z+0.001, direction, speed, self.sprite.list)

	def update(self):
		if self.to_remove:
			return self
		
		if self.wait > 0:
			self.wait -= 1
		else:
			self.controller.run()

		if self.to_remove:
			return self

		if self.x < self._context.left_border  or self.x > self._context.right_border or \
		       self.y < self._context.down_border or self.y > self._context.up_border:
			self.vanish()

		return self
Exemple #8
0
class SimpleBulletML(object):

    to_remove = False

    def __init__(self, context):

        self._context = context

        context.update_list.append(self)
        self.index = len(self._context.bullet_list)
        context.bullet_list.append(self)

        self.controller = BulletMLController()
        self.controller.game_object = self

        self.wait = 0

        self.sprite = sprite.get_sprite(BULLET_BITMAP)

    def getx(self):
        return self._context.bullet_array_ml[ARRAY_ML_X, self.index]

    x = property(getx)

    def gety(self):
        return self._context.bullet_array_ml[ARRAY_ML_Y, self.index]

    y = property(gety)

    def getz(self):
        return self._context.bullet_array_ml[ARRAY_ML_Z, self.index]

    z = property(getz)

    def getd(self):
        return self._context.bullet_array_ml[ARRAY_ML_DIRECTION][self.index]

    def setd(self, d):
        self._context.bullet_array_ml[ARRAY_ML_DIRECTION][self.index] = d

    direction = property(getd, setd)

    def gets(self):
        return self._context.bullet_array_ml[ARRAY_ML_SPEED][self.index]

    def sets(self, s):
        self._context.bullet_array_ml[ARRAY_ML_SPEED][self.index] = s

    speed = property(gets, sets)

    def vanish(self):
        self.to_remove = True
        self._context.delete_bullet_ml(self.index)

    def fire_complex(self, controller, direction=None, speed=None):
        new_bullet = SimpleBulletML(self._context)
        new_bullet.controller = controller
        controller.set_game_object(new_bullet)
        new_bullet.aimed_player = self.aimed_player
        new_bullet.sprite = self.sprite

        if direction is None:
            direction = self.direction
        if speed is None:
            speed = self.speed

        self._context.create_bullet_ml(self.x, self.y, self.z + 0.001,
                                       direction, speed, self.sprite.list)

    def fire(self, direction=None, speed=None):
        if direction is None:
            direction = self.direction
        if speed is None:
            speed = self.speed

        self._context.create_bullet(self.x, self.y, self.z + 0.001, direction,
                                    speed, self.sprite.list)

    def update(self):
        if self.to_remove:
            return self

        if self.wait > 0:
            self.wait -= 1
        else:
            self.controller.run()

        if self.to_remove:
            return self

        if self.x < self._context.left_border  or self.x > self._context.right_border or \
               self.y < self._context.down_border or self.y > self._context.up_border:
            self.vanish()

        return self