Ejemplo n.º 1
0
    def __init__(self, debug_mode=False):
        self.debug_mode = debug_mode

        # to calcurate frame per second
        self._time = time.time()
        self.fps = 30

        pyxel.init(width=250, height=200, caption="STG", scale=3, fps=30)
        pyxel.load("../asset.pyxres")

        self.player = Player(sx=100,
                             sy=150,
                             width=10,
                             height=10,
                             speed=2,
                             debug_mode=self.debug_mode)
        self.player.activate()
        self.enemies = []
        for i in range(20):
            e = Enemy(sx=100,
                      sy=0,
                      height=10,
                      width=10,
                      speed=0.5,
                      max_hp=10,
                      idx=i,
                      debug_mode=self.debug_mode)
            e.activate()
            self.enemies.append(e)

        self.particles = []

        self.back_ground = BackGround()
        pyxel.run(self.update, self.draw)
Ejemplo n.º 2
0
def enter():
    global isaac, background, is_key_pressed, is_attack_key_pressing, bullet_dir, gushers, is_bullet_create
    global BackGround_Width, BackGround_Height, invincibility_time, shot_term, bullets, door, indoor, monster_count
    global rocks
    game_world.objects = [[], []]
    BackGround_Width = 1280
    BackGround_Height = 960
    isaac = Isaac()
    monster_count = 10
    gushers = [Gusher() for i in range(monster_count)]
    background = BackGround()
    door = Door()
    door.x = door_position[1]
    indoor = InDoor()
    indoor.x = door_position[1]
    rocks = [Rock(900, 400), Rock(900, 600), Rock(400, 400), Rock(400, 600)]
    game_world.add_object(background, 0)
    game_world.add_objects(rocks, 0)
    game_world.add_object(indoor, 1)
    game_world.add_object(door, 1)
    game_world.add_object(isaac, 1)
    game_world.add_objects(gushers, 1)
    is_key_pressed = 0
    is_attack_key_pressing = 0
    bullet_dir = 0
    is_bullet_create = False
    invincibility_time = 0
    shot_term = 0
    bullets = []

    pass
def enter():
    global isaac, background, is_key_pressed, is_attack_key_pressing, bullet_dir, gushers, is_bullet_create
    global BackGround_Width, BackGround_Height, invincibility_time, shot_term, bullets, door, indoor, monster_count
    global flies, big_flies, enemy_bullets, is_enemy_bullet_create, needles, rocks

    game_world.objects = [[], []]
    BackGround_Width = 1280
    BackGround_Height = 960
    isaac = Isaac()
    isaac.x = 200
    isaac.y = BackGround_Height // 2
    isaac.body_x, isaac.body_y = isaac.x - 5, isaac.y - 50
    isaac.velocity_x = main_state.isaac.velocity_x
    isaac.velocity_y = main_state.isaac.velocity_y
    isaac.now_health = main_state.hp
    isaac.body_is_move = False
    monster_count = 12
    background = BackGround()
    needles = [
        Needle(400, 500),
        Needle(300, 700),
        Needle(600, 200),
        Needle(900, 700),
        Needle(750, 400)
    ]
    rocks = [Rock(850, 400), Rock(1000, 600), Rock(400, 300), Rock(600, 600)]
    door = Door()
    door.x = door_position[1]
    entrance_door = Door()
    entrance_door.x = door_position[0]
    indoor = InDoor()
    indoor.x = door_position[1]
    entrance_indoor = InDoor()
    entrance_indoor.x = door_position[0]
    flies = [Fly() for i in range(7)]
    big_flies = [BigFly() for i in range(5)]
    game_world.add_object(background, 0)
    game_world.add_objects(needles, 0)
    game_world.add_objects(rocks, 0)
    game_world.add_object(indoor, 1)
    game_world.add_object(door, 1)
    game_world.add_object(isaac, 1)
    game_world.add_object(entrance_door, 1)
    game_world.add_object(entrance_indoor, 1)
    game_world.add_objects(flies, 1)
    game_world.add_objects(big_flies, 1)
    is_key_pressed = 0
    is_attack_key_pressing = 0
    bullet_dir = 0
    is_bullet_create = False
    is_enemy_bullet_create = False
    invincibility_time = 100
    shot_term = 0

    bullets = []
    enemy_bullets = []
    pass
Ejemplo n.º 4
0
    def load(self, flag, generation_number):
        
        self.backGround_1 = BackGround(self.screen, 0, 0, 0, 600, False)
        self.backGround_2 = BackGround(self.screen, 0, 0, 300, 600, False)
        self.backGround_1_inverted = BackGround(self.screen, 0, 0, 0, 0, True)
        self.backGround_2_inverted = BackGround(self.screen, 0, 0, 300, 0, True)
        self.landScape = LandScape(self.screen, 0, 0, 0, 0)
        self.frame_alive = 0
        self.birds_pool = []
        self.bird_score = []
        self.models_load = []
        self.load_nn = [] 
        self.population_size = 20
        self.generation_number = generation_number
        if flag:
            for idx in range(0, self.population_size):
                bird = Bird(self.screen, 300, 400, 300, 400)
                self.birds_pool.append(bird)
        else:
            for i in range(0, self.population_size):
                m = NeuralNetwork()
                self.load_nn.append(m)
                self.load_nn[i].get_model().load_weights("models/model" + str(i+1)+ ".keras")        
                bird = Bird(self.screen, 300, 400, 300, 400, self.load_nn[i])
                self.birds_pool.append(bird)


        y1 = random.randint(450, 500)
        y2 = random.randint(0, 100)
        
        self.pipe = Pipe(self.screen, 0, 0, 1200, y1, False)
        self.pipe_inverted = Pipe(self.screen, 0, 0, 1200, y2, True)
        self.landScape.load()
        self.backGround_1.load()
        self.backGround_2.load()
        self.backGround_1_inverted.load()
        self.backGround_2_inverted.load()
        
        self.nn = []
        for bird in self.birds_pool:
            bird.load()
        self.pipe.load()
        self.pipe_inverted.load()
        
        self.game_objects = [self.backGround_1, 
                                self.backGround_2, 
                                self.pipe, 
                                self.pipe_inverted,
                                self.backGround_1_inverted,
                                self.backGround_2_inverted] + self.birds_pool
        
        self.collision_handler = Collision(self.game_objects)
Ejemplo n.º 5
0
def enter():
    global player, moetato, background, rank
    player = Player()
    moetato = MoeTato()
    background = BackGround()
    Game_World.add_object(background, 0)
    Game_World.add_object(player, 1)
    Game_World.add_object(moetato, 1)

    with open('rank_data.json', 'rt') as f:
        rank = json.load(f)
def enter():
    global isaac, background, is_key_pressed, is_attack_key_pressing, bullet_dir, gushers, is_bullet_create
    global BackGround_Width, BackGround_Height, invincibility_time, shot_term, bullets, door,  monster_count
    global  flies, big_flies, enemy_bullets, is_enemy_bullet_create, is_bullet_upgrade, is_black_bullet_create
    global duke,is_monster_create


    game_world.objects = [[],[]]
    BackGround_Width = 1280
    BackGround_Height = 960
    isaac = Isaac()
    isaac.x = 200
    isaac.y = BackGround_Height//2
    isaac.body_x, isaac.body_y = isaac.x - 5, isaac.y - 50
    isaac.now_health = main_state_4.hp
    isaac.body_is_move = False
    duke = Duke()
    monster_count = 0
    background = BackGround(1)
    entrance_door = Door()
    entrance_door.x = door_position[0]
    entrance_indoor = InDoor()
    entrance_indoor.x = door_position[0]

    game_world.add_object(background,0)
    game_world.add_object(isaac, 1)
    game_world.add_object(duke,1)
    game_world.add_object(entrance_door, 1)
    game_world.add_object(entrance_indoor, 1)
    is_key_pressed = 0
    is_attack_key_pressing = 0
    bullet_dir = 0
    is_bullet_create = False
    is_enemy_bullet_create = False
    is_bullet_upgrade = main_state_4.is_bullet_upgrade
    is_black_bullet_create = False
    is_monster_create = False
    invincibility_time = 100
    shot_term = 0
    flies = []
    big_flies = []
    bullets = []
    enemy_bullets = []
    pass
Ejemplo n.º 7
0
def enter():
    global chimmy, background, map_data, map_next_data, stage1, stage_next, position, monster, monster_team, chimmy_dead, dragon
    global main_bgm, clear, firewall, firewall_team, cheat
    Map.DownCnt = 0
    Monster.mon_num = 0
    FireWall.firewall_num = 0
    monster_team = []
    firewall_team = []
    chimmy_dead = False
    clear = False
    cheat = False

    background = BackGround()
    position = create_pos()
    map_data = create_map()
    stage1 = Map()
    chimmy = Chimmy()
    monster = Monster()
    firewall = FireWall()
    dragon = Dragon()

    main_bgm = load_music('resource/bgm/Go Go.mp3')
    main_bgm.set_volume(64)
    main_bgm.repeat_play()
Ejemplo n.º 8
0
class Scene(QGraphicsScene):
    def __init__(self, parent=None):
        QGraphicsScene.__init__(self, parent)

        # hold the set of keys we're pressing
        self.keys_pressed = set()

        # use a timer to get 60Hz refresh (hopefully)  1000 / 16 == 62.5
        self.timer = QBasicTimer()
        self.timer.start(FRAME_TIME_MS, self)

        # bg = QGraphicsRectItem()
        # bg.setRect(-1,-1,SCREEN_WIDTH+2,SCREEN_HEIGHT+2)
        # bg.setBrush(QBrush(Qt.black))

        self.screen = "InitialScreen"
        self.previousScreen = {"FoodScreen": "InitialScreen", "CustomizeScreen": "InitialScreen", "AllFood": "FoodScreen"}
        for categoryKey, value in WholeFood.wholeFoodDic.items():
            self.previousScreen[categoryKey] = "FoodScreen"
            for foodKey in value.keys():
                self.previousScreen[foodKey] = categoryKey
        self.foodImagePath = ""
        self.isAllFood = False
        self.isInitialized = False
        self.initUI = False
        self.customizeDic = {}
        self.url = ""
        # Enemies
        # self.enemies = [Enemy()]
        # self.enemies[0].setPos(SCREEN_WIDTH, 0)
        # self.addItem(self.enemies[0])
        # self.idx = [0]

        self.customize = CustomizeScreen(self)

        self.view = QGraphicsView(self)
        self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.setWindowTitle("Help_Choose")
        self.view.setWindowIcon(QIcon("C:/Users/dudtj/iCloudDrive/vscode_workspace/Python_workspace/Github/AD_Project/Youngseo/PNG/UI/AirPods.png"))
        # self.view.setWindowFlags(Qt.CustomizeWindowHint)
        self.view.show()
        self.view.setFixedSize(SCREEN_WIDTH,SCREEN_HEIGHT)
        self.setSceneRect(0,0,SCREEN_WIDTH,SCREEN_HEIGHT)

        self.ask = AskClose(self)


    def keyPressEvent(self, event):
        self.keys_pressed.add(event.key())
        if event.key() == Qt.Key_Escape:
            self.ask.show()
            

    def keyReleaseEvent(self, event):
        self.keys_pressed.remove(event.key())


    def timerEvent(self, event):
        self.game_update()
        self.update()


    def game_update(self):
        if self.screen == "InitialScreen":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("Black")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                # Select
                self.foodSelect = Select("PNG/Initial_Screen/fork.png", "FoodScreen", self)
                self.foodSelect.setPos(100, 100)
                self.addItem(self.foodSelect)

                self.customizeSelect = Select("PNG/Initial_Screen/customize.png", "CustomizeScreen", self)
                self.customizeSelect.setPos(700 - self.customizeSelect.pixmap().width(), 100)
                self.addItem(self.customizeSelect)

                self.isInitialized = True
            
            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.foodSelect.game_update(self.bullets):
                    return

                elif self.customizeSelect.game_update(self.bullets):
                    return
        
        elif self.screen == "FoodScreen":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround('Blue')
                self.bg.setPos(0, 0)
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                # FoodCategory
                interval = 33.333333333
                imageWidth = 100
                self.koreanFood = FoodCategory("PNG/Category/KoreanFood.png", "KoreanFood", self)
                self.koreanFood.setPos(100+interval, interval)
                self.addItem(self.koreanFood)

                self.chineseFood = FoodCategory("PNG/Category/ChineseFood.png", "ChineseFood", self)
                self.chineseFood.setPos(100+interval*2 + imageWidth, interval)
                self.addItem(self.chineseFood)

                self.japaneseFood = FoodCategory("PNG/Category/JapaneseFood.png", "JapaneseFood", self)
                self.japaneseFood.setPos(100+interval*3 + imageWidth*2, interval)
                self.addItem(self.japaneseFood)

                self.westernFood = FoodCategory("PNG/Category/WesternFood.png", "WesternFood", self)
                self.westernFood.setPos(100+interval*4 + imageWidth*3, interval)
                self.addItem(self.westernFood)

                self.allFood = FoodCategory("PNG/Category/AllFood.png", "AllFood", self)
                self.allFood.setPos(100+interval*5 + imageWidth*4, interval)
                self.addItem(self.allFood)

                interval = None
                imageWidth = None

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.koreanFood.game_update(self.bullets):
                    return

                elif self.chineseFood.game_update(self.bullets):
                    return

                elif self.japaneseFood.game_update(self.bullets):
                    return

                elif self.westernFood.game_update(self.bullets):
                    return
                
                elif self.allFood.game_update(self.bullets):
                    return

                elif self.backButton.game_update(self.bullets):
                    return
        
        elif self.screen == "KoreanFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None

                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break


        elif self.screen == "ChineseFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None
                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break
                
                

        elif self.screen == "JapaneseFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None
                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break
                
                

        elif self.screen == "WesternFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None

                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break

        elif self.screen == "AllFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for each in WholeFood.wholeFoodDic.values():    
                    for key, value in each.items():
                        food = FoodChoose(value['image'], key, value['URL'], self)
                        self.foodList.append(food)
                        food = None
                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)
                self.isAllFood     = True
                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break

        elif self.screen in WholeFood.wholeFoodList:
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("Purple")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                font = QFont()
                font.setPixelSize(25)
                font.setBold(True)
                for value in WholeFood.wholeFoodDic.values():
                    if self.screen in value:
                        self.addText(value[self.screen]['foodInfo'], font).setPos(300, 105)
                        break
                
                self.foodImage = FoodInfo(self.foodImagePath, self)
                self.foodImage.setPos(100, 100)
                self.addItem(self.foodImage)

                self.homeButton = Home(self)
                self.homeButton.setPos(200-self.homeButton.pixmap().width()//2, 300)
                self.addItem(self.homeButton)

                self.retryButton = Retry(self)
                self.retryButton.setPos(400-self.retryButton.pixmap().width()//2, 300)
                self.addItem(self.retryButton)
                
                self.openUrlButton = OpenURL(self)
                self.openUrlButton.setPos(600-self.openUrlButton.pixmap().width()//2, 300)
                self.addItem(self.openUrlButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.homeButton.game_update(self.bullets):
                    return

                elif self.retryButton.game_update(self.bullets):
                    return

                elif self.openUrlButton.game_update(self.bullets):
                    return
                

        elif self.screen == "CustomizeScreen":
            if not self.isInitialized:
                if not self.initUI:
                    bg = BackGround("DarkBlue")
                    self.addItem(bg)

                    font = QFont()
                    font.setPixelSize(60)
                    font.setBold(True)
                    self.addText("Selecting...", font).setPos(250, 250)
                    self.customize.cancel = False
                    self.customize.initUI()
                    self.initUI = True
                else:
                    if len(self.customizeDic) != 0:
                        self.clear()
                        self.bg = BackGround("DarkBlue")
                        self.addItem(self.bg)

                        # Player
                        self.player = Player()
                        self.player.setPos((SCREEN_WIDTH - self.player.pixmap().width()) / 2, 500)
                        self.addItem(self.player)

                        # Bullets
                        self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0], PLAYER_BULLET_Y),
                                        Bullet(PLAYER_BULLET_X_OFFSETS[1], PLAYER_BULLET_Y - 30),
                                        Bullet(PLAYER_BULLET_X_OFFSETS[2], PLAYER_BULLET_Y)]
                        for b in self.bullets:
                            b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                            self.addItem(b)

                        self.selectList = []
                        for value in self.customizeDic.values():
                            select = Customize(value['image'], value['text'], self)
                            self.selectList.append(select)
                            select = None

                        length = 0
                        for select in self.selectList:
                            x, y = Customize.selectLocation[length][0], Customize.selectLocation[length][1]
                            select.setPos(x, y)
                            select.pos = length
                            self.addItem(select)
                            length += len(Customize.selectLocation) // len(self.selectList)


                        # BackButton
                        self.backButton = BackButton(self)
                        self.backButton.setPos(10, 20)
                        self.addItem(self.backButton)

                        self.isInitialized = True


                    else:
                        if self.customize.cancel:
                            self.screen = 'InitialScreen'
                            self.isInitialized = False
                            self.clear()


            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.selectList)):
                    if self.selectList[i].game_update(self.bullets):
                        return

        elif self.screen in self.customize.starImgList:
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("Purple")
                self.addItem(self.bg)

                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH - self.player.pixmap().width()) / 2, 500)
                self.addItem(self.player)

                # Bulletsdc
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0], PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1], PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2], PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)

                self.selectImage = CustomizeResult(self.screen, self)
                self.selectImage.setPos(100, 100)
                self.addItem(self.selectImage)

                font = QFont()
                # palette = QPalette()
                font.setPixelSize(60)
                font.setBold(True)
                # palette.setColor(QPalette.Text, Qt.white)
                # font.setPalette(palette)
                self.addText(self.selectText, font).setPos(350,130)
                #self.font.setStyleSheet("color:rgb(255,255,255")


                self.homeButton = Home(self)
                self.homeButton.setPos(300 - self.homeButton.pixmap().width() // 2, 300)
                self.addItem(self.homeButton)

                self.retryButton = CustomizeRetry(self)
                self.retryButton.setPos(500 - self.retryButton.pixmap().width() // 2, 300)
                self.addItem(self.retryButton)


                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)
 
                if self.homeButton.game_update(self.bullets):
                    return

                elif self.retryButton.game_update(self.bullets):
                    return
Ejemplo n.º 9
0
    def game_update(self):
        if self.screen == "InitialScreen":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("Black")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                # Select
                self.foodSelect = Select("PNG/Initial_Screen/fork.png", "FoodScreen", self)
                self.foodSelect.setPos(100, 100)
                self.addItem(self.foodSelect)

                self.customizeSelect = Select("PNG/Initial_Screen/customize.png", "CustomizeScreen", self)
                self.customizeSelect.setPos(700 - self.customizeSelect.pixmap().width(), 100)
                self.addItem(self.customizeSelect)

                self.isInitialized = True
            
            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.foodSelect.game_update(self.bullets):
                    return

                elif self.customizeSelect.game_update(self.bullets):
                    return
        
        elif self.screen == "FoodScreen":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround('Blue')
                self.bg.setPos(0, 0)
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                # FoodCategory
                interval = 33.333333333
                imageWidth = 100
                self.koreanFood = FoodCategory("PNG/Category/KoreanFood.png", "KoreanFood", self)
                self.koreanFood.setPos(100+interval, interval)
                self.addItem(self.koreanFood)

                self.chineseFood = FoodCategory("PNG/Category/ChineseFood.png", "ChineseFood", self)
                self.chineseFood.setPos(100+interval*2 + imageWidth, interval)
                self.addItem(self.chineseFood)

                self.japaneseFood = FoodCategory("PNG/Category/JapaneseFood.png", "JapaneseFood", self)
                self.japaneseFood.setPos(100+interval*3 + imageWidth*2, interval)
                self.addItem(self.japaneseFood)

                self.westernFood = FoodCategory("PNG/Category/WesternFood.png", "WesternFood", self)
                self.westernFood.setPos(100+interval*4 + imageWidth*3, interval)
                self.addItem(self.westernFood)

                self.allFood = FoodCategory("PNG/Category/AllFood.png", "AllFood", self)
                self.allFood.setPos(100+interval*5 + imageWidth*4, interval)
                self.addItem(self.allFood)

                interval = None
                imageWidth = None

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.koreanFood.game_update(self.bullets):
                    return

                elif self.chineseFood.game_update(self.bullets):
                    return

                elif self.japaneseFood.game_update(self.bullets):
                    return

                elif self.westernFood.game_update(self.bullets):
                    return
                
                elif self.allFood.game_update(self.bullets):
                    return

                elif self.backButton.game_update(self.bullets):
                    return
        
        elif self.screen == "KoreanFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None

                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break


        elif self.screen == "ChineseFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None
                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break
                
                

        elif self.screen == "JapaneseFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None
                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break
                
                

        elif self.screen == "WesternFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for key, value in WholeFood.wholeFoodDic[self.screen].items():
                    food = FoodChoose(value['image'], key, value['URL'], self)
                    self.foodList.append(food)
                    food = None

                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break

        elif self.screen == "AllFood":
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("DarkBlue")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                self.foodList = []
                # wholeFoodDic = {'koreanFoodDic': koreanFoodDic}
                # koreanFoodDic = {'bibimbab': bibimbab}
                # bibimbab = {'image': , :, :}
                # each == bibimbab
                for each in WholeFood.wholeFoodDic.values():    
                    for key, value in each.items():
                        food = FoodChoose(value['image'], key, value['URL'], self)
                        self.foodList.append(food)
                        food = None
                
                length = 0
                for food in self.foodList:
                    x, y = FoodChoose.foodLocation[length][0], FoodChoose.foodLocation[length][1]
                    food.setPos(x, y)
                    food.pos = length
                    self.addItem(food)
                    length += len(FoodChoose.foodLocation) // len(self.foodList)

                # BackButton
                self.backButton = BackButton(self)
                self.backButton.setPos(10, 20)
                self.addItem(self.backButton)
                self.isAllFood     = True
                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.foodList)):
                    if self.foodList[i].game_update(self.bullets):
                        break

        elif self.screen in WholeFood.wholeFoodList:
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("Purple")
                self.addItem(self.bg)


                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH-self.player.pixmap().width())/2, 500)
                self.addItem(self.player)


                # Bullets
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0],PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1],PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2],PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)
                
                font = QFont()
                font.setPixelSize(25)
                font.setBold(True)
                for value in WholeFood.wholeFoodDic.values():
                    if self.screen in value:
                        self.addText(value[self.screen]['foodInfo'], font).setPos(300, 105)
                        break
                
                self.foodImage = FoodInfo(self.foodImagePath, self)
                self.foodImage.setPos(100, 100)
                self.addItem(self.foodImage)

                self.homeButton = Home(self)
                self.homeButton.setPos(200-self.homeButton.pixmap().width()//2, 300)
                self.addItem(self.homeButton)

                self.retryButton = Retry(self)
                self.retryButton.setPos(400-self.retryButton.pixmap().width()//2, 300)
                self.addItem(self.retryButton)
                
                self.openUrlButton = OpenURL(self)
                self.openUrlButton.setPos(600-self.openUrlButton.pixmap().width()//2, 300)
                self.addItem(self.openUrlButton)

                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.homeButton.game_update(self.bullets):
                    return

                elif self.retryButton.game_update(self.bullets):
                    return

                elif self.openUrlButton.game_update(self.bullets):
                    return
                

        elif self.screen == "CustomizeScreen":
            if not self.isInitialized:
                if not self.initUI:
                    bg = BackGround("DarkBlue")
                    self.addItem(bg)

                    font = QFont()
                    font.setPixelSize(60)
                    font.setBold(True)
                    self.addText("Selecting...", font).setPos(250, 250)
                    self.customize.cancel = False
                    self.customize.initUI()
                    self.initUI = True
                else:
                    if len(self.customizeDic) != 0:
                        self.clear()
                        self.bg = BackGround("DarkBlue")
                        self.addItem(self.bg)

                        # Player
                        self.player = Player()
                        self.player.setPos((SCREEN_WIDTH - self.player.pixmap().width()) / 2, 500)
                        self.addItem(self.player)

                        # Bullets
                        self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0], PLAYER_BULLET_Y),
                                        Bullet(PLAYER_BULLET_X_OFFSETS[1], PLAYER_BULLET_Y - 30),
                                        Bullet(PLAYER_BULLET_X_OFFSETS[2], PLAYER_BULLET_Y)]
                        for b in self.bullets:
                            b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                            self.addItem(b)

                        self.selectList = []
                        for value in self.customizeDic.values():
                            select = Customize(value['image'], value['text'], self)
                            self.selectList.append(select)
                            select = None

                        length = 0
                        for select in self.selectList:
                            x, y = Customize.selectLocation[length][0], Customize.selectLocation[length][1]
                            select.setPos(x, y)
                            select.pos = length
                            self.addItem(select)
                            length += len(Customize.selectLocation) // len(self.selectList)


                        # BackButton
                        self.backButton = BackButton(self)
                        self.backButton.setPos(10, 20)
                        self.addItem(self.backButton)

                        self.isInitialized = True


                    else:
                        if self.customize.cancel:
                            self.screen = 'InitialScreen'
                            self.isInitialized = False
                            self.clear()


            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)

                if self.backButton.game_update(self.bullets):
                    return

                for i in range(len(self.selectList)):
                    if self.selectList[i].game_update(self.bullets):
                        return

        elif self.screen in self.customize.starImgList:
            if not self.isInitialized:
                # BackGround
                self.bg = BackGround("Purple")
                self.addItem(self.bg)

                # Player
                self.player = Player()
                self.player.setPos((SCREEN_WIDTH - self.player.pixmap().width()) / 2, 500)
                self.addItem(self.player)

                # Bulletsdc
                self.bullets = [Bullet(PLAYER_BULLET_X_OFFSETS[0], PLAYER_BULLET_Y),
                                Bullet(PLAYER_BULLET_X_OFFSETS[1], PLAYER_BULLET_Y - 30),
                                Bullet(PLAYER_BULLET_X_OFFSETS[2], PLAYER_BULLET_Y)]
                for b in self.bullets:
                    b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
                    self.addItem(b)

                self.selectImage = CustomizeResult(self.screen, self)
                self.selectImage.setPos(100, 100)
                self.addItem(self.selectImage)

                font = QFont()
                # palette = QPalette()
                font.setPixelSize(60)
                font.setBold(True)
                # palette.setColor(QPalette.Text, Qt.white)
                # font.setPalette(palette)
                self.addText(self.selectText, font).setPos(350,130)
                #self.font.setStyleSheet("color:rgb(255,255,255")


                self.homeButton = Home(self)
                self.homeButton.setPos(300 - self.homeButton.pixmap().width() // 2, 300)
                self.addItem(self.homeButton)

                self.retryButton = CustomizeRetry(self)
                self.retryButton.setPos(500 - self.retryButton.pixmap().width() // 2, 300)
                self.addItem(self.retryButton)


                self.isInitialized = True

            else:
                self.player.game_update(self.keys_pressed)
                for b in self.bullets:
                    b.game_update(self.keys_pressed, self.player)
 
                if self.homeButton.game_update(self.bullets):
                    return

                elif self.retryButton.game_update(self.bullets):
                    return
Ejemplo n.º 10
0
size = width, height

bgColor = r, g, b = 0, 0, 0

screen = pygame.display.set_mode(size)

friends = pygame.sprite.Group()
players = pygame.sprite.Group()
backgrounds = pygame.sprite.Group()
all = pygame.sprite.OrderedUpdates()

Friend.containers = (all, friends)
BackGround.containers = (all, backgrounds)
Browser.containers = (all, players)

BackGround("rsc/bgorg.jpg")

run = True
while True:
    player = Browser((200, 200))
    friends = Friend((300, 300))
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT: sys.exit()
            if event.type == pygame.KEYDOWN:
                if event.key == pygame.K_w:
                    player.go("up")
                if event.key == pygame.K_d:
                    player.go("right")
                if event.key == pygame.K_s:
                    player.go("down")
                if event.key == pygame.K_RETURN:
                    run = True
            if event.type == pygame.MOUSEBUTTONDOWN:
                startButton.click(event.pos)
            if event.type == pygame.MOUSEBUTTONUP:
                if startButton.release(event.pos):
                    run = True

        bgColor = r, g, b
        screen.fill(bgColor)
        screen.blit(bgImage, bgRect)
        screen.blit(startButton.image, startButton.rect)
        pygame.display.flip()
        clock.tick(60)

    BackGround("images/Floors/Brick Floor.png")

    player = Player([width / 2, height / 2])

    level = Level(size, 50)
    level.loadLevel("1")

    timer = Score([80, height - 25], "Time: ", 36)
    timerWait = 0
    timerWaitMax = 6

    score = Score([width - 80, height - 25], "Score: ", 36)
    while run:
        for event in pygame.event.get():
            if event.type == pygame.QUIT: sys.exit()
            if event.type == pygame.KEYDOWN:
def enter():
    global isaac, background, is_key_pressed, is_attack_key_pressing, bullet_dir, gushers, is_bullet_create
    global BackGround_Width, BackGround_Height, invincibility_time, shot_term, bullets, door, indoor, monster_count
    global flies, enemy_bullets, is_enemy_bullet_create, gapers, mulligans, needles, rocks, needle_up_timer
    game_world.objects = [[], []]
    BackGround_Width = 1280
    BackGround_Height = 960
    isaac = Isaac()
    isaac.x = 200
    isaac.y = BackGround_Height // 2
    isaac.body_x, isaac.body_y = isaac.x - 5, isaac.y - 50
    isaac.velocity_x = main_state_2.isaac.velocity_x
    isaac.velocity_y = main_state_2.isaac.velocity_y
    isaac.now_health = main_state_2.hp
    monster_count = 13
    background = BackGround()
    door = Door()
    needles = [
        Needle(400, 500),
        Needle(300, 700),
        Needle(680, 400),
        Needle(920, 700),
        Needle(770, 400)
    ]
    rocks = [
        Rock(600, 200),
        Rock(600, 260),
        Rock(600, 320),
        Rock(600, 380),
        Rock(600, 440),
        Rock(600, 700),
        Rock(600, 760),
        Rock(840, 400),
        Rock(900, 400),
        Rock(960, 400),
        Rock(1020, 400),
        Rock(1080, 400)
    ]
    door.x = door_position[1]
    entrance_door = Door()
    entrance_door.x = door_position[0]
    indoor = InDoor()
    indoor.x = door_position[1]
    entrance_indoor = InDoor()
    entrance_indoor.x = door_position[0]
    flies = [Fly() for i in range(5)]
    gapers = [Gaper() for i in range(5)]
    mulligans = [Mulligan() for i in range(3)]

    game_world.add_object(background, 0)
    game_world.add_objects(needles, 0)
    game_world.add_objects(rocks, 0)
    game_world.add_object(indoor, 1)
    game_world.add_object(door, 1)
    game_world.add_object(isaac, 1)
    game_world.add_object(entrance_door, 1)
    game_world.add_object(entrance_indoor, 1)
    game_world.add_objects(flies, 1)
    game_world.add_objects(gapers, 1)
    game_world.add_objects(mulligans, 1)
    is_key_pressed = 0
    is_attack_key_pressing = 0
    bullet_dir = 0
    is_bullet_create = False
    is_enemy_bullet_create = False
    invincibility_time = 100
    shot_term = 0
    needle_up_timer = 200
    bullets = []
    enemy_bullets = []
    pass
def update():
    global is_attack_key_pressing, bullet_dir, gushers, bullet, is_bullet_create, invincibility_time, shot_term
    global flies, monster_count, big_flies, enemy_bullets,bullets, is_enemy_bullet_create, enemy_big_fly_shot_term
    global  is_bullet_upgrade, is_black_bullet_create, duke, is_monster_create,background
    for game_object in game_world.all_objects():
        game_object.update()


    if duke.create_fly_timer == 0:
        if not is_monster_create:
            fly1 = Fly(duke.x,duke.y+10)
            fly2 = Fly(duke.x,duke.y-10)
            big_fly = BigFly(duke.x-10, duke.y)
            game_world.add_object(fly1,1)
            game_world.add_object(fly2,1)
            game_world.add_object(big_fly,1)
            flies = [fly1,fly2]
            big_flies = [big_fly]
        else:
            fly1 = Fly(duke.x, duke.y + 10)
            fly2 = Fly(duke.x, duke.y - 10)
            big_fly = BigFly(duke.x - 10, duke.y)
            game_world.add_object(fly1, 1)
            game_world.add_object(fly2, 1)
            game_world.add_object(big_fly, 1)
            flies.append(fly1)
            flies.append(fly2)
            big_flies.append(big_fly)
        is_monster_create= True
        duke.summon()
        duke.create_fly_timer = 500

    if not is_bullet_upgrade:
        if is_attack_key_pressing >= 1:
            if shot_term < 0:

                if not is_bullet_create:
                    bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets = [bullet]
                else:
                    bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets.append(bullet)
                shot_term = 30
                is_bullet_create = True

    if is_bullet_upgrade:
        if is_attack_key_pressing >= 1:
            if shot_term < 0:

                if not is_black_bullet_create:
                    bullet = BlackBullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets = [bullet]
                else:
                    bullet = BlackBullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets.append(bullet)
                shot_term = 30
                is_black_bullet_create = True

    for big_fly in big_flies:
        if big_fly.is_shot:
            if big_fly.shot_term == 0:
                if not is_enemy_bullet_create:
                    enemy_bullet = EnemyBulletBigFly(big_fly.x, big_fly.y, big_fly.dir)
                    game_world.add_object(enemy_bullet, 1)
                    enemy_bullets = [enemy_bullet]
                else:
                    enemy_bullet = EnemyBulletBigFly(big_fly.x, big_fly.y, big_fly.dir)
                    game_world.add_object(enemy_bullet, 1)
                    enemy_bullets.append(enemy_bullet)
                is_enemy_bullet_create = True
                big_fly.shot_term = 200

    if is_enemy_bullet_create:
        for enemy_bullet in enemy_bullets:
            if enemy_bullet.is_delete:
                enemy_bullets.remove(enemy_bullet)

    for fly in flies:
        for bullet in bullets:
            if collide(fly, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if fly.health < 1:
                    flies.remove(fly)
                    game_world.remove_object(fly)
                    if monster_count > 0:
                        monster_count -= 1
                if fly.health > 0:
                    fly.health -= bullet.damage
                    print(fly.health)

    for bullet in bullets:
        if collide(duke, bullet):
            game_world.remove_object(bullet)
            bullets.remove(bullet)
            if duke.health < 1:
                game_world.remove_object(duke)
                game_framework.change_state(title_state)
            if duke.health >0 :
                duke.health -= bullet.damage
                print(duke.health)

    if invincibility_time == 0:
        for fly in flies:
            if collide(isaac, fly):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100
        for big_fly in big_flies:
            if collide(isaac, big_fly):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100
        for enemy_bullet in enemy_bullets:
            if collide(isaac, enemy_bullet):
                game_world.remove_object(enemy_bullet)
                enemy_bullets.remove(enemy_bullet)
                isaac.now_health -= enemy_bullet.damage
                isaac.hurt()
                invincibility_time = 100
        if collide(isaac, duke):
            isaac.now_health -= 1
            isaac.hurt()
            invincibility_time = 100

    for big_fly in big_flies:
        for bullet in bullets:
            if collide(big_fly, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if big_fly.health < 1:
                    big_flies.remove(big_fly)
                    game_world.remove_object(big_fly)
                    if monster_count > 0:
                        monster_count -= 1
                if big_fly.health > 0:
                    big_fly.health -= bullet.damage
                    print(big_fly.health)





    if invincibility_time > 0:
        invincibility_time -= 1
    if shot_term >= 0:
        shot_term -= 1


    if duke.create_fly_timer > 0:
        duke.create_fly_timer -= 1

    if isaac.is_death:
        game_world.remove_object(background)
        background = BackGround(2)
        game_world.add_object(background, 0)
        game_framework.change_state(death_state)
Ejemplo n.º 14
0
class FlappyScene(Scene):

    def __init__(self, screen, id=0):
        super().__init__(screen, id)
        self.highest_score = 0

    def load(self, flag, generation_number):
        
        self.backGround_1 = BackGround(self.screen, 0, 0, 0, 600, False)
        self.backGround_2 = BackGround(self.screen, 0, 0, 300, 600, False)
        self.backGround_1_inverted = BackGround(self.screen, 0, 0, 0, 0, True)
        self.backGround_2_inverted = BackGround(self.screen, 0, 0, 300, 0, True)
        self.landScape = LandScape(self.screen, 0, 0, 0, 0)
        self.frame_alive = 0
        self.birds_pool = []
        self.bird_score = []
        self.models_load = []
        self.load_nn = [] 
        self.population_size = 20
        self.generation_number = generation_number
        if flag:
            for idx in range(0, self.population_size):
                bird = Bird(self.screen, 300, 400, 300, 400)
                self.birds_pool.append(bird)
        else:
            for i in range(0, self.population_size):
                m = NeuralNetwork()
                self.load_nn.append(m)
                self.load_nn[i].get_model().load_weights("models/model" + str(i+1)+ ".keras")        
                bird = Bird(self.screen, 300, 400, 300, 400, self.load_nn[i])
                self.birds_pool.append(bird)


        y1 = random.randint(450, 500)
        y2 = random.randint(0, 100)
        
        self.pipe = Pipe(self.screen, 0, 0, 1200, y1, False)
        self.pipe_inverted = Pipe(self.screen, 0, 0, 1200, y2, True)
        self.landScape.load()
        self.backGround_1.load()
        self.backGround_2.load()
        self.backGround_1_inverted.load()
        self.backGround_2_inverted.load()
        
        self.nn = []
        for bird in self.birds_pool:
            bird.load()
        self.pipe.load()
        self.pipe_inverted.load()
        
        self.game_objects = [self.backGround_1, 
                                self.backGround_2, 
                                self.pipe, 
                                self.pipe_inverted,
                                self.backGround_1_inverted,
                                self.backGround_2_inverted] + self.birds_pool
        
        self.collision_handler = Collision(self.game_objects)
        
    def draw(self):
        self.landScape.draw()
        self.backGround_1.draw()
        self.backGround_2.draw()
        self.backGround_1_inverted.draw()
        self.backGround_2_inverted.draw()
        for bird in self.birds_pool:
            bird.draw()
        self.pipe.draw()
        self.pipe_inverted.draw()

    def update(self):
        if len(self.birds_pool) > 0:
            pipe_center = self.pipe.sprite.get_sprite_center()
            pipe_inverted_center = self.pipe_inverted.sprite.get_sprite_center()
            backgroud_1_center = self.backGround_1.sprite.get_sprite_center()
            background_2_center = self.backGround_2.sprite.get_sprite_center()
            backgroud_inverted_1_center = self.backGround_1_inverted.sprite.get_sprite_center()
            backgroud_inverted_2_center = self.backGround_2_inverted.sprite.get_sprite_center()
            
            self.backGround_1.update()
            self.backGround_2.update()
            self.backGround_2_inverted.update()
            self.backGround_1_inverted.update()
            self.landScape.update()    
            
            for bird in self.birds_pool:
                x, y = bird.get_position()
                bird.update([y, 
                            pipe_center[0] , 
                            pipe_center[1],
                            pipe_inverted_center[0],
                            pipe_inverted_center[1],
                            backgroud_1_center[0],
                            backgroud_1_center[1],
                            background_2_center[0],
                            background_2_center[1],
                            backgroud_inverted_1_center[0],
                            backgroud_inverted_1_center[1],
                            backgroud_inverted_2_center[0],
                            backgroud_inverted_2_center[1]
                            ])    
                bird_center = bird.sprite.get_sprite_center()
                line_pipe = Line(self.screen,  pipe_center[0], pipe_center[1], RED)
                line_pipe_inve = Line(self.screen, pipe_inverted_center[0], pipe_inverted_center[1], RED)
                line_backGround_1 = Line(self.screen, backgroud_1_center[0], backgroud_1_center[1], RED)
                line_backGround_2 = Line(self.screen, background_2_center[0], background_2_center[1], RED)

                line_backGround_inverted_1 = Line(self.screen, backgroud_inverted_1_center[0], backgroud_inverted_1_center[1], RED)
                line_backGround_inverted_2 = Line(self.screen, backgroud_inverted_2_center[0], backgroud_inverted_2_center[1], RED)

                line_pipe.draw((bird_center))
                line_pipe_inve.draw((bird_center))
                line_backGround_1.draw((bird_center))
                line_backGround_2.draw((bird_center))
                line_backGround_inverted_1.draw((bird_center))
                line_backGround_inverted_2.draw((bird_center))
                if (self.collision_handler.sprite_group_collide(self.backGround_1.group, bird.group)) or (self.collision_handler.sprite_group_collide(self.backGround_1_inverted.group, bird.group)) or (self.collision_handler.sprite_group_collide(self.backGround_2_inverted.group, bird.group)) or (self.collision_handler.sprite_group_collide(self.backGround_2.group, bird.group)) or (self.collision_handler.sprite_group_collide(bird.group, self.pipe.group)) or (self.collision_handler.sprite_group_collide(self.pipe_inverted.group, bird.group)):
                    self.nn.append(bird.get_neural_network())
                    self.bird_score.append(self.frame_alive)
                    self.birds_pool.remove(bird)
            
            self.pipe.update()
            self.pipe_inverted.update()

            y1 = random.randint(450, 500)
            y2 = random.randint(0, 100)
                
            if self.pipe.sprite.rect[0] < -self.pipe.sprite.rect[2]:
                del self.pipe
                self.pipe = Pipe(self.screen, 0, 0, 600, y1, False)
                self.pipe.load()

            if self.pipe_inverted.sprite.rect[0] < -self.pipe_inverted.sprite.rect[2]:
                del self.pipe_inverted
                self.pipe_inverted = Pipe(self.screen, 0, 0, 600, y2, True)
                self.pipe_inverted.load()
            self.frame_alive +=1
        else:
            new_birds = []
            self.geneticAlgorithmFlappy = GeneticAlgorithmFlappy(self.nn)
            self.geneticAlgorithmFlappy.template(self.bird_score)
            for idx in range(0, int(self.population_size/2)):
                bird = Bird(self.screen, 300, 400, 300, 400)
                new_birds.append(bird)
            self.geneticAlgorithmFlappy.new_population(new_birds)
            self.geneticAlgorithmFlappy.save()
            if self.highest_score < max(self.bird_score):
                self.highest_score = max(self.bird_score)
            raise BirdException
        
        
        font = pygame.font.Font('freesansbold.ttf', 11) 
        message = "Geração = " + str(self.generation_number) + " "\
                  "Quantidade de individuos vivos = " + str(len(self.birds_pool)) + " "  \
                  "Maior quantidade de frames vivos = " + str(self.highest_score) 
        text = font.render(message, True, (0, 0, 0))
        self.screen.blit(text, (25, 25))
Ejemplo n.º 15
0
class App:
    def __init__(self, debug_mode=False):
        self.debug_mode = debug_mode

        # to calcurate frame per second
        self._time = time.time()
        self.fps = 30

        pyxel.init(width=250, height=200, caption="STG", scale=3, fps=30)
        pyxel.load("../asset.pyxres")

        self.player = Player(sx=100,
                             sy=150,
                             width=10,
                             height=10,
                             speed=2,
                             debug_mode=self.debug_mode)
        self.player.activate()
        self.enemies = []
        for i in range(20):
            e = Enemy(sx=100,
                      sy=0,
                      height=10,
                      width=10,
                      speed=0.5,
                      max_hp=10,
                      idx=i,
                      debug_mode=self.debug_mode)
            e.activate()
            self.enemies.append(e)

        self.particles = []

        self.back_ground = BackGround()
        pyxel.run(self.update, self.draw)

    def update(self):
        self.back_ground.update()
        self.player.update()
        for e in self.enemies:
            e.update()

        cur_time = time.time()
        self.fps = 1 / (cur_time - self._time)
        self._time = cur_time

        # player bullet と敵との当たり判定
        pb: Bullet
        for pb in self.player.bullets:
            r = pb.radius_for_collision
            cx = pb.x
            cy = pb.y
            for enemy in self.enemies:
                ex = enemy.x
                ey = enemy.y
                ew = enemy.width
                eh = enemy.height
                if (ex - r < cx < ex + ew + r) and (ey - r < cy < ey + eh + r):
                    enemy.current_hp -= 1
                    if enemy.current_hp == 0:
                        self.enemies.remove(enemy)
                        enemy.deactivate()
                        self.particles.append(Particle(ex, ey))

        # enemy bullet とplayerとの当たり判定
        if not self.player.is_active:
            return
        eb: Bullet
        for enemy in self.enemies:
            for eb in enemy.bullets:
                r = eb.radius_for_collision
                cx = eb.x
                cy = eb.y
                px = self.player.x
                py = self.player.y
                pw = enemy.width
                ph = enemy.height
                if (px - r < cx < px + pw + r) and (py - r < cy < py + ph + r):
                    self.player.deactivate()
                    self.particles.append(Particle(px, py))

    def draw(self):
        self.back_ground.draw()
        self.player.draw()
        for e in self.enemies:
            e.draw()
        self.show_debug_info()

        p: Particle
        for p in self.particles:
            p.draw()
            if not p.is_active:
                self.particles.remove(p)
                del p

    def show_debug_info(self):
        if not self.debug_mode:
            return
        info = f"FPS: {self.fps:.2f}\n"
        info += f"Particles: {len(self.particles)}\n"
        pyxel.text(0, pyxel.height - 30, info, 9)
def enter():
    global isaac, background, is_key_pressed, is_attack_key_pressing, bullet_dir, gushers, is_bullet_create
    global BackGround_Width, BackGround_Height, invincibility_time, shot_term, bullets, door, indoor, monster_count
    global flies, enemy_bullets, is_enemy_bullet_create, gapers, maggotes, needles, needle_up_timer
    global is_item_create, is_bullet_upgrade, is_black_bullet_create, is_eat_item, background
    game_world.objects = [[], []]
    BackGround_Width = 1280
    BackGround_Height = 960
    isaac = Isaac()
    isaac.x = 200
    isaac.y = BackGround_Height // 2
    isaac.body_x, isaac.body_y = isaac.x - 5, isaac.y - 50
    isaac.velocity_x = main_state_3.isaac.velocity_x
    isaac.velocity_y = main_state_3.isaac.velocity_y
    isaac.now_health = main_state_3.hp
    monster_count = 10
    background = BackGround()
    door = Door()
    door.x = door_position[1]
    entrance_door = Door()
    entrance_door.x = door_position[0]
    indoor = InDoor()

    indoor.x = door_position[1]
    entrance_indoor = InDoor()
    entrance_indoor.x = door_position[0]
    needles = [
        Needle(360, 210),
        Needle(360, 275),
        Needle(360, 340),
        Needle(360, 400),
        Needle(360, 460),
        Needle(360, 520),
        Needle(360, 580),
        Needle(360, 640),
        Needle(360, 700),
        Needle(360, 760),
        Needle(560, 210),
        Needle(560, 275),
        Needle(560, 340),
        Needle(560, 400),
        Needle(560, 460),
        Needle(560, 520),
        Needle(560, 580),
        Needle(560, 640),
        Needle(560, 700),
        Needle(560, 760),
        Needle(760, 210),
        Needle(760, 275),
        Needle(760, 340),
        Needle(760, 400),
        Needle(760, 460),
        Needle(760, 520),
        Needle(760, 580),
        Needle(760, 640),
        Needle(760, 700),
        Needle(760, 760),
        Needle(960, 210),
        Needle(960, 275),
        Needle(960, 340),
        Needle(960, 400),
        Needle(960, 460),
        Needle(960, 520),
        Needle(960, 580),
        Needle(960, 640),
        Needle(960, 700),
        Needle(960, 760),
    ]
    gapers = [Gaper() for i in range(5)]
    maggotes = [Maggot() for i in range(5)]

    game_world.add_object(background, 0)
    game_world.add_objects(needles, 0)
    game_world.add_object(indoor, 1)
    game_world.add_object(door, 1)
    game_world.add_object(isaac, 1)
    game_world.add_object(entrance_door, 1)
    game_world.add_object(entrance_indoor, 1)
    game_world.add_objects(maggotes, 1)
    game_world.add_objects(gapers, 1)

    is_key_pressed = 0
    is_attack_key_pressing = 0
    bullet_dir = 0
    is_bullet_create = False
    is_enemy_bullet_create = False
    is_item_create = False
    is_bullet_upgrade = False
    is_black_bullet_create = False
    invincibility_time = 100
    shot_term = 0
    needle_up_timer = 200
    is_eat_item = False
    bullets = []
    enemy_bullets = []
    pass
Ejemplo n.º 17
0
def update():
    global is_attack_key_pressing, bullet_dir, gushers, bullet, is_bullet_create, invincibility_time, shot_term, bullets
    global gusher, monster_count, indoor, rocks, is_key_pressed, background
    for game_object in game_world.all_objects():
        game_object.update()

    if is_attack_key_pressing >= 1:
        if shot_term < 0:
            if not is_bullet_create:
                bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                game_world.add_object(bullet, 1)
                bullets = [bullet]
            else:
                bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                game_world.add_object(bullet, 1)
                bullets.append(bullet)

            shot_term = 30
            is_bullet_create = True

    for gusher in gushers:
        for bullet in bullets:
            if collide(gusher, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if gusher.health < 1:
                    gushers.remove(gusher)
                    game_world.remove_object(gusher)
                    if monster_count > 0:
                        monster_count -= 1
                if gusher.health > 0:
                    gusher.health -= bullet.damage
                    print(gusher.health)

    for rock in rocks:
        for bullet in bullets:
            if collide(rock, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
        if collide(isaac, rock):
            if rock.x >= isaac.x:
                isaac.x -= isaac.velocity_x
                isaac.body_x -= isaac.velocity_x
            if rock.x <= isaac.x:
                isaac.x -= isaac.velocity_x
                isaac.body_x -= isaac.velocity_x
            if rock.y >= isaac.y:
                isaac.y -= isaac.velocity_y
                isaac.body_y -= isaac.velocity_y
            if rock.y <= isaac.y:
                isaac.y -= isaac.velocity_y
                isaac.body_y -= isaac.velocity_y
        for gusher in gushers:
            if collide(gusher, rock):
                if rock.x >= gusher.x:
                    gusher.x -= 10
                if rock.x <= gusher.x:
                    gusher.x += 10
                if rock.y >= gusher.y:
                    gusher.y -= 10
                if rock.y <= gusher.y:
                    gusher.y += 10

    if invincibility_time == 0:
        for gusher in gushers:
            if collide(isaac, gusher):
                isaac.now_health -= 0.5
                invincibility_time = 100
                isaac.hurt()
    if invincibility_time > 0:
        invincibility_time -= 1
    if shot_term >= 0:
        shot_term -= 1

    if monster_count == 0:
        if not indoor.open_door:
            indoor.open()
        indoor.open_door = True

    if collide(isaac, indoor):
        if indoor.open_door:
            game_framework.change_state(main_state_2)

    pass

    if isaac.is_death:
        game_world.remove_object(background)
        background = BackGround(2)
        game_world.add_object(background, 0)
        game_framework.change_state(death_state)
def update():
    global is_attack_key_pressing, bullet_dir, gushers, bullet, is_bullet_create, invincibility_time, shot_term
    global flies, monster_count, indoor, enemy_bullets, bullets, is_enemy_bullet_create, mulligans
    global gapers, maggotes, needles, needle_up_timer, recovery_hp, upgrade_bullet, is_item_create, is_bullet_upgrade
    global is_black_bullet_create, is_eat_item, background
    for game_object in game_world.all_objects():
        game_object.update()

    if not is_bullet_upgrade:
        if is_attack_key_pressing >= 1:
            if shot_term < 0:

                if not is_bullet_create:
                    bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets = [bullet]
                else:
                    bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets.append(bullet)
                shot_term = 30
                is_bullet_create = True

    if is_bullet_upgrade:
        if is_attack_key_pressing >= 1:
            if shot_term < 0:

                if not is_black_bullet_create:
                    bullet = BlackBullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets = [bullet]
                else:
                    bullet = BlackBullet(isaac.x, isaac.y, bullet_dir)
                    game_world.add_object(bullet, 1)
                    bullets.append(bullet)
                shot_term = 30
                is_black_bullet_create = True

    for gaper in gapers:
        if gaper.is_shot:
            if gaper.shot_term == 0:
                if not is_enemy_bullet_create:
                    enemy_bullet = EnemyBulletBigFly(gaper.x, gaper.y,
                                                     gaper.dir, 3)
                    game_world.add_object(enemy_bullet, 1)
                    enemy_bullets = [enemy_bullet]
                else:
                    enemy_bullet = EnemyBulletBigFly(gaper.x, gaper.y,
                                                     gaper.dir, 3)
                    game_world.add_object(enemy_bullet, 1)
                    enemy_bullets.append(enemy_bullet)
                is_enemy_bullet_create = True
                gaper.shot_term = 200

    if is_enemy_bullet_create:
        for enemy_bullet in enemy_bullets:
            if enemy_bullet.is_delete:
                enemy_bullets.remove(enemy_bullet)

    for maggot in maggotes:
        for bullet in bullets:
            if collide(maggot, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if maggot.health < 1:
                    maggotes.remove(maggot)
                    game_world.remove_object(maggot)
                    if monster_count > 0:
                        monster_count -= 1
                if maggot.health > 0:
                    maggot.health -= bullet.damage
                    print(maggot.health)

    if needle_up_timer < 0:
        needle_up_timer = 200
        for needle in needles:
            needle.change_needle_state()

    if invincibility_time == 0:
        for maggot in maggotes:
            if collide(isaac, maggot):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100

        for gaper in gapers:
            if collide(isaac, gaper):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100

        for needle in needles:
            if needle.needle_up:
                if collide_ex(isaac, needle):
                    isaac.now_health -= needle.damage
                    isaac.hurt()
                    invincibility_time = 100

        for enemy_bullet in enemy_bullets:
            if collide(isaac, enemy_bullet):
                game_world.remove_object(enemy_bullet)
                enemy_bullets.remove(enemy_bullet)
                isaac.now_health -= enemy_bullet.damage
                isaac.hurt()
                invincibility_time = 100

    for gaper in gapers:
        for bullet in bullets:
            if collide(gaper, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if gaper.health < 1:
                    gapers.remove(gaper)
                    game_world.remove_object(gaper)
                    if monster_count > 0:
                        monster_count -= 1
                if gaper.health > 0:
                    gaper.health -= bullet.damage
                    print(gaper.health)

    if invincibility_time > 0:
        invincibility_time -= 1
    if shot_term >= 0:
        shot_term -= 1

    if needle_up_timer >= 0:
        needle_up_timer -= 1

    if monster_count == 0:
        if not indoor.open_door:
            indoor.open()
        indoor.open_door = True

        if not is_item_create:
            recovery_hp = RecoveryHp()
            upgrade_bullet = UpgradeBullet()
            game_world.add_object(upgrade_bullet, 1)
            game_world.add_object(recovery_hp, 1)
            is_item_create = True

    if is_item_create:
        if not is_eat_item:
            if collide(isaac, recovery_hp):
                game_world.remove_object(upgrade_bullet)
                game_world.remove_object(recovery_hp)
                isaac.eat_health_item()
                isaac.now_health = 3
                is_eat_item = True
            if collide(isaac, upgrade_bullet):
                game_world.remove_object(upgrade_bullet)
                game_world.remove_object(recovery_hp)
                isaac.eat_upgrade_bullet_item()
                is_bullet_upgrade = True
                is_eat_item = True

    if collide(isaac, indoor):
        if indoor.open_door:
            for game_object in game_world.all_objects():
                game_world.remove_object(game_object)
            game_framework.change_state(boss_intro_state)
            background.bgm.stop()
            indoor.enter_boss_room()

    pass

    if isaac.is_death:
        game_world.remove_object(background)
        background = BackGround(2)
        game_world.add_object(background, 0)
        game_framework.change_state(death_state)
Ejemplo n.º 19
0
    def __init__(self, parent=None):
        QGraphicsScene.__init__(self, parent)

        # hold the set of keys we're pressing
        self.keys_pressed = set()

        # use a timer to get 60Hz refresh (hopefully)  1000 / 16 == 62.5
        self.timer = QBasicTimer()
        self.timer.start(FRAME_TIME_MS, self)

        # bg = QGraphicsRectItem()
        # bg.setRect(-1,-1,SCREEN_WIDTH+2,SCREEN_HEIGHT+2)
        # bg.setBrush(QBrush(Qt.black))

        # BackGround
        self.bg = BackGround()
        self.addItem(self.bg)

        # Stage
        self.stage = Stage()
        self.addItem(self.stage)

        # Player
        self.player = Player()
        self.player.setPos((SCREEN_WIDTH - self.player.pixmap().width()) / 2,
                           (SCREEN_HEIGHT - self.player.pixmap().height()) / 2)
        self.addItem(self.player)

        # Player Life
        self.playerIcon = PlayerIcon()
        self.xIcon = XIcon()
        self.life = Life()
        self.playerIcon.setPos(20, 20)
        self.xIcon.setPos(60, 25)
        self.life.setPos(83, 24)
        self.addItem(self.playerIcon)
        self.addItem(self.xIcon)
        self.addItem(self.life)

        # Bullets
        self.bullets = [
            Bullet(PLAYER_BULLET_X_OFFSETS[0], PLAYER_BULLET_Y),
            Bullet(PLAYER_BULLET_X_OFFSETS[1], PLAYER_BULLET_Y - 30),
            Bullet(PLAYER_BULLET_X_OFFSETS[2], PLAYER_BULLET_Y)
        ]
        for b in self.bullets:
            b.setPos(SCREEN_WIDTH, SCREEN_HEIGHT)
            self.addItem(b)

        # Enemies
        self.enemies = [Enemy()]
        self.enemies[0].setPos(SCREEN_WIDTH, 0)
        self.addItem(self.enemies[0])
        self.idx = [0]

        # Execution Point
        self.EXP = EXP()
        self.EXP.score = 8
        self.EXP.setPos(SCREEN_WIDTH - 40, 20)
        self.addItem(self.EXP)

        self.EXP1 = EXP()
        self.EXP1.score = 1
        self.EXP1.setPos(SCREEN_WIDTH - 60, 20)
        self.addItem(self.EXP1)

        self.view = QGraphicsView(self)
        self.view.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff)
        self.view.show()
        self.view.setFixedSize(SCREEN_WIDTH, SCREEN_HEIGHT)
        self.setSceneRect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)

        self.ask = AskClose(self)
                if event.key == pygame.K_RETURN:
                    run = True
            if event.type == pygame.MOUSEBUTTONDOWN:
                startButton.click(event.pos)
            if event.type == pygame.MOUSEBUTTONUP:
                if startButton.release(event.pos):
                    run = True

        bgColor = r, g, b
        screen.fill(bgColor)
        screen.blit(bgImage, bgRect)
        screen.blit(startButton.image, startButton.rect)
        pygame.display.flip()
        clock.tick(60)

    BackGround("Recources/Maps/Background V2.png")

    player = LenardLangly([width / 2, height / 2])

    player2 = JackSherman([width / 2, height / 2])

    projectiles = []

    knifeGods.health = 20

    level = Level(size, 50)
    level.loadLevel("1")

    timer = Score([80, height - 25], "Time: ", 36)
    timerWait = 0
    timerWaitMax = 1
Ejemplo n.º 21
0
            if event.type == pygame.MOUSEBUTTONUP:
                if startButton2.release(event.pos):
                    running = False

                    sys.exit()

        bgColor = r, g, b
        screen.fill(bgColor)
        fullscreen = False
        screen.blit(bgImage, bgRect)
        screen.blit(startButton.image, startButton.rect)
        screen.blit(startButton2.image, startButton2.rect)
        pygame.display.flip()
        clock.tick(60)

    BackGround("maps/black.PNG")

    level = Level(size, 50, 50)
    level.loadLevel("1")

    player = Player([width / 2, height / 2])
    #healthbar = HealthBar([115, -200])
    ammo = Ammo([100, 500])

    Enemys = []
    maxEnemy = 25
    Enemys += [Enemy("images/enemy/pr1.png", [0, 0], [200, 150])]

    #timer = Score([115, height - 25], " ", 36)
    #timerWait = 0
    #timerWaitMax = 6
def update():
    global is_attack_key_pressing, bullet_dir, gushers, bullet, is_bullet_create, invincibility_time, shot_term
    global flies, monster_count, indoor, enemy_bullets, bullets, is_enemy_bullet_create, mulligans
    global gapers, needle_up_timer, background
    for game_object in game_world.all_objects():
        game_object.update()

    if is_attack_key_pressing >= 1:
        if shot_term < 0:

            if not is_bullet_create:
                bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                game_world.add_object(bullet, 1)
                bullets = [bullet]
            else:
                bullet = Bullet(isaac.x, isaac.y, bullet_dir)
                game_world.add_object(bullet, 1)
                bullets.append(bullet)

            shot_term = 30
            is_bullet_create = True

    for gaper in gapers:
        if gaper.is_shot:
            if gaper.shot_term == 0:
                if not is_enemy_bullet_create:
                    enemy_bullet = EnemyBulletBigFly(gaper.x, gaper.y,
                                                     gaper.dir, 2)
                    game_world.add_object(enemy_bullet, 1)
                    enemy_bullets = [enemy_bullet]
                else:
                    enemy_bullet = EnemyBulletBigFly(gaper.x, gaper.y,
                                                     gaper.dir, 2)
                    game_world.add_object(enemy_bullet, 1)
                    enemy_bullets.append(enemy_bullet)
                is_enemy_bullet_create = True
                gaper.shot_term = 150

    if is_enemy_bullet_create:
        for enemy_bullet in enemy_bullets:
            if enemy_bullet.is_delete:
                enemy_bullets.remove(enemy_bullet)

    for fly in flies:
        for bullet in bullets:
            if collide(fly, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if fly.health < 1:
                    flies.remove(fly)
                    game_world.remove_object(fly)
                    if monster_count > 0:
                        monster_count -= 1
                if fly.health > 0:
                    fly.health -= bullet.damage
                    print(fly.health)

    for mulligan in mulligans:
        for bullet in bullets:
            if collide(mulligan, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if mulligan.health < 1:
                    mulligans.remove(mulligan)
                    game_world.remove_object(mulligan)
                    if monster_count > 0:
                        monster_count -= 1
                if mulligan.health > 0:
                    mulligan.health -= bullet.damage
                    print(mulligan.health)

    if needle_up_timer < 0:
        needle_up_timer = 200
        for needle in needles:
            needle.change_needle_state()

    if invincibility_time == 0:
        for fly in flies:
            if collide(isaac, fly):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100
        for mulligan in mulligans:
            if collide(isaac, mulligan):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100
        for gaper in gapers:
            if collide(isaac, gaper):
                isaac.now_health -= 0.5
                isaac.hurt()
                invincibility_time = 100
        for needle in needles:
            if needle.needle_up:
                if collide_ex(isaac, needle):
                    isaac.now_health -= needle.damage
                    isaac.hurt()
                    invincibility_time = 100
        for enemy_bullet in enemy_bullets:
            if collide(isaac, enemy_bullet):
                game_world.remove_object(enemy_bullet)
                enemy_bullets.remove(enemy_bullet)
                isaac.now_health -= enemy_bullet.damage
                isaac.hurt()
                invincibility_time = 100

    for gaper in gapers:
        for bullet in bullets:
            if collide(gaper, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
                if gaper.health < 1:
                    gapers.remove(gaper)
                    game_world.remove_object(gaper)
                    if monster_count > 0:
                        monster_count -= 1
                if gaper.health > 0:
                    gaper.health -= bullet.damage
                    print(gaper.health)

    for rock in rocks:
        for bullet in bullets:
            if collide(rock, bullet):
                game_world.remove_object(bullet)
                bullets.remove(bullet)
        if collide(isaac, rock):
            if rock.x >= isaac.x:
                isaac.x -= isaac.velocity_x
                isaac.body_x -= isaac.velocity_x
            if rock.x <= isaac.x:
                isaac.x -= isaac.velocity_x
                isaac.body_x -= isaac.velocity_x
            if rock.y >= isaac.y:
                isaac.y -= isaac.velocity_y
                isaac.body_y -= isaac.velocity_y
            if rock.y <= isaac.y:
                isaac.y -= isaac.velocity_y
                isaac.body_y -= isaac.velocity_y
        for mulligan in mulligans:
            if collide(mulligan, rock):
                if rock.x >= mulligan.x:
                    mulligan.x -= 10
                if rock.x <= mulligan.x:
                    mulligan.x += 10
                if rock.y >= mulligan.y:
                    mulligan.y -= 10
                if rock.y <= mulligan.y:
                    mulligan.y += 10

    if invincibility_time > 0:
        invincibility_time -= 1
    if shot_term >= 0:
        shot_term -= 1

    if needle_up_timer >= 0:
        needle_up_timer -= 1

    if monster_count == 0:
        if not indoor.open_door:
            indoor.open()
        indoor.open_door = True

    if collide(isaac, indoor):
        if indoor.open_door:
            for game_object in game_world.all_objects():
                game_world.remove_object(game_object)
            game_framework.change_state(main_state_4)

    pass
    if isaac.is_death:
        game_world.remove_object(background)
        background = BackGround(2)
        game_world.add_object(background, 0)
        game_framework.change_state(death_state)