コード例 #1
0
    def __init__(self, title=None):
        self.title = "New Game" if not title else title
        self._running = True
        self._display_surf = None
        self.size = self.width, self.height = 400, 640

        self.faixa = Object(10, self.height, (self.width / 2) - 5, 0)

        # Player object
        self.carro = Player(PLAYER_WIDTH, PLAYER_HEIGHT, PLAYER_WIDTH,
                            self.height - PLAYER_HEIGHT,
                            os.path.join("image", "carro.png"))
        self.carro.scale_image()

        # Enemy object
        self.enemy = Enemy(ENEMY_WIDTH, ENEMY_HEIGHT,
                           random.randint(0, self.width - ENEMY_WIDTH),
                           -ENEMY_HEIGHT, os.path.join("image", "inimigo.png"))
        self.enemy.scale_image()
        self.enemy.rotate_image(angle=180)

        # Key event
        self.car_key = None

        # Clock
        self.clock = pygame.time.Clock()
コード例 #2
0
ファイル: bomb.py プロジェクト: barteqx/Liftoff
	def update(self):
		if not self["collided"]:
			Object.update(self)
			self["counters"]["time"] -= 1
			if self["counters"]["time"] < 0: self.engine_off()
		else:
			if self["counters"]["frame"] == 0:
				self.kill()
			else:
			
				self["counters"]["frame"] -= 1
				self.rad = (60 - self["counters"]["frame"])*3
				pygame.draw.circle(self.world.img, (255,255,255), (int(self.x), int(self.y)), int(self.rad))
				for obj in self.world.objects:
					if hypot(obj.x - self.x, obj.y - self.y) < self.rad and obj["ident"] != self["ident"]:
						obj["additional_force"][0] += 200 - (obj.x - self.x)
						obj["additional_force"][1] += 200 - (obj.y - self.y)
						if not "damage" in self.config.keys():
							obj["health"] -= 200 - self.rad
						else:
							obj["health"] -= self["damage"]
コード例 #3
0
ファイル: ship.py プロジェクト: barteqx/Liftoff
 def __init__(self, world, config):
     Object.__init__(self, world, config)
     self.img = pygame.image.load(os.path.join("objects", "ship", "images", "ship.bmp"))
     self.img.set_colorkey(self.img.get_at((0, 0)))
     if not "bomb" in self.config.keys():
         self["counters"]["bomb"] = 0
コード例 #4
0
ファイル: bomb.py プロジェクト: barteqx/Liftoff
	def collision(self, obj):
		if self["counters"]["time"] <= 0:
			if not self["collided"]:
				Object.collision(self, obj)
				self.explode()
コード例 #5
0
ファイル: bomb.py プロジェクト: barteqx/Liftoff
	def __init__(self, world, config):
		Object.__init__(self, world, config)
		self["collided"] = False
		self["counters"]["frame"] = self.world.game.fps
		self.rad = self["counters"]["frame"] * 3
コード例 #6
0
class App:
    def __init__(self, title=None):
        self.title = "New Game" if not title else title
        self._running = True
        self._display_surf = None
        self.size = self.width, self.height = 400, 640

        self.faixa = Object(10, self.height, (self.width / 2) - 5, 0)

        # Player object
        self.carro = Player(PLAYER_WIDTH, PLAYER_HEIGHT, PLAYER_WIDTH,
                            self.height - PLAYER_HEIGHT,
                            os.path.join("image", "carro.png"))
        self.carro.scale_image()

        # Enemy object
        self.enemy = Enemy(ENEMY_WIDTH, ENEMY_HEIGHT,
                           random.randint(0, self.width - ENEMY_WIDTH),
                           -ENEMY_HEIGHT, os.path.join("image", "inimigo.png"))
        self.enemy.scale_image()
        self.enemy.rotate_image(angle=180)

        # Key event
        self.car_key = None

        # Clock
        self.clock = pygame.time.Clock()

    def on_init(self):
        pygame.init()
        self._display_surf = DisplaySurface(self.width, self.height)
        pygame.display.set_caption(self.title)
        self.car_key = KeyEvent(self._display_surf, self.carro)
        self._running = True

    def on_event(self, event):
        if event.type == pygame.QUIT:
            self._running = False

    def on_loop(self):
        pygame.display.update()

    def on_render(self):
        self._display_surf.get_display_surface().fill(cores["cinza"])
        self.faixa.draw(self._display_surf.get_display_surface(),
                        cores["branco"])
        self._display_surf.get_display_surface().blit(
            self.carro.get_image_surface(), self.carro.get_pos())
        self._display_surf.get_display_surface().blit(
            self.enemy.get_image_surface(), self.enemy.get_pos())

        if (self.enemy.pos_y >= self.height):
            self.enemy.pos_y = -self.enemy.height
            self.enemy.reset_position(range=self.width)
        else:
            self.enemy.pos_y += 10

        self.carro.collision(self.enemy)
        # 30 FPS
        self.clock.tick(30)

    def on_cleanup(self):
        pygame.quit()

    def on_execute(self):
        if (self.on_init() == False):
            self._running = False

        while (self._running):
            for event in pygame.event.get():
                self.on_event(event)

                # Key press button
                if event.type == pygame.KEYDOWN:

                    # Left click button
                    if event.key == pygame.K_LEFT:
                        self.car_key.key_left()

                    # Right click button
                    if event.key == pygame.K_RIGHT:
                        self.car_key.key_right()

            self.on_loop()
            self.on_render()
        self.on_cleanup()
コード例 #7
0
ファイル: laser.py プロジェクト: barteqx/Liftoff
	def collision(obj):
		Object.__init__(obj)

		self.kill()