def initialize(self):
        self.score = 0
        self.marisa = Marisa(image=MARISA_PATH,
                             size=None,
                             update_ms=60,
                             pos=(150, 150),
                             velocity=(1, 0))
        self.apples = []
        self.mushrooms = []

        pygame.mixer.music.load(BGM_PATH)
        pygame.mixer.music.play(-1)

        while len(self.apples) < NUM_APPLE:
            collide = False
            new_apple = GameObject(image=APPLE_PATH,
                                   size=(30, 30),
                                   update_ms=1000,
                                   pos=get_rand_pos(self.window_sz,
                                                    (128, 128)),
                                   velocity=(0, 0))

            for apple in self.apples:
                if GameObject.collide(apple, new_apple):
                    collide = True
                    break

            if collide is False:
                self.apples.append(new_apple)
            else:
                del new_apple

        while len(self.mushrooms) < NUM_MUSHROOM:
            collide = False
            new_mushrooms = GameObject(image=MUSHROOM_PATH,
                                       size=(40, 40),
                                       update_ms=1000,
                                       pos=get_rand_pos(
                                           self.window_sz, (128, 128)),
                                       velocity=(0, 0))

            for mushroom in self.mushrooms:
                if GameObject.collide(mushroom, new_mushrooms):
                    collide = True
                    break
            if collide is False:
                self.mushrooms.append(new_mushrooms)
            else:
                del new_mushrooms

        self.last_time = int(pygame.time.get_ticks())
    def game(self):
        self.initialize()

        self.last_time = int(pygame.time.get_ticks())

        self.particles = []

        while True:
            for event in pygame.event.get():
                if event.type == QUIT or (event.type == KEYDOWN
                                          and event.key == K_ESCAPE):
                    self.terminate()

            keyEvents = self.get_key()
            elapsed_ms = self.ms_tick()

            # Collision
            for apple in self.apples:
                if GameObject.collide(self.marisa, apple):
                    self.score += 1
                    collide = True
                    while collide is True:
                        collide = False
                        apple.pos = get_rand_pos(self.window_sz, (30, 30))
                        for mushroom in self.mushrooms:
                            if GameObject.collide(apple, mushroom, r=2000):
                                collide = True
                    self.marisa.get_apple()

            for mushroom in self.mushrooms:
                mushroom.velocity = [
                    (self.marisa.pos[0] - mushroom.pos[0]) * .002,
                    (self.marisa.pos[1] - mushroom.pos[1]) * .002
                ]
                mushroom.location_update()
                if GameObject.collide(self.marisa, mushroom):
                    self.gameover()
                    return

            # Update
            self.marisa.keyEventHandle(keyEvents=keyEvents,
                                       elapsed_ms=elapsed_ms)
            self.marisa.sprite_update(keyEvents=keyEvents,
                                      elapsed_ms=elapsed_ms)
            self.marisa.location_update()
            # Display
            self.update_display()
            self.marisa.clear()
Beispiel #3
0
	def collide(self, frametime):
		check = objectCheckCollision(self)
		
		if check: characterHitObstacle(self, frametime)

		GameObject.collide(self, frametime)
Beispiel #4
0
	def collide(self, frametime):
		GameObject.collide(self, frametime)

		if objectCheckCollision(self):
			self.destroyInstance = True