def handle_events(): events = pico2d.get_events() for event in events: if event.type == pico2d.SDL_QUIT: Game_FrameWork.quit() elif event.type == pico2d.SDL_KEYDOWN and event.key == pico2d.SDLK_ESCAPE: Game_FrameWork.quit()
def update(): global logo_time if( logo_time > 1.0): logo_time = 0 Game_FrameWork.push_state(Title_State) delay(0.01) logo_time += 0.01
def handle_events(): events = get_events() for event in events: if event.type == SDL_QUIT: Game_FrameWork.quit() elif event.type == SDL_KEYDOWN and event.key == SDLK_ESCAPE: Game_FrameWork.quit() else: player.handle_event(event)
def handle_events(): events = get_events() for event in events: if event.type == SDL_QUIT: Game_FrameWork.quit() else: if(event.type, event.key) == (SDL_KEYDOWN, SDLK_ESCAPE): Game_FrameWork.quit() elif ( event.type, event.key ) == (SDL_KEYDOWN, SDLK_SPACE): Game_FrameWork.change_state(Stage1_State)
def update(): global player, moetato, invincibility_timer, game_over_time, complete_time, background if game_over_time != None: if get_time() - game_over_time > 1.5: Game_FrameWork.change_state(Rank_State) if complete_time != None: if get_time() - complete_time > 1.5: Game_FrameWork.change_state(Rank_State) for game_object in Game_World.all_objects(): game_object.update() if isinstance(game_object, Player_Bullet): if game_object.velocity > 0: if collide(game_object.get_bb_dir_right(), moetato.get_bb_hand()) or collide( game_object.get_bb_dir_right(), moetato.get_bb_body1()) or collide( game_object.get_bb_dir_right(), moetato.get_bb_body2()): if not game_object.isExplosion: moetato.hp = moetato.hp - 1 game_object.explosion() if moetato.hp <= 0 and not moetato.isDeath and not player.isDeath: moetato.isDeath = True background.isVictory_sound = True background.isVictory = True rank.append(round(background.survival_time, 2)) rank.sort() with open('rank_data.json', 'wt') as f: json.dump(rank, f) if complete_time == None: complete_time = get_time() else: if collide(game_object.get_bb_dir_left(), moetato.get_bb_hand()) or collide( game_object.get_bb_dir_left(), moetato.get_bb_body1()) or collide( game_object.get_bb_dir_left(), moetato.get_bb_body2()): if not game_object.isExplosion: moetato.hp = moetato.hp - 1 game_object.explosion() if moetato.hp <= 0: moetato.isDeath = True background.isVictory_sound = True background.isVictory = True rank.append(round(background.survival_time, 2)) rank.sort() with open('rank_data.json', 'wt') as f: json.dump(rank, f) if complete_time == None: complete_time = get_time() if isinstance(game_object, Moe_Tato_Bullet): if moetato.isDeath: Game_World.remove_object(game_object) if not player.isHit and collide(game_object.get_bb(), player.get_bb(55, 80, 60, 75)): if not game_object.isExplosion: player.hp = player.hp - 1 if player.hp <= 0: if game_over_time == None: game_over_time = get_time() player.isDeath = True background.isGameOver = True else: invincibility_timer = get_time() game_object.explosion() player.Hit()
def collision(): # ---------------- global mermadiaCount, lizardList, mermadiaList, lizardCount, player, portal, gemumuList, gemumuCount global magicianCount, magicianList, ui if collide(portal, player) and mermadiaCount == 0: f = open("stageInfoLoad.txt", 'w') data = "%d\n" % ui.money f.write(data) data = "%d\n" % ui.score f.write(data) f.close() if lizardCount > 0: for lizard in lizardList: lizardList.remove(lizard) lizardCount -=1 if gemumuCount > 0: for gemumu in gemumuList: gemumuList.remove(gemumu) gemumuCount -=1 if magicianCount > 0: for magician in magicianList: magicianList.remove(magician) magicianCount -=1 Game_FrameWork.change_state(Stage3_State) return if (lizardCount == 0 and gemumuCount == 0 and magicianCount == 0 ): for mermadia in mermadiaList: if( mermadia.state != mermadia.ATTACK and collide(player, mermadia) and player.state != player.DIE ): mermadia.state = mermadia.ATTACK mermadia.frame = 0 elif( mermadia.state == mermadia.ATTACK and collide(player, mermadia) and mermadia.frame == mermadia.frameNum[mermadia.ATTACK] - 1): player.hp -= mermadia.att mermadia.frame = 0 print(player.hp) elif( mermadia.state == mermadia.ATTACK and True != collide(player, mermadia) ): mermadia.state = mermadia.RUN mermadia.frame = 0 if( mermadiaCount == 0): for lizard in lizardList: lizard.state = lizard.RUN for magician in magicianList: magician.state = magician.RUN for gemumu in gemumuList: gemumu.state = gemumu.RUN if( mermadiaCount > 0 and lizardCount > 0): for mermadia in mermadiaList: for lizard in lizardList: if( collide(lizard, mermadia) == True ): if(lizard.state == lizard.RUN): lizard.state = lizard.ATTACK lizard.frame = 0 elif(lizard.state == lizard.ATTACK): if(lizard.frame == lizard.frameNum[lizard.ATTACK]-1): mermadia.hp -= lizard.att lizard.frame = 0 print("mermadia hp : ", mermadia.hp) if(mermadia.state == mermadia.STAND or mermadia.state == mermadia.RUN): mermadia.state = mermadia.ATTACK mermadia.frame = 0 elif(mermadia.state == mermadia.ATTACK): if(mermadia.frame == mermadia.frameNum[mermadia.ATTACK]-1): lizard.hp -= mermadia.att mermadia.frame = 0 print("lizard hp : ", lizard.hp) if( gemumuCount > 0 and mermadiaCount > 0): for mermadia in mermadiaList: for gemumu in gemumuList: if( collide(gemumu, mermadia) == True ): if(gemumu.state == gemumu.RUN): if( gemumu.waveState == 0 ): gemumu.setMonsterX(mermadia.x) gemumu.createEnergyWave() gemumu.state = gemumu.ATTACK elif(gemumu.state == gemumu.ATTACK): if( gemumu.waveState == 0 ): gemumu.setMonsterX(mermadia.x) gemumu.createEnergyWave() if(gemumu.frame == gemumu.frameNum[gemumu.ATTACK]-1): mermadia.hp -= gemumu.att gemumu.frame = 0 print("mermadia hp : ", mermadia.hp) if( collideDefend(gemumu, mermadia) == True ): if(mermadia.state == mermadia.STAND or mermadia.state == mermadia.RUN): mermadia.state = mermadia.ATTACK mermadia.frame = 0 elif(mermadia.state == mermadia.ATTACK): if(mermadia.frame == mermadia.frameNum[mermadia.ATTACK]-1): gemumu.hp -= mermadia.att mermadia.frame = 0 print("gemumu hp : ", gemumu.hp) if( magicianCount > 0 and mermadiaCount > 0): for mermadia in mermadiaList: for magician in magicianList: if( collide(magician, mermadia) == True ): if(magician.state == magician.RUN): if( magician.fireState == 0 ): magician.createFire(mermadia.x, mermadia.y) magician.state = magician.ATTACK elif(magician.state == magician.ATTACK): if( magician.fireState == 0 ): magician.createFire(mermadia.x, mermadia.y) magician.state = magician.ATTACK if(magician.frame == magician.frameNum[magician.ATTACK]-1): mermadia.hp -= magician.att magician.frame = 0 print("mermadia hp : ", mermadia.hp) if( collideDefend(magician, mermadia) == True ): if(mermadia.state == mermadia.STAND or mermadia.state == mermadia.RUN): mermadia.state = mermadia.ATTACK mermadia.frame = 0 elif(mermadia.state == mermadia.ATTACK): if(mermadia.frame == mermadia.frameNum[mermadia.ATTACK]-1): magician.hp -= mermadia.att mermadia.frame = 0 print("magician hp : ", magician.hp)
def handle_events(): global player, UI, lizardMpValue, gemumuMpValue, magicianMpValue, lizardList, lizardButton, lizardCount global gemumuList, magicianList, magicianButton, gemumuButton, gemumuCount, magicianCount, storeSound events = get_events() for event in events: if event.type == SDL_QUIT: Game_FrameWork.quit() elif (event.type, event.key) == (SDL_KEYDOWN, SDLK_ESCAPE): Game_FrameWork.change_state(Title_State) elif (event.type, event.key) == (SDL_KEYDOWN, SDLK_i): storeSound.play() if(ui.storeCheck == False): ui.storeCheck = True else: ui.storeCheck = False elif (event.type, event.key) == (SDL_KEYDOWN, SDLK_1): if(player.mp - lizardMpValue > 0 and ui.storeCheck == False): lizardList.append(Lizard(player.x)) lizardCount += 1 player.mp -= lizardMpValue elif(ui.storeCheck == True and ui.money > 100 ): ui.money -= 100 for lizard in lizardList: lizard.maxHp += 100 lizard.hp = lizard.maxHp elif (event.type, event.key) == (SDL_KEYUP, SDLK_2): if(player.mp - gemumuMpValue > 0 and ui.storeCheck == False): gemumuList.append(Gemumu(player.x)) gemumuCount += 1 player.mp -= gemumuMpValue elif(ui.storeCheck == True and ui.money > 200 ): ui.money -= 200 for gemumu in gemumuList: gemumu.maxHp += 100 gemumu.hp = gemumu.maxHp elif (event.type, event.key) == (SDL_KEYUP, SDLK_3): if(player.mp - magicianMpValue > 0 and ui.storeCheck == False): magicianList.append(Magician(player.x)) magicianCount += 1 player.mp -= magicianMpValue elif(ui.storeCheck == True and ui.money > 400 ): ui.money -= 400 for magician in magicianList: magician.maxHp += 100 magician.hp = magician.maxHp elif (event.type, event.key) == (SDL_KEYUP, SDLK_4): if(ui.storeCheck == True and ui.money > 100 ): ui.money -= 100 for lizard in lizardList: lizard.att += 50 elif (event.type, event.key) == (SDL_KEYUP, SDLK_5): if(ui.storeCheck == True and ui.money > 200 ): ui.money -= 200 for gemumu in gemumuList: gemumu.att += 50 elif (event.type, event.key) == (SDL_KEYUP, SDLK_6): if(ui.storeCheck == True and ui.money > 300 ): ui.money -= 300 for magician in magicianList: magician.att += 50 elif (event.type) == SDL_MOUSEMOTION: if(87 <= event.x and event.x <= 113 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - lizardMpValue > 0): ui.LizardFrame = 27 else: ui.LizardFrame = 54 elif(117 <= event.x and event.x <= 143 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - gemumuMpValue > 0): ui.GemumuFrame = 27 else: ui.GemumuFrame = 54 elif(147 <= event.x and event.x <= 173 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - magicianMpValue > 0): ui.MagicianFrame = 27 else: ui.MagicianFrame = 54 else: ui.LizardFrame = 0 ui.GemumuFrame = 0 ui.MagicianFrame = 0 #UI 위에 마우스를 올려놓은상태에서 왼쪽 버튼을 DOWN 했을경우 elif (event.type, event.button) == (SDL_MOUSEBUTTONDOWN, SDL_BUTTON_LEFT): if(87 <= event.x and event.x <= 113 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - lizardMpValue > 0): lizardButton = True else: ui.LizardFrame = 54 elif(117 <= event.x and event.x <= 143 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - gemumuMpValue > 0): gemumuButton = True else: ui.GemumuFrame = 54 elif(147 <= event.x and event.x <= 173 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - magicianMpValue > 0): magicianButton = True else: ui.MagicianFrame = 54 elif (event.type, event.button) == (SDL_MOUSEBUTTONUP, SDL_BUTTON_LEFT): if(87 <= event.x and event.x <= 113 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - lizardMpValue > 0): lizardButton = False lizardList.append(Lizard(player.x)) lizardCount += 1 player.mp -= lizardMpValue elif(117 <= event.x and event.x <= 143 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - gemumuMpValue > 0): gemumuButton = False gemumuList.append(Gemumu(player.x)) gemumuCount += 1 player.mp -= gemumuMpValue elif(147 <= event.x and event.x <= 173 and 18 <= 600 - event.y and 600 - event.y <= 58): if(player.mp - magicianMpValue > 0): magicianButton = False magicianList.append(Magician(player.x)) magicianCount += 1 player.mp -= magicianMpValue else: player.handle_events(event)
def collision(): # ---------------- global dragonCount, lizardList, dragonList, lizardCount, player, portal, gemumuList, gemumuCount global magicianCount, magicianList, ui if collide(portal, player) and dragonCount == 0: if lizardCount > 0: for lizard in lizardList: lizardList.remove(lizard) lizardCount -=1 if gemumuCount > 0: for gemumu in gemumuList: gemumuList.remove(gemumu) gemumuCount -=1 if magicianCount > 0: for magician in magicianList: magicianList.remove(magician) magicianCount -=1 Game_FrameWork.change_state(Title_State) return if (lizardCount == 0 and gemumuCount == 0 and magicianCount == 0 ): for dragon in dragonList: if( dragon.state != dragon.ATTACK and collide(player, dragon) and player.state != player.DIE ): dragon.state = dragon.ATTACK dragon.frame = 0 elif( dragon.state == dragon.ATTACK and collide(player, dragon) and dragon.frame == dragon.frameNum[dragon.ATTACK] - 1): player.hp -= dragon.att dragon.frame = 0 print(player.hp) elif( dragon.state == dragon.ATTACK and True != collide(player, dragon) ): dragon.state = dragon.RUN dragon.frame = 0 if( dragonCount == 0): for lizard in lizardList: lizard.state = lizard.RUN for magician in magicianList: magician.state = magician.RUN for gemumu in gemumuList: gemumu.state = gemumu.RUN if( dragonCount > 0 and lizardCount > 0): for dragon in dragonList: for lizard in lizardList: if( collide(lizard, dragon) == True ): if(lizard.state == lizard.RUN): lizard.state = lizard.ATTACK lizard.frame = 0 elif(lizard.state == lizard.ATTACK): if(lizard.frame == lizard.frameNum[lizard.ATTACK]-1): dragon.hp -= lizard.att lizard.frame = 0 print("dragon hp : ", dragon.hp) if(dragon.state == dragon.STAND or dragon.state == dragon.RUN): dragon.state = dragon.ATTACK dragon.frame = 0 elif(dragon.state == dragon.ATTACK): if(dragon.frame == dragon.frameNum[dragon.ATTACK]-1): lizard.hp -= dragon.att dragon.frame = 0 print("lizard hp : ", lizard.hp) if( gemumuCount > 0 and dragonCount > 0): for dragon in dragonList: for gemumu in gemumuList: if( collide(gemumu, dragon) == True ): if(gemumu.state == gemumu.RUN): if( gemumu.waveState == 0 ): gemumu.setMonsterX(dragon.x) gemumu.createEnergyWave() gemumu.state = gemumu.ATTACK elif(gemumu.state == gemumu.ATTACK): if( gemumu.waveState == 0 ): gemumu.setMonsterX(dragon.x) gemumu.createEnergyWave() if(gemumu.frame == gemumu.frameNum[gemumu.ATTACK]-1): dragon.hp -= gemumu.att gemumu.frame = 0 print("dragon hp : ", dragon.hp) if( collideDefend(gemumu, dragon) == True ): if(dragon.state == dragon.STAND or dragon.state == dragon.RUN): dragon.state = dragon.ATTACK dragon.frame = 0 elif(dragon.state == dragon.ATTACK): if(dragon.frame == dragon.frameNum[dragon.ATTACK]-1): gemumu.hp -= dragon.att dragon.frame = 0 print("gemumu hp : ", gemumu.hp) if( magicianCount > 0 and dragonCount > 0): for dragon in dragonList: for magician in magicianList: if( collide(magician, dragon) == True ): if(magician.state == magician.RUN): if( magician.fireState == 0 ): magician.createFire(dragon.x, dragon.y) magician.state = magician.ATTACK elif(magician.state == magician.ATTACK): if( magician.fireState == 0 ): magician.createFire(dragon.x, dragon.y) magician.state = magician.ATTACK if(magician.frame == magician.frameNum[magician.ATTACK]-1): dragon.hp -= magician.att magician.frame = 0 print("dragon hp : ", dragon.hp) if( collideDefend(magician, dragon) == True ): if(dragon.state == dragon.STAND or dragon.state == dragon.RUN): dragon.state = dragon.ATTACK dragon.frame = 0 elif(dragon.state == dragon.ATTACK): if(dragon.frame == dragon.frameNum[dragon.ATTACK]-1): magician.hp -= dragon.att dragon.frame = 0 print("magician hp : ", magician.hp)
import Game_FrameWork import pico2d pico2d.open_canvas(1900, 800) import Start_State Game_FrameWork.run(Start_State) pico2d.close_canvas()