Beispiel #1
0
    def handle_event(self, e):
        pair = (e.type, e.key)
        if pair in Player.KEY_MAP:
            if e.type == SDL_KEYDOWN:
                self.state = State.Move
            if e.type == SDL_KEYUP:
                self.state = State.Idle
            self.delta = gobj.point_add(self.delta, self.KEY_MAP[pair])
        elif pair == Player.KEYDOWN_SPACE:
            self.jump()
            self.state = State.Jump
        elif pair == Player.KEYDOWN_SHIFT:
            game_state.sound_wav(5)
            self.shieldon = True

        elif e.type == SDL_MOUSEBUTTONDOWN:
            if bullet.GET_COUNTER_ATTACK == True:
                self.state = State.Attack
                global target, time
                target = (e.x, get_canvas_height() - e.y - 1)
                self.fire_bullet(bullet.GET_BULLET_TYPE)
                bullet.GET_COUNTER_ATTACK = False
                time = 0
            #self.shield()
        elif pair == Player.KEYDOWN_SHIFTOFF:
            self.shieldon = False
        if platforms.POTALON and platforms.POTAL_TO_NEXT:
            if e.type == SDL_KEYDOWN:
                if e.key == SDLK_w:
                    game_state.updateMap()
                    platforms.POTALON = False
                    platforms.POTAL_TO_NEXT = False
Beispiel #2
0
 def fire_bullet(self, bullet_type):
     global p
     self.bullet_type = bullet_type
     global target
     x, y = target
     if self.pos_x > x:
         dir = 'w'
     else:
         dir = 'h'
     p = bullet.Player_bullet(bullet_type, dir)
     gfw.world.add(gfw.layer.p, p)
     game_state.sound_wav(1)
Beispiel #3
0
    def update(self):
        global x,y
        if self.type == 1:
            x,y = self.plant_bullet()
        elif self.type == 2:
            x,y = self.Tree_bullet()
        elif self.type ==3:
            x,y = self.Bomb_bullet()
        if x > get_canvas_width() or x< 0 or y > get_canvas_height()+300 or y < 0:
            self.remove()
        global en_layer

        for i in range(len(en_layer)):           #몬스터 충돌
            self.en = en_layer[i]
            if gobj.collides_box(self, self.en):
                enemy.Enemy.remove(self.en)
                game_state.updateScore()
                self.remove()
                if self.type == 3:
                    game_state.sound_wav(2)
                else:
                    game_state.sound_wav(3)
        if gobj.collides_box(self,self.back):
            self.remove()
            if self.type == 3:
                game_state.sound_wav(2)
Beispiel #4
0
    def update(self):
        global x, y

        if self.type == 1:
            x,y = self.plant_bullet()
        elif self.type == 2:
            x,y = self.Tree_bullet()
        elif self.type ==3:
            x,y = self.Bomb_bullet()

        if gobj.collides_box(self, self.target):        #플레이어 or 쉴드 충돌
            if player.Player.checkShiled(self.target):  #쉴드 충돌
                self.remove()
                global GET_BULLET_TYPE , GET_COUNTER_ATTACK
                GET_BULLET_TYPE = self.type
                GET_COUNTER_ATTACK = True
            else:                                       #플레이어 충돌
                dead = player.Player.decrease_life(self.target)
                if dead:
                    game_state.sound_wav(6)
                    game_state.endGame()
                self.coll_img()
                self.remove()
                if self.type == 3:
                    game_state.sound_wav(2)
        if gobj.collides_box(self,self.back):
            self.coll_img()
            self.remove()
            if self.type == 3:
                game_state.sound_wav(2)
        if x > get_canvas_width() or x< 0 or y > get_canvas_height()+300 or y < 0: #화면 밖 제거
            self.remove()
Beispiel #5
0
 def decrease_life(self):
     game_state.sound_wav(4)
     self.life -= 1
     return self.life <= 0