def run_game(self): settings = Settings() screen = pygame.display.set_mode( (settings.screen_width, settings.screen_height)) scoreboard_1 = ScoreBoard(screen, settings, PlayerSide.LEFT) scoreboard_2 = ScoreBoard(screen, settings, PlayerSide.RIGHT) screen_rect = screen.get_rect() player_one = Player(settings, screen, PlayerSide.LEFT) player_two = Player(settings, screen, PlayerSide.RIGHT) ball = Ball(screen, settings, PlayerSide.LEFT, (screen_rect.centerx, screen_rect.centery), player_one, player_two) box_top = screen_rect.centerx - 25, screen_rect.top + 150, 50, 50 box_mid = screen_rect.centerx - 25, screen_rect.centery - 25, 50, 50 box_down = screen_rect.centerx - 25, screen_rect.top + 500, 50, 50 box_1 = SupriseBox(screen, box_top, (50, 50, 50)) box_2 = SupriseBox(screen, box_mid, (100, 0, 0)) box_3 = SupriseBox(screen, box_down, (0, 0, 100)) while self.run: if self.state: player_one.update_player(settings, PlayerSide.LEFT, game) player_two.update_player(settings, PlayerSide.RIGHT, game) gf.check_event(player_one, player_two, ball, game, scoreboard_1, scoreboard_2, box_1, box_2, box_3) play_button = Button(screen, ResetQuit.RESTART) play_button.prep_msg('Left Player: [SPACE]') restart_button = Button(screen, ResetQuit.RESTART) restart_button.prep_msg('Press ' R' for Restart') quit_button = Button(screen, ResetQuit.QUIT) quit_button.prep_msg("Press 'Q' to Quit") scoreboard_1.score(PlayerSide.LEFT) scoreboard_2.score(PlayerSide.RIGHT) ball.ball_position(GameState.START, player_one, player_two, self.servis, settings, game) gf.update_start_screen(screen, settings, player_one, player_two, ball, play_button, restart_button, quit_button, game, scoreboard_1, scoreboard_2) else: gf.check_event(player_one, player_two, ball, game, scoreboard_1, scoreboard_2, box_1, box_2, box_3) gf.check_score(ball, screen, game, scoreboard_1, scoreboard_2, settings, player_one, player_two) gf.box_timer(box_1, box_2, box_3) player_one.update_player(settings, PlayerSide.LEFT, game) player_two.update_player(settings, PlayerSide.RIGHT, game) player_one.update_player_height(settings, PlayerSide.LEFT) player_two.update_player_height(settings, PlayerSide.RIGHT) gf.check_collision_player(ball, PlayerSide.RIGHT, player_two, player_one, settings) gf.check_collision_player(ball, PlayerSide.LEFT, player_two, player_one, settings) gf.check_collision_down_up(ball, screen) gf.check_suprise(settings, ball, box_1, box_2, box_3) scoreboard_1.score(PlayerSide.LEFT) scoreboard_2.score(PlayerSide.RIGHT) ball.ball_position(GameState.INGAME, player_one, player_two, self.servis, settings, game) gf.update_screen(screen, settings, player_one, player_two, ball, scoreboard_1, scoreboard_2, game, box_1, box_2, box_3)
def __init__(self, home, away, play_by_play=False): self._scoreboard = ScoreBoard(home.getTeamName(), away.getTeamName()) self._hometeam = home self._awayteam = away self._initposs = random.choice([self._hometeam, self._awayteam]) self._play_by_play = play_by_play
from turtle import Screen from time import sleep from player import Player from walls import Walls from aliens import AlienManager, UFO from scoreboard import ScoreBoard import random screen = Screen() screen.setup(width=600, height=600) screen.bgcolor('black') screen.tracer(0) player = Player() scoreboard = ScoreBoard(player=player) walls = Walls() aliens = AlienManager() screen.listen() screen.onkey(player.go_left, 'a') screen.onkey(player.go_right, 'd') screen.onkey(player.shoot, 'space') def transpose(li): transposed_list = [[row[i] for row in li] for i in range(len(li[0]))] return transposed_list
from paddle import Paddle from ball import Ball from scoreboard import ScoreBoard import time screen = Screen() screen.setup(height=600, width=800) screen.bgcolor("Black") screen.title("Pong") screen.tracer(0) screen.listen() rightPaddle = Paddle("right") leftPaddle = Paddle("left") ball = Ball() rightScoreboard = ScoreBoard("right") leftScoreboard = ScoreBoard("left") #screen.update() screen.onkey(leftPaddle.up, "w") screen.onkey(leftPaddle.down, "s") screen.onkey(rightPaddle.up, "Up") screen.onkey(rightPaddle.down, "Down") game_is_on = True while game_is_on: time.sleep(ball.move_speed) screen.update() ball.move() #collision with wall
from turtle import Screen from paddle import Paddle from ball import Ball from scoreboard import ScoreBoard import time screen = Screen() screen.bgcolor("black") screen.setup(800, 600) screen.title("Pong") screen.tracer(0) paddle = Paddle((350, 0)) paddle2 = Paddle((-350, 0)) ball = Ball() scoreboard_l = ScoreBoard((350, 260)) scoreboard_r = ScoreBoard((-350, 260)) screen.listen() screen.onkey(paddle.up, "Up") screen.onkey(paddle.down, "Down") screen.onkey(paddle2.up, "w") screen.onkey(paddle2.down, "s") game_is_on = True while game_is_on: time.sleep(0.2) screen.update() ball.move() if ball.ycor() > 280 or ball.ycor() < -280: ball.bounce_y()
from random import randint from scoreboard import ScoreBoard screen = Screen() screen.setup(600, 600) screen.title("Pong Game") screen.bgcolor("black") screen.tracer(0) end_point=3 # pad init pad1 = Pad() pad1.goto(-280, 0) pad2 = Pad() pad2.goto(280, 0) ball = Ball() scoreboard = ScoreBoard() # controls screen.listen() screen.onkey(pad1.up, "w") screen.onkey(pad1.down, "s") screen.onkey(pad2.up, "Up") screen.onkey(pad2.down, "Down") # main game while loop game_is_over = False while not game_is_over: sleep(.01) ball.move() if ball.xcor() > 295: scoreboard.pad1_scores() ball.restart()
import telegram from telegram import InlineKeyboardButton, InlineKeyboardMarkup, ReplyKeyboardRemove from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters, CallbackQueryHandler, ConversationHandler) logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO) logger = logging.getLogger(__name__) from private import TOKEN, TOKEN_TESTING from scoreboard import ScoreBoard TESTING = True scoreboard = ScoreBoard(TESTING) CURRENT_TRANSACTION = {} """ { 'id': tg_id of the affected person, 'value': change in points, 'description': description, 'can_confirm': tg_id of person allowed to confirm_cb, 'confirmed': False } """ USER_SELECT, VALUE, SIGN, DESCRIPTION, CONFIRM = range(5) AGREE_TOS, JOIN = range(2)
from turtle import Screen from scoreboard import ScoreBoard from paddle import Paddle from ball import Ball import time screen = Screen() screen.bgcolor("black") screen.title("Pong") screen.setup(600, 600) screen.tracer(0) l_score = ScoreBoard(screen_side="left") r_score = ScoreBoard(screen_side="right") l_paddle = Paddle((-280, 0)) r_paddle = Paddle((280, 0)) ball = Ball() screen.listen() screen.onkey(l_paddle.go_up, "w") screen.onkey(l_paddle.go_down, "s") screen.onkey(r_paddle.go_up, "Up") screen.onkey(r_paddle.go_down, "Down") while True: time.sleep(ball.ball_speed) if ball.xcor() >= 290: l_score.update_score() ball.refresh(side="right") elif ball.xcor() <= -290: r_score.update_score() ball.refresh(side="left")
def game(): ball_vel = 8 player_vel = 15 is_running = True player = Paddle((WIDTH//2)-(SIZE*4), HEIGHT-SIZE*3) ball = Ball(player.get_rect().centerx, player.get_rect().top - SIZE) scoreboard = ScoreBoard() clock = pygame.time.Clock() bricks = [] hearts = [] def make_bricks(): for i in range(5): for j in range(WIDTH//(BRICK_WIDTH+SIZE//2)-2): brick_x = (j+1)*(BRICK_WIDTH+SIZE//2) + SIZE brick_y = (i+4)*BRICK_HEIGHT*3//2 + SCOREBOARD_HEIGHT bricks.append(Brick(brick_x, brick_y, scoreboard.level)) make_bricks() def redraw_window(): window.fill('black') player.draw(window) for brick in bricks: brick.draw(window) ball.draw(window) for bullet in player.bullets: if bullet.check_out_of_window(): player.bullets.remove(bullet) elif bullet.check_brick_collision(bricks, hearts): if len(bricks) == 0: scoreboard.level += 1 ball.reset() player.reset() ball.cooldown(1500) make_bricks() scoreboard.score += 10 player.bullets.remove(bullet) break_sound.play() else: bullet.draw(window, dt*ball_vel) for heart in hearts: heart.move(dt*ball_vel/2) if heart.check_collision(player): scoreboard.life += 1 health_sound.play() hearts.remove(heart) elif heart.check_out_of_window(): hearts.remove(heart) heart.draw(window, heart_img) scoreboard.draw(window) pygame.display.flip() while is_running: dt = clock.tick(FPS) / 16 player.shoot_cooldown -= dt*16 if ball.player_collision(player): blip_sound.play() if ball.brick_collision(bricks, hearts): break_sound.play() scoreboard.score += 10 if len(bricks) == 0: scoreboard.level += 1 ball.reset() player.reset() ball.cooldown(1500) make_bricks() ball.move(dt*ball_vel, dt, blip_sound) if ball.check_dead(): dead_sound.play() ball.reset() player.reset() scoreboard.life -= 1 if scoreboard.life == 0: is_running = False ball.cooldown(1500) redraw_window() for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit() quit() elif event.type == pygame.KEYDOWN: pass key_pressed = pygame.key.get_pressed() if key_pressed[K_RIGHT]: player.right(dt*player_vel) if key_pressed[K_LEFT]: player.left(dt*player_vel) if key_pressed[K_SPACE]: player.shoot(shot_sound)
# import pygame # from pygame.locals import * from enemy import * from pygame.sprite import Group from mario import Mario import game_functions as gf from settings import Settings from scoreboard import ScoreBoard pygame.init() CLOCK = pygame.time.Clock() settings = Settings() display_screen = settings.display_screen pygame.display.set_caption("Super Mario") scoreboard = ScoreBoard(display_screen) mario = Mario(settings, display_screen) enemies = Group() blocks = Group() pipes = Group() poles = Group() flags = Group() fireball = Group() # gf.create_block(settings, display_screen, blocks) # gf.create_pipe(settings, display_screen, pipes) # gf.create_enemy(settings, display_screen, enemies) gf.create_entities(settings, display_screen, blocks, pipes, enemies, poles, flags)
from ball import Ball from scoreboard import ScoreBoard import time screen = Screen() screen.title("Pong") screen.bgcolor("black") screen.setup(width=800, height=600) screen.tracer(0) r_paddle = Paddle((350, 0)) l_paddle = Paddle((-350, 0)) ball = Ball() scoreboard_l = ScoreBoard((-100, 200)) scoreboard_r = ScoreBoard((100, 200)) screen.listen() screen.onkey(r_paddle.go_up, "Up") screen.onkey(r_paddle.go_down, "Down") screen.onkey(l_paddle.go_up, "w") screen.onkey(l_paddle.go_down, "s") game_is_on = True while game_is_on: time.sleep(ball.move_speed) ball.move() if ball.ycor() >= 290 or ball.ycor() <= -290:
def process(q, cmd_thread): # 初始化 pygame.init() updated_frame = False # update a frame settings = Settings("data\program_settings.json") screen = pygame.display.set_mode( (32 * settings.screen_scale + 2 * settings.screen_offset, 28 * settings.screen_scale + 2 * settings.screen_offset)) sbd = ScoreBoard("data\hiscore.csv") passwd = Password(settings, screen) tfunc.print_welcome() team_flights = Group() enemy_flights = Group() team1 = TeamFlight([0.8, 0.8], [3.5, 0.5], [1.5, 1.5], [1.5, 26], settings, screen) team1.print_info() team_flights.add(team1) team2 = TeamFlight([0.8, 0.8], [5.5, 0.5], [5.5, 1.5], [5.5, 26], settings, screen) team2.print_info() team_flights.add(team2) team3 = TeamFlight([0.8, 0.8], [9.5, 0.5], [9.5, 1.5], [9.5, 26], settings, screen) team3.print_info() team_flights.add(team3) team4 = TeamFlight([0.8, 0.8], [11.5, 0.5], [13.5, 1.5], [13.5, 26], settings, screen) team4.print_info() team_flights.add(team4) enemy1 = EnemyFlight([0.8, 0.8], [2, 10], settings, screen, rotate_angle=math.pi / 100) enemy1.set_velocity([0, -0.11]) enemy1.print_info() enemy_flights.add(enemy1) enemy2 = EnemyFlight([0.8, 0.8], [13, 10], settings, screen, rotate_angle=math.pi / 100) enemy2.set_velocity([0, 0.11]) enemy2.print_info() enemy_flights.add(enemy2) enemy3 = EnemyFlight([0.8, 0.8], [2, 18], settings, screen, rotate_angle=math.pi / 100) enemy3.set_velocity([0, -0.11]) enemy3.print_info() enemy_flights.add(enemy3) enemy4 = EnemyFlight([0.8, 0.8], [13, 18], settings, screen, rotate_angle=math.pi / 100) enemy4.set_velocity([0, 0.11]) enemy4.print_info() enemy_flights.add(enemy4) person = Person([0.8, 0.8], [7.5, 0.9], settings, screen) boxes = Boxes(settings, screen) pygame.display.set_caption("Explore Reactor Room") tfunc.update_screen(settings, screen, team_flights, enemy_flights, person, boxes, passwd, sbd) follow_status = False while True: start_time = time.time() period_timeout = True if settings.reset_request: # game reset settings.reset_request = False settings.paused = False settings.init_game_args() if settings.game_mode != 0: # set enemy mode according to game mode settings.enemy_status = settings.game_mode + 3 person.reinit([0.8, 0.8], [7.5, 0.9]) boxes.reinit() team1.reinit([0.8, 0.8], [3.5, 0.5], [1.5, 1.5], [1.5, 26]) team2.reinit([0.8, 0.8], [5.5, 0.5], [5.5, 1.5], [5.5, 26]) team3.reinit([0.8, 0.8], [9.5, 0.5], [9.5, 1.5], [9.5, 26]) team4.reinit([0.8, 0.8], [11.5, 0.5], [13.5, 1.5], [13.5, 26]) enemy1.reinit([0.8, 0.8], [2, 10], rotate_angle=math.pi / 100) enemy1.set_velocity([0, -0.11]) enemy2.reinit([0.8, 0.8], [13, 10], rotate_angle=math.pi / 100) enemy2.set_velocity([0, 0.11]) enemy3.reinit([0.8, 0.8], [2, 18], rotate_angle=math.pi / 100) enemy3.set_velocity([0, -0.11]) enemy4.reinit([0.8, 0.8], [13, 18], rotate_angle=math.pi / 100) enemy4.set_velocity([0, 0.11]) settings.enemy_status_changed = True passwd.generate_passwd() if settings.run_active and not settings.paused: # 帧开始,执行每一帧的预处理 settings.timer = settings.timer + settings.time_period # 计算时间 if settings.clock_1 > 0: # 计算clock1时间 settings.clock_1 -= 1 else: settings.clock_1 = 30 settings.change_font_color() n_flights = len(team_flights.sprites()) + len( enemy_flights.sprites()) #包含自己一共的飞机数 p_all = [[0, 0] for i in range(n_flights)] p_all_direction = [0 for i in range(n_flights)] index = 0 for team in team_flights.sprites(): p_all[index] = team.get_info()[0] p_all_direction[index] = 0 index = index + 1 for enemy in enemy_flights.sprites(): p_all[index] = enemy.get_info()[0] p_all_direction[index] = enemy.get_direction() index = index + 1 # 更新其它状态 person.move() boxes.update_info(settings, person) settings.all_open = boxes.all_open() if settings.all_open and person.get_info( )[0][1] <= 0.5 and not settings.failed: settings.complete = True elif (settings.timer > 480 or person.get_hp_info()[0] <= 0 or settings.out_times * settings.time_period >= 10.0 ) and not settings.complete: settings.failed = True if settings.complete and settings.game_mode != 0 and not settings.hiscore_recorded: settings.hiscore_recorded = True sbd.set_new_hiscore(settings.game_mode - 1, settings.complete_time) # set hiscore sbd.write_hiscore() # 敌方无人机行动 if settings.enemy_status == 0: # 敌方无人机悬停 for enemy in enemy_flights.sprites(): enemy.set_velocity([0, 0]) enemy.move() if settings.enemy_status_changed: enemy.set_attack_args(2.4, 5.0) enemy.attack(person, boxes) elif settings.enemy_status == 1: # 敌方无人机直线运动 for enemy in enemy_flights.sprites(): enemy.move() if settings.enemy_status_changed: enemy.set_attack_args(2.4, 5.0) enemy.attack(person, boxes) elif settings.enemy_status == 2: # 敌方无人机圆周运动 for enemy in enemy_flights.sprites(): enemy.move_circle() if settings.enemy_status_changed: enemy.set_attack_args(2.4, 5.0) enemy.attack(person, boxes) elif settings.enemy_status == 3: # 敌方无人机逼近己方无人机 for enemy, team in zip(enemy_flights.sprites(), team_flights.sprites()): team_p_flight = team.get_info()[0] enemy_p_flight = enemy.get_info()[0] team_p_flight = [ team_p_flight[0] + random.random() * 4 - 2, team_p_flight[1] + 1.5 + random.random() * 4 - 2 ] [vx, vy] = apf.compute_next_step(settings, enemy_p_flight, team_p_flight, [], 0, [], is_team=False) enemy.set_max_v( settings.enemy_mission_args[1][3]) # medium velocity enemy.set_velocity([vx / 1.5, vy / 1.5]) enemy.move() if settings.enemy_status_changed: enemy.set_attack_args(2.4, 5.0) enemy.attack(person, boxes) elif settings.enemy_status >= 4 and settings.enemy_status <= 6: # 执行任务状态 difficulty = settings.enemy_status - 4 # 0:简单 1:中等 2:困难 enemy_mission_args = settings.enemy_mission_args[difficulty] is_first = True flight_index = 0 p_offset = [[0, enemy_mission_args[6]], [enemy_mission_args[6], 0], [-enemy_mission_args[6], 0], [0, -enemy_mission_args[6]]] if boxes.is_in_protect_box( person.get_info()[0]): # 在保护区域内,一架逼近人,三架逼近己方无人机 for enemy, team in zip(enemy_flights.sprites(), team_flights.sprites()): if is_first: is_first = False person_p_flight = person.get_info()[0] enemy_p_flight = enemy.get_info()[0] person_p_flight = [ person_p_flight[0] + random.random() * 4 - 2, person_p_flight[1] + 2 + random.random() * 2 * enemy_mission_args[1] - enemy_mission_args[1] ] [vx, vy] = apf.compute_next_step(settings, enemy_p_flight, person_p_flight, [], 0, [], is_team=False) else: team_p_flight = team.get_info()[0] enemy_p_flight = enemy.get_info()[0] team_p_flight = [ team_p_flight[0] + random.random() * 4 - 2, team_p_flight[1] + 1.5 + random.random() * 2 * enemy_mission_args[1] - enemy_mission_args[1] ] [vx, vy] = apf.compute_next_step(settings, enemy_p_flight, team_p_flight, [], 0, [], is_team=False) enemy.set_max_v(enemy_mission_args[3]) enemy.set_velocity([ vx * enemy_mission_args[0], vy * enemy_mission_args[0] ]) enemy.move() if settings.enemy_status_changed: enemy.set_attack_args(enemy_mission_args[4], enemy_mission_args[5]) enemy.attack(person, boxes) else: # 在保护区域外,四架逼近人 for enemy, team in zip(enemy_flights.sprites(), team_flights.sprites()): person_p_flight = person.get_info()[0] enemy_p_flight = enemy.get_info()[0] person_p_flight = [ person_p_flight[0] + p_offset[flight_index][0] + random.random() * 2 * enemy_mission_args[2] - enemy_mission_args[2], person_p_flight[1] + p_offset[flight_index][1] + random.random() * 2 * enemy_mission_args[2] - enemy_mission_args[2] ] flight_index = flight_index + 1 [vx, vy] = apf.compute_next_step(settings, enemy_p_flight, person_p_flight, [], 0, [], is_team=False) enemy.set_max_v(enemy_mission_args[3]) enemy.set_velocity([ vx * enemy_mission_args[0], vy * enemy_mission_args[0] ]) enemy.move() if settings.enemy_status_changed: enemy.set_attack_args(enemy_mission_args[4], enemy_mission_args[5]) enemy.attack(person, boxes) settings.enemy_status_changed = False # 己方无人机行动 all_reach_final_goal = True # 假定都达到了密码箱位置(final pos) if follow_status: # 跟随主飞机模式 is_first = True index = 0 for team in team_flights.sprites(): if not team.reach_final_goal(): all_reach_final_goal = False if is_first: is_first = False p_flight = team.get_info()[0] if p_flight[1] >= 26.1: #达成目标,恢复原队形 follow_status = False p_goal = [1.5, 26] team.set_goal(p_goal) continue p_leader = p_flight p_goal = [tcmd_temp_line, 27.1] team.set_goal(p_goal) else: if not follow_status: #恢复现场 p_goal[0] = p_goal[0] + 4 team.set_goal(p_goal) continue p_flight = team.get_info()[0] team.set_goal([p_leader[0], p_leader[1] - index]) index = index + tcmd_follow_length p_goal = team.get_goal() [vx, vy] = apf.compute_next_step(settings, p_flight, p_goal, p_all, n_flights, p_all_direction, is_team=True) [vx, vy] = [ vx + random.random() * 0.02 - 0.01, vy + random.random() * 0.01 - 0.005 ] # 速度扰动 team.set_velocity([vx, vy]) team.move() team.heal(person, boxes) else: # 独立模式 for team in team_flights.sprites(): if not team.reach_final_goal(): all_reach_final_goal = False p_flight = team.get_info()[0] p_goal = team.get_goal() [vx, vy] = apf.compute_next_step(settings, p_flight, p_goal, p_all, n_flights, p_all_direction, is_team=True) [vx, vy] = [ vx + random.random() * 0.02 - 0.01, vy + random.random() * 0.01 - 0.005 ] # 速度扰动 team.set_velocity([vx, vy]) team.move() team.heal(person, boxes) if not settings.crack_qrcode: boxes.crack(all_reach_final_goal) # 全部到达目的地,破译密码 # 获取终端指令 if not q.empty(): try: [cmd_content, cmd_args] = q.get().split(' ', 1) if cmd_content == "thenextcontentisthepassword": # 玩家输入密码 try: tcmd_passwd = cmd_args if passwd.check_passwd(tcmd_passwd): print("[Boxes] Password correct.") settings.get_key = True else: print("[Boxes] Password error, try again.") except: print("[Boxes] Password input error.") elif cmd_content == "y": # 更改己方飞机目标点(Y轴平齐)策略 try: [cmd_arg_1, cmd_arg_2] = cmd_args.split(' ') new_goal = float(cmd_arg_1) interval = float(cmd_arg_2) except: new_goal = float(cmd_args) interval = 4.0 x_offset = 7.5 - interval * 1.5 print( "[Team] Move team flights to Y-line %.3f m with interval %.3f m ." % (new_goal, interval)) for team in team_flights.sprites(): team.set_goal([x_offset, new_goal]) x_offset += interval elif cmd_content == "f": # 跟随主飞机运动策略 [cmd_arg_1, cmd_arg_2] = cmd_args.split(' ') tcmd_temp_line = float(cmd_arg_1) tcmd_follow_length = float(cmd_arg_2) print( "[Team] Follow the leader team flight with X-line %.3f m and interval %.3f m ." % (tcmd_temp_line, tcmd_follow_length)) follow_status = True elif cmd_content == "s": # 即刻在前方悬停策略 follow_status = False ahead_length = float(cmd_args) print("[Team] Hover at %.3f m ahead ." % (ahead_length)) for team in team_flights.sprites(): temp_goal = team.get_info()[0] team.set_goal( [temp_goal[0], temp_goal[1] + ahead_length]) else: print("[Team] Unknown command.") except: print("[Team] Command error.") if settings.crack_qrcode and not settings.get_key: cmd_thread.input_passwd_request() # input the password in tcmd tfunc.update_screen(settings, screen, team_flights, enemy_flights, person, boxes, passwd, sbd) # Watch update frame time (for test) #if updated_frame: # updated_frame = False # print("Update time: %.3fs" % (time.time() - start_time)) # 等待更新时间 while period_timeout: tfunc.check_events(settings, screen, cmd_thread, team_flights, enemy_flights, person, sbd) if time.time() - start_time >= 0.04: period_timeout = False updated_frame = True
from turtle import Screen from paddle import Paddle from scoreboard import ScoreBoard import time screen = Screen() screen.setup(width=800, height=600) screen.bgcolor('black') screen.title('My paddle game') screen.tracer(0) paddle_1 = Paddle(1) paddle_2 = Paddle(2) scoreboard_1 = ScoreBoard(1) scoreboard_2 = ScoreBoard(2) screen.listen() screen.onkey(Paddle.up, 'Up') screen.onkey(Paddle.down, 'Down') # screen.onkey(paddle.left, 'Left') # screen.onkey(paddle.right, 'Right') scoreboard_1.write(f'Score: {scoreboard_1.score}', align='center', font=('Arial', 16, 'normal')) scoreboard_2.write(f'Score: {scoreboard_2.score}', align='center', font=('Arial', 16, 'normal')) game_is_on = True while game_is_on: screen.update()
import turtle import time from paddle import Paddle from ball import Ball from scoreboard import ScoreBoard screen = turtle.Screen() screen.setup(width=800, height=600) screen.bgcolor("black") screen.title("Pong") screen.tracer(-1) r_paddle = Paddle((350, 0)) l_paddle = Paddle((-360, 0)) ball = Ball() com_score = ScoreBoard(40) user_score = ScoreBoard(-40) time.sleep(0.1) screen.update() screen.listen() game_is_on = True while game_is_on: screen.update() time.sleep(0.02) r_paddle.move() l_paddle.move() # Listen Event
def main(): screen = Screen() screen.setup(width=800, height=600) screen.bgcolor('black') screen.title('Pong Game') screen.tracer(0) score_board = ScoreBoard() score_board.display_score() CenterLine() player1 = Paddle((350, 0)) player2 = Paddle((-350, 0)) ball = Ball() screen.onkey(player1.move_up, 'Up') screen.onkey(player1.move_down, 'Down') screen.onkey(player2.move_up, 'w') screen.onkey(player2.move_down, 's') screen.listen() def game_continue(): if messagebox.askretrycancel("Game Over!!", "Wanna play again? "): screen.clear() main() running = True while running: time.sleep(0.05) screen.update() if score_board.check_win(): score_board.final_result() ball.hideturtle() break if ball.ispoint_wait: if ball.point_wait < 50: ball.point_wait += 1 continue else: ball.ispoint_wait = False ball.point_wait = 1 screen.update() ball.move() # for not repeating collision if the distance is small if player1.is_collided: if player1.safe_count < 5: player1.safe_count += 1 else: player1.is_collided = False player1.safe_count = 1 elif player2.is_collided: if player2.safe_count < 5: player2.safe_count += 1 else: player2.is_collided = False player2.safe_count = 1 if ball.ycor() > 265 or ball.ycor() < -270: ball.wall_collision() if ball.xcor() < 370 and ball.distance( player1) < 45 and not player1.is_collided: ball.paddle_collision() ball.hit_count += 1 ball.hit = True player1.is_collided = True elif ball.xcor() > -370 and ball.distance( player2) < 45 and not player2.is_collided: ball.paddle_collision() ball.hit_count += 1 ball.hit = True player2.is_collided = True if ball.hit_count % 2 == 0 and ball.hit_count != 0 and ball.hit: if ball.bounce_speed < 0: ball.bounce_speed -= 1.5 else: ball.bounce_speed += 1.5 ball.bounce_x = ball.bounce_speed ball.hit = False if ball.xcor() > 380: score_board.clear() score_board.score1 += 1 score_board.display_score() ball.ispoint_wait = True ball.ball_reset() elif ball.xcor() < -380: score_board.clear() score_board.score2 += 1 score_board.display_score() ball.ispoint_wait = True ball.ball_reset() screen.update() time.sleep(1) game_continue() screen.bye() screen.exitonclick()
def __init__(self): self.ball = Ball(400, 300, 3, 4, "random", 1) #self.ball.launch() self.paddle1 = Paddle(10, 250) self.paddle2 = Paddle(BOARD_LENGTH - 10 - PADDLE_LENGTH, 250) self.scoreboard = ScoreBoard()
def __init__(self): """Initialization of game, and game resources.""" pygame.init( ) # Background settings needed for Pygame to work properly. self.settings = Settings( ) # Settings instance. Initialization of Settings' arguments in AlienInvasion class. # self.song_file = "YOUR_CHOICE.wav" # Addition of background music. # pygame.mixer.music.load(self.song_file) # pygame.mixer.music.play(-1) self.screen = pygame.display.set_mode( (self.settings.screen_width, self.settings.screen_height )) # Create display window (surface), to display game elements. pygame.display.set_caption( "Emoji Invasion") # Surface is updated after each loop. self.stats = GameStats(self) # GameStats instance. self.sb = ScoreBoard(self) # ScoreBoard instance. # Prepare welcoming page with user input. ---> pygame_functions.py screenSize(self.settings.screen_width, self.settings.screen_height) # Create welcoming page. newcloud = make_cloud( self.settings.cloud, self.settings.screen_width, self.settings.screen_height, self.settings.clouds_total) # Create clouds on welcoming page. today = date.today() # Prepate current date for welcoming page. year = today.year month = today.month day = today.day self.full_date = f"{day}/{month}/{year}" local_time = makeLabel(self.full_date, 30, 50, 20, "black", "comicsans") showLabel(local_time) welcome_label = makeLabel("Welcome to Emoji Invasion!", 70, (self.settings.screen_width / 2), (self.settings.screen_height / 4), "black", "comicsans") showLabel(welcome_label) # Show welcoming message. instruction_label = makeLabel("Please, enter your name:", 40, (self.settings.screen_width / 2), (self.settings.screen_height / 2) - 20, "black", "comicsans") showLabel(instruction_label) # Show instructions. word_box = makeTextBox(self.settings.screen_width / 2, self.settings.screen_height / 2 + 20, 200, 0, "...", 0, 30) showTextBox(word_box) # Ask user for username. self.entry = textBoxInput(word_box) # Save user input. self.buttons = Button(self) # Button instance. self.buttons.prep_menu_msgs("Select game difficulty:", f"Good luck, {self.entry}! :)") self.buttons.prep_difficulty_level_msgs("Easy", "Normal", "Hard") # self.buttons.prep_ib_msg("Info") self.ship = Ship( self ) # Ship instance. Self gives access Ship to AlienInvasion's resources. self.po = Powers(self) # Power instance. self.clouds = pygame.sprite.Group( ) # Sprite for clouds. Draws clouds on screen. self.bullets = pygame.sprite.Group( ) # Sprite for bullets. Draws and uupdates at each pass through of main loop. self.enemy_bullets = pygame.sprite.Group( ) # Sprite for 2nd line of aliens. self.aliens = pygame.sprite.Group() # Spire for 1st line of aliens. self._create_fleet_of_enemy_bullet( ) # Helper method to create a fleet of 2nd line aliens. self._create_fleet( ) # Helper method to create a fleet of 1st line aliens. self._create_cloud() # Helper method to create a group of clouds.
from scoreboard import ScoreBoard from turtle import Screen from snake import Snake from food import Food import time screen = Screen() screen.setup(600,600) screen.bgcolor("black") screen.title("Snake Game") screen.tracer(0) screen.listen() snake = Snake() food = Food() score_board = ScoreBoard() screen.onkey(snake.up, "Up") screen.onkey(snake.down, "Down") screen.onkey(snake.left, "Left") screen.onkey(snake.right, "Right") game_is_on = True while game_is_on: screen.update() time.sleep(0.06) snake.move() #Detect the collison with food if snake.head.distance(food) < 15:
from turtle import Screen from Snake import Snake import time from Food import Food from scoreboard import ScoreBoard sc = Screen() sc.setup(width=600, height=600) sc.bgcolor("black") sc.tracer(0) sc.title("Snake Game") snake = Snake() food = Food() scores = ScoreBoard() sc.listen() sc.onkey(snake.up, "Up") sc.onkey(snake.down, "Down") sc.onkey(snake.left, "Left") sc.onkey(snake.right, "Right") game = True while game: sc.update() time.sleep(0.1) snake.move() if snake.head.distance(food) < 15:
from turtle import Screen from snake import Snake import time from food import Food from scoreboard import ScoreBoard s = Screen() s.setup(width=600, height=600) s.bgcolor("black") s.title("Snake Game") sn = Snake() food = Food() scr_brd = ScoreBoard() s.listen() s.onkey(sn.up, "Up") s.onkey(sn.down, "Down") s.onkey(sn.left, "Left") s.onkey(sn.right, "Right") s.tracer(0) game_on = True while game_on: s.update() time.sleep(0.1) sn.move() if sn.head.distance(food) < 15: food.refresh() sn.extender() scr_brd.adder()
def setUp(self): self.sboard = ScoreBoard() self.sboard.is_exist = 1
from snake import Snake from food import Food from scoreboard import ScoreBoard from turtle import Screen import time screen = Screen() screen.setup(width=600, height=600) screen.bgcolor("black") screen.title("My Snake Game") screen.tracer(0) snake = Snake() food = Food() score = ScoreBoard() screen.listen() screen.onkey(snake.up, "Up") screen.onkey(snake.down, "Down") screen.onkey(snake.left, "Left") screen.onkey(snake.right, "Right") while snake.game_is_on: screen.update() time.sleep(0.05) snake.move() #Detect collision with food. if snake.head().distance(food) < 15: food.refresh()
from food import Food from scoreboard import ScoreBoard from border import Border import time BORDER = 10 screen = Screen() screen.setup(width=600, height=630) screen.bgcolor("black") screen.title("Snake Game") screen.tracer(0) border = Border() snake = Snake() food = Food() sb = ScoreBoard() screen.listen() screen.onkey(snake.up, "Up") screen.onkey(snake.down, "Down") screen.onkey(snake.left, "Left") screen.onkey(snake.right, "Right") game_on = True while game_on: screen.update() time.sleep(0.08) snake.move() # detect food collision