【发布时间】:2018-04-28 10:50:34
【问题描述】:
我刚刚用 pygame 完成了我的第二个 Python 游戏,但这次我遇到了一个新问题。当我在另一台电脑上尝试游戏时,游戏速度非常快,比预期的要快得多,我试图调整 FPS 但没有帮助。当我已经设置了所有设置(如移动速度和游戏 FPS)时,如何解决这个问题?为什么还会发生这种情况?
import pygame
from settings import Settings
import game_functions as gf
from ship import Ship
from pygame.sprite import Group
from game_stats import Stats
from animation import spriteSheet
from scoreboard import ScoreBoard
from button import Button
def run_game():
pygame.init()
icon = pygame.image.load('icons/icon.png')
pygame.display.set_icon(icon)
so_settings = Settings()
screen = pygame.display.set_mode((so_settings.screen_width, so_settings.screen_height))
pygame.display.set_caption('Space Vikers')
last_tick = 0
ship = Ship(screen, so_settings)
stats = Stats(so_settings, screen)
bullets = Group()
bullets_enemy = Group()
enemies = Group()
explosion = Group()
exploAni = spriteSheet("animations/explosion.png", 5, 4)
sb = ScoreBoard(so_settings, screen, stats, bullets, ship)
btn = Button(screen)
gf.start_background_music()
clock = pygame.time.Clock()
FPS = 120
while True:
clock.tick(FPS)
while stats.main_menu:
gf.move_bg(so_settings, screen, sb, stats, last_tick)
btn.draw_button()
pygame.display.flip()
gf.check_event(screen, so_settings, ship, bullets, sb, stats, btn)
if stats.game_active:
gf.update_enemy_bullet(bullets_enemy, so_settings, screen)
gf.update_bullet(bullets, so_settings, sb)
gf.generate_enemy(so_settings, stats, last_tick, screen, ship, enemies, bullets_enemy, bullets, explosion, sb)
gf.update(so_settings, screen, bullets, enemies, bullets_enemy, ship, exploAni, explosion, stats, sb)
gf.move_bg(so_settings, screen, sb, stats, last_tick)
gf.check_event(screen, so_settings, ship, bullets, sb, stats, btn)
else:
gf.move_bg(so_settings, screen, sb, stats, last_tick)
gf.check_event(screen, so_settings, ship, bullets, sb, stats, btn)
run_game()
【问题讨论】:
-
@kabanus 我不认为这符合重复的条件。
-
@Coal_ 那里的答案不是解决了在不同计算机上以不同速度运行的 pygame 吗?
-
@kabanus 是的,但是您链接到的问题是关于一个非常具体的示例,而且这肯定不是唯一一次提出这个问题。
-
@Coal_ 据我所知,所有 pygames 都是这个问题的具体例子。副本必须提供一个好的答案,而不是逐字匹配问题 - 它旨在提供帮助,这就是 OP 可以提出异议的原因。如果你找到了一个更好的骗子 - 无论如何,链接它。
标签: python python-3.x python-2.7 pygame game-development