def run_game(): pygame.init() setinit = Game_Settings.Settings_of_Show() screen = pygame.display.set_mode( (setinit.screen_width, setinit.screen_height)) pygame.display.set_caption("联机坦克大战") tank1 = Tank.Tank1(screen) tank2 = Tank.Tank2(screen) bullets1 = Group() bullets2 = Group() start_button = Button.Button(screen, 80, 40, (0, 255, 0), (255, 255, 255), "开始游戏", (500, 200)) settings_button = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "游戏设置", (500, 300)) help_button = Button.Button(screen, 80, 40, (105, 194, 49), (255, 255, 255), "游戏帮助", (500, 400)) game_settings = Game_Settings.Settings(tank_speed=5, bullet_speed=1, bullet_allow_num=1) bullet_speed1 = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "炮弹速度1", (200, 150)) bullet_speed2 = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "炮弹速度2", (500, 150)) bullet_speed3 = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "炮弹速度3", (800, 150)) tank_speed1 = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "坦克速度1", (200, 300)) tank_speed2 = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "坦克速度2", (500, 300)) tank_speed3 = Button.Button(screen, 80, 40, (164, 247, 151), (255, 255, 255), "坦克速度3", (800, 300)) login_name_input = TextBox.TextBox(screen, None, None, 20, "隶书", (0, 0, 0), (255, 255, 255), (500, 300), "输入用户名") password_input = TextBox.TextBox(screen, None, None, 20, "隶书", (0, 0, 0), (255, 255, 255), (500, 300), "输入密码") sound_shoot = pygame.mixer.Sound("music//shoot.wav") flag = None login_name = "wsde" ''' while flag!=login_name: screen.fill(setinit.bg_color) for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: flag = login_name_input.key_down_text(event) print(flag) login_name_input.draw_textbox() pygame.display.flip() flag = None password: str = "mmnf" print(password) while flag != password: screen.fill(setinit.bg_color) for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: flag= password_input.key_down_text(event) password_input.draw_textbox() pygame.display.flip() ''' # 游戏主界面 while True: screen.fill(setinit.bg_color) flag = game_button(start_button, settings_button, help_button) if flag == 0: settings_button.draw() start_button.draw() help_button.draw() if flag == -1: pygame.display.flip() screen.fill(setinit.bg_color) #print("-1") pygame.display.flip() #print(game_settings.tank_speed, game_settings.bullet_speed) score_of_two = Score.Score(screen, tank1, tank2, bullets1, bullets2, setinit) # 进入游戏 main_flag = False while not main_flag: screen.fill(setinit.bg_color) score_of_two.score_change() for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() tank1_control_event(game_settings, tank1, bullets1, screen, sound_shoot) tank2_control_event(game_settings, tank2, bullets2, screen, sound_shoot) score_of_two.score_draw() for i in bullets1.copy(): if i.rect.centerx <= 0 or i.rect.centerx >= 1000: bullets1.remove(i) elif i.rect.centery >= 600 or i.rect.centery <= 0: bullets1.remove(i) for i in bullets1.sprites(): i.draw_bull() for i in bullets2.copy(): if i.rect.centerx <= 0 or i.rect.centerx >= 1000: bullets2.remove(i) elif i.rect.centery >= 600 or i.rect.centery <= 0: bullets2.remove(i) for i in bullets2.sprites(): i.draw_bull() update_screen(tank1, bullets1, tank2, bullets2) main_flag = score_of_two.who_win() pygame.display.flip() score_of_two.who_win() time.sleep(10) if flag == -2: pygame.display.flip() screen.fill(setinit.bg_color) # print("-2") temp_settings = -1 while True: # print("1") if temp_settings == -1: screen.fill(setinit.bg_color) # print("设定难度") bullet_speed1.draw() bullet_speed2.draw() bullet_speed3.draw() tank_speed1.draw() tank_speed2.draw() tank_speed3.draw() temp_settings: int = settings_mode_ui( game_settings, bullet_speed1, bullet_speed2, bullet_speed3, tank_speed1, tank_speed2, tank_speed3) pygame.display.flip() # print(temp_settings) if temp_settings == 1: screen.fill(setinit.bg_color) break if temp_settings == 2: screen.fill(setinit.bg_color) break if temp_settings == 3: screen.fill(setinit.bg_color) break if temp_settings == 4: screen.fill(setinit.bg_color) break if temp_settings == 5: screen.fill(setinit.bg_color) break if temp_settings == 6: screen.fill(setinit.bg_color) break if flag == -3: pygame.display.flip() screen.fill(setinit.bg_color) # print("-2") help_flag = -1 jump_end_button = Button.Button(screen, 40, 50, (164, 247, 151), (255, 255, 255), "结束", (800, 300)) while True: if help_flag == -1: screen.fill(setinit.bg_color) font = pygame.font.SysFont("隶书", 20) text = font.render("服务器端上线后,客户端才可以登录", True, (255, 255, 255), (0, 255, 0)) text_rect = text.get_rect() text_rect.center = screen.get_rect().center screen.blit(text, text_rect) jump_end_button.draw() help_flag = end_help(jump_end_button) pygame.display.flip() if help_flag == 1: break pygame.display.flip()
def rungame(): pygame.init() screen = pygame.display.set_mode((800, 600)) pygame.display.set_caption("xx游戏") pos1 = 1 pos2 = 1 tank1 = Tank.Tank1(screen) tank2 = Tank.Tank2(screen) tank1_bullts = Group() tank2_bullts = Group() screen.fill((230, 230, 230)) while True: screen.fill((230, 230, 230)) tank1.draw_tank() tank2.draw_tank() for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() mykeylist = pygame.key.get_pressed() if mykeylist[pygame.K_UP]: pos1 = 1 tank1.rect.centery -= 1 tank1.img = pygame.image.load("picture/坦克1.png") elif mykeylist[pygame.K_RIGHT]: pos1 = 2 tank1.rect.centerx += 1 tank1.img = pygame.image.load("picture/坦克2.png") elif mykeylist[pygame.K_DOWN]: pos1 = 3 tank1.rect.centery += 1 tank1.img = pygame.image.load("picture/坦克3.png") elif mykeylist[pygame.K_LEFT]: pos1 = 4 tank1.rect.centerx -= 1 tank1.img = pygame.image.load("picture/坦克4.png") elif mykeylist[pygame.K_SPACE]: if tank1_bullts.__len__() < 5: newbullet = Bullet.Bullet(screen, tank1, pos1) tank1_bullts.add(newbullet) if mykeylist[pygame.K_w]: pos2 = 1 tank2.rect.centery -= 1 tank2.img = pygame.image.load("picture/坦克_1.png") elif mykeylist[pygame.K_d]: pos2 = 2 tank2.rect.centerx += 1 tank2.img = pygame.image.load("picture/坦克_2.png") elif mykeylist[pygame.K_s]: pos2 = 3 tank2.rect.centery += 1 tank2.img = pygame.image.load("picture/坦克_3.png") elif mykeylist[pygame.K_a]: pos2 = 4 tank2.rect.centerx -= 1 tank2.img = pygame.image.load("picture/坦克_4.png") elif mykeylist[pygame.K_x]: if tank2_bullts.__len__() < 5: newbullet = Bullet.Bullet(screen, tank2, pos2) tank2_bullts.add(newbullet) if tank1.rect.centery < 0: tank1.rect.centery = 0 if tank1.rect.centery > 600: tank1.rect.centery = 600 if tank1.rect.centerx < 0: tank1.rect.centerx = 0 if tank1.rect.centerx > 800: tank1.rect.centerx = 800 tank1_bullts.update() for i in tank1_bullts.sprites(): i.draw_bullet() for i in tank1_bullts.copy(): if i.rect.centerx <= 0 or i.rect.centerx >= 800: tank1_bullts.remove(i) elif i.rect.centery >= 600 or i.rect.centery <= 0: tank1_bullts.remove(i) if tank2.rect.centery < 0: tank2.rect.centery = 0 if tank2.rect.centery > 600: tank2.rect.centery = 600 if tank2.rect.centerx < 0: tank2.rect.centerx = 0 if tank2.rect.centerx > 800: tank2.rect.centerx = 800 tank2_bullts.update() for i in tank2_bullts.sprites(): i.draw_bullet() for i in tank2_bullts.copy(): if i.rect.centerx <= 0 or i.rect.centerx >= 800: tank2_bullts.remove(i) elif i.rect.centery >= 600 or i.rect.centery <= 0: tank2_bullts.remove(i) score_change(tank1_bullts, tank2_bullts, tank1, tank2) pygame.display.flip()