def create_world(): global _player, _Bg, _Enemy1, timer, GameScore, font, _EBullet, _PBullet, _Life, client_sock, tcp_controller, E_NUM, _Enemy_Data global MyNumber, AnotherPlayer, unpacked_all_player_data, game_data, P_NUM, Player_Count, _LifeList, iScore, bgm global miScore _Bg = BackGround() E_NUM = 0 bgm = load_music('Resource\BGM_B.mp3') bgm.set_volume(64) bgm.repeat_play() _player = Player1(_Bg) _LifeList = [] miScore = CScore() iScore = 0 AnotherPlayer = [] _Enemy1 = [] client_sock = GameData.client_socket MyNumber = GameData.player_number t1 = threading.Thread(target=recv_thread, args=(client_sock, )) GameScore = 0 Player_Count = 0 font = load_font('Resource\ENCR10B.TTF') Player2(0, 0, 0, 0, 0, 0, 0) Enemy1(0, 0, 0, 0, 0) Enemy2(0, 0, 0, 0, 0) EBullet(0, 0) PBullet(0, 0) t1.start()
def create_world(): global _Bg, _Enemy1, timer, GameScore, _EBullet, _PBullet, _Life _Enemy1 = [] #timer = Timer() GameScore = 0 _EBullet = EBullet.get_list() _PBullet = PBullet.get_list()
def create_world(): global _DS, _player, _Bg, _Enemy1, timer, GameScore, font, _EBullet, _PBullet, _Life, client_socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) client_socket.connect((SERVER_IP_ADDR, SERVER_PORT)) _player = Player1() _Bg = BackGround() _DS = DataStruct() _Enemy1 = [] _Life = Life(_player.life) timer = Timer() GameScore = 0 font = load_font('ENCR10B.TTF') _EBullet = EBullet.get_list() _PBullet = PBullet.get_list()
def create_world(): global _player, _Bg, _Enemy1, timer,GameScore, font, _EBullet, _PBullet, _Life,client_sock,tcp_controller,E_NUM, _Enemy_Data _Bg = BackGround() E_NUM =0 _player = Player1(_Bg) _Enemy1 = [] _Life = Life(_player.life) #timer = Timer() client_sock = GameData.client_socket #tcp_controller = TcpContoller() readystate = 0 #client_sock = tcp_controller.tcp_client_init() t1 = threading.Thread(target=recv_thread, args=(client_sock,)) t1.start() readystate = 0 GameScore =0 font = load_font('ENCR10B.TTF') _EBullet= EBullet.get_list() _PBullet = PBullet.get_list()
def ADD_Bullet(self, PL_X, PL_Y): if self.Whattime >= 2.0: EBullet(self.x, self.y, PL_X, PL_Y) self.Whattime = 0
def game_thread(client_socket, room_number): global main_time room_player = game_sys_main.waitting_room_data[room_number - 1]['player_number'] room_player_data = game_sys_main.all_player_data[room_number] while 1: for i in range(3): if (room_player[i] == -1): break to_all_event[room_player[i]].wait() to_all_event[room_player[i]].clear() frame_time = time.clock() - main_time main_time += frame_time if timer.update(frame_time) == True: # 적 만드는 부분 EnemyDirNum = random.randint(0, 8) if EnemyDirNum <= 3: newEnemy = Enemy1(EnemyDirNum) dis = [] for i in range(3): if (room_player[i] == -1): break dis.append( newEnemy.get_distance( room_player_data['player_x'][i], room_player_data['player_y'][i])) near = dis.index(min(dis)) newEnemy.set_dir(room_player_data['player_x'][near], room_player_data['player_y'][near]) _EnemyList.append(newEnemy) if EnemyDirNum >= 4: newEnemy = Enemy2(EnemyDirNum) dis = [] for i in range(3): if (room_player[i] == -1): break dis.append( newEnemy.get_distance( room_player_data['player_x'][i], room_player_data['player_y'][i])) near = dis.index(min(dis)) newEnemy.set_dir(room_player_data['player_x'][near], room_player_data['player_y'][near]) _EnemyList.append(newEnemy) for i in range(3): if (room_player[i] == -1): break if room_player_data['player_isShoot'][i] == True: newBullet = PBullet(room_player_data['player_x'][i], room_player_data['player_y'][i], room_player_data['player_dir'][i]) _Bullet.append(newBullet) for enemy in _EnemyList: if enemy.ADD_Bullet() == True: newBullet = EBullet(enemy.x, enemy.y) dis = [] for i in range(3): if (room_player[i] == -1): break dis.append( newBullet.get_distance( room_player_data['player_x'][i], room_player_data['player_y'][i])) near = dis.index(min(dis)) newBullet.set_dir(room_player_data['player_x'][near], room_player_data['player_y'][near]) _Bullet.append(newBullet) for enemy in _EnemyList: enemy.update(frame_time) for i in range(3): if (room_player[i] == -1): break if collide2(room_player_data['player_x'][i], room_player_data['player_y'][i], enemy.x, enemy.y): enemy.alive = 0 room_player_data['player_life'][i] -= 1 player = 0 for bullets in _Bullet: bullets.update(frame_time) if bullets.shooter == player: for enemys in _EnemyList: if collide(bullets, enemys): bullets.alive = 0 enemys.alive = 0 room_player_data['Score'] += 300 else: for i in range(3): if (room_player[i] == -1): break if collide2(room_player_data['player_x'][i], room_player_data['player_y'][i], bullets.x, bullets.y): bullets.alive = 0 room_player_data['player_life'][i] -= 1 for enemy in _EnemyList: if enemy.alive == 0: _EnemyList.remove(enemy) for pbullets in _Bullet: if pbullets.alive == 0: _Bullet.remove(pbullets) for ebullets in _Bullet: if ebullets.alive == 0: _Bullet.remove(ebullets) for i in range(3): if (room_player[i] == -1): break to_one_event[room_player[i]].set() gc.collect()
def update(frame_time): global E_NUM ,_Enemy_Data #for enemy in _Enemy1: # enemy.update(frame_time, _player.x, _player.y, _Bg.window_left, _Bg.window_bottom,State) ''' for enemy in _Enemy1 : if collide(enemy, _player): _player.life -=1 _Enemy1.remove(enemy) for ebullets in _EBullet: ebullets.update(frame_time, _player.x, _player.y, _Bg.window_left, _Bg.window_bottom ) PACK_DATA_PBULLET(ebullets) for ebullets in _EBullet : if collide(ebullets, _player): _player.life -= 1 _EBullet.remove(ebullets) for pbullets in _PBullet: PACK_DATA_PBULLET(pbullets) pbullets.update(frame_time,) for pbullets in _PBullet : for enemys in _Enemy1 : if collide(pbullets, enemys): _PBullet.remove(pbullets) _Enemy1.remove(enemys) for enemy in _Enemy1 : if enemy.alive == 0 : _Enemy1.remove(enemy) for pbullets in _PBullet : if pbullets.alive == 0 : _PBullet.remove(pbullets) for ebullets in _EBullet : if ebullets.alive == 0 : _EBullet.remove(ebullets) #SEND_ENEMY_DATA is ENEMY _X,_Y, TYPE E_NUM = struct.unpack('=i', recved_E_NUM)[0] for enemy in range(0, E_NUM) : _Enemy_packed = client_sock.recv(struct.calcsize('=fffi')) _Enemy_Data = DataStruct.unpack_enemy_data(_Enemy_packed) if _Enemy_Data[2] ==1 : newEnemy = Enemy1(_Enemy_Data[0],_Enemy_Data[1], _Bg.window_left, _Bg.window_bottom) if _Enemy_Data[2] ==2 : newEnemy = Enemy2(_Enemy_Data[0],_Enemy_Data[1],_Bg.window_left, _Bg.window_bottom) _Enemy1.insert(_Enemy_Data[3], newEnemy) print('_Enemy1 : ', _Enemy1) for enemy in _Enemy1 : enemy.update() ''' _player.update(frame_time) Player_packed = DataStruct.pack_player_data(_player) client_sock.send(Player_packed) recved_NUM = client_sock.recv(struct.calcsize('=ii')) Recved_Number_Data = struct.unpack('=ii',recved_NUM ) #SEND_ENEMY_DATA is ENEMY _X,_Y, TYPE E_NUM = Recved_Number_Data[0] EB_NUM = Recved_Number_Data[1] #? print('E_NUM ,EB_NUM : ', E_NUM,EB_NUM) for i in range(0, E_NUM) : _Enemy_packed = client_sock.recv(struct.calcsize('=ffffi')) _Enemy_Data = DataStruct.unpack_enemy_data(_Enemy_packed) if _Enemy_Data[2] ==1 : newEnemy = Enemy1(_Enemy_Data[0],_Enemy_Data[1],_Enemy_Data[3], _Bg.window_left, _Bg.window_bottom) newEnemy.update(frame_time,_player.x, _player.y, _Bg.window_left, _Bg.window_bottom,State) if _Enemy_Data[2] ==2 : newEnemy = Enemy2(_Enemy_Data[0],_Enemy_Data[1],_Enemy_Data[3],_Bg.window_left, _Bg.window_bottom) newEnemy.update(frame_time,_player.x, _player.y, _Bg.window_left, _Bg.window_bottom,State) _Enemy1.append(newEnemy) for i in range(0,EB_NUM) : _Bullet_packed = client_sock.recv(struct.calcsize('=fff')) _Bullet_Data = DataStruct.unpack_bullet_data(_Bullet_packed) if _Bullet_Data[0] == 1: #EnemyBullet newEBullet = EBullet(_Bullet_Data[1],_Bullet_Data[2] ) newEBullet.update() _EBullet.append(newEBullet) if _Bullet_Data[0] == 0: # playerBullet pass
def recv_thread(client_sock): global AnotherPlayer, _Enemy1, _EBullet, _Bg, Player_Count, _LifeList, iScore _ETEMP = [] _BTEMP = [] _PTEMP = [] _LTEMP = [] while 1: Player_packed = DataStruct.pack_player_data(_player) client_sock.send(Player_packed) _player.isshoot = False #AllPlayerRECVED START all_player_packed = client_sock.recv( struct.calcsize('=iffffffffffffiiiBBBfffi')) unpacked_all_player_data = DataStruct.unpack_all_player_data( all_player_packed) Player_Count = unpacked_all_player_data['player_count'] iScore = unpacked_all_player_data['Score'] for i in range(unpacked_all_player_data['player_count']): newLIFE = unpacked_all_player_data['player_life'][i] _LTEMP.append(newLIFE) if i != MyNumber: newPlayer = Player2( unpacked_all_player_data['player_x'][i], unpacked_all_player_data['player_y'][i], unpacked_all_player_data['player_dir'][i], unpacked_all_player_data['player_life'][i], _Bg.window_left, _Bg.window_bottom, GameData.waitting_room_data['player_witch_select'][i]) _PTEMP.append(newPlayer) if i == MyNumber: _player.life = unpacked_all_player_data['player_life'][i] AnotherPlayer = _PTEMP _LifeList = _LTEMP if len(_PTEMP) > 0: _PTEMP = [] if len(_LTEMP) > 0: _LTEMP = [] #ALLPlayerRECVED END #GAMEOVER RECVED START packed_is_game_over = client_sock.recv(struct.calcsize('?')) GameData.is_game_over = (struct.unpack('?', packed_is_game_over))[0] if (GameData.is_game_over): print('game_over') return #GAMEOVER RECVED END recved_NUM = client_sock.recv(struct.calcsize('=ii')) Recved_Number_Data = struct.unpack('=ii', recved_NUM) recved_IN_Window_NUM = client_sock.recv(struct.calcsize('=ii')) Recved_IN_Window_Number_Data = struct.unpack('=ii', recved_IN_Window_NUM) # SEND_ENEMY_DATA is ENEMY _X,_Y, TYPEUM = 0 E_NUM = Recved_IN_Window_Number_Data[0] EB_NUM = Recved_IN_Window_Number_Data[1] # ? for i in range(0, E_NUM): _Enemy_packed = client_sock.recv(struct.calcsize('=fffi')) _Enemy_Data = DataStruct.unpack_enemy_data(_Enemy_packed) if _Enemy_Data[2] == 1: newEnemy = Enemy1(_Enemy_Data[0], _Enemy_Data[1], _Enemy_Data[3], _Bg.window_left, _Bg.window_bottom) #newEnemy.update(_player.x, _player.y, _Bg.window_left, _Bg.window_bottom, State) if _Enemy_Data[2] == 2: newEnemy = Enemy2(_Enemy_Data[0], _Enemy_Data[1], _Enemy_Data[3], _Bg.window_left, _Bg.window_bottom) #newEnemy.update(_player.x, _player.y, _Bg.window_left, _Bg.window_bottom, State) _ETEMP.append(newEnemy) _Enemy1 = _ETEMP if len(_ETEMP) > 0: _ETEMP = [] for i in range(0, EB_NUM): _Bullet_packed = client_sock.recv(struct.calcsize('=fff')) _Bullet_Data = DataStruct.unpack_bullet_data(_Bullet_packed) if _Bullet_Data[0] == 1: # EnemyBullet newBullet = EBullet(_Bullet_Data[1], _Bullet_Data[2]) elif _Bullet_Data[0] == 0: # playerBullet newBullet = PBullet(_Bullet_Data[1], _Bullet_Data[2]) #newBullet.update() _BTEMP.append(newBullet) _EBullet = _BTEMP if len(_BTEMP) > 0: _BTEMP = []