首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pygame未显示网格或fps计数器

问Pygame未显示网格或fps计数器
EN

Stack Overflow用户
提问于 2017-10-23 19:03:56
回答 1查看 1.5K关注 0票数 1

我正在尝试制作一个rpg,但是当pygame不显示时,我总是得到这个问题。我正在使用youtube视频来帮助我制作这个rpg,但它就是不起作用。创建者制作了一个颜色模块来帮助我,但它就是不起作用。我知道有更好的方法可以让fps计数器改进它。

代码语言:javascript
复制
import pygame, sys, time
from Scripts.UltraColor import *

pygame.init()


cSec = 0
cFrame = 0
FPS = 0

tile_size = 32

fps_font = pygame.font.Font("C:\\Windows\\Fonts\\Verdana.ttf", 20)

def show_fps():
    fps_overlay = fps_font.render(str(FPS), True, Color.Goldenrod)
    window.blit(fps_overlay, (0,0))

def create_window():
    global window, window_height, window_width, window_title
    window_width, window_hight = 800, 600
    window_title = "RPG"
    pygame.display.set_caption(window_title)
    window = pygame.display.set_mode((window_width, window_hight), pygame.HWSURFACE|pygame.DOUBLEBUF)


def count_fps():
    global cSec, cFrame, FPS

    if cSec == time.strftime("%S"):
        cFrame += 1
    else:
        FPS = cFrame
        cFrame = 0
        cSec = time.strftime("%S")

create_window()

isRunning = True

while isRunning:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            isRunning = False

    # LOGIC
    count_fps()

    # Render Graphics
    window.fill(Color.Black)


    # - Render Sinple Terrain Grid
    for x in range(0, 640, tile_size):
        for y in range(0, 480, tile_size):
            pygame.draw.rect(window, Color.White, (x, y, tile_size + 1, tile_size + 1), 1)

    show_fps()

    pygame.display.update


pygame.quit()
sys.exit()
EN

回答 1

Stack Overflow用户

发布于 2017-10-23 19:58:46

您需要在pygame.display.update后面添加括号以调用此函数并更新显示:pygame.display.update()

我还建议使用pygame.time.Clock来限制帧率并获得fps。调用clock.tick(FPS)可以确保游戏的运行速度不会超过此帧速率。在show_fps函数中,您可以只调用clock.get_fps()来获取当前帧速率。

代码语言:javascript
复制
import pygame


def show_fps(window, clock):
    fps_overlay = FPS_FONT.render(str(clock.get_fps()), True, GOLDENROD)
    window.blit(fps_overlay, (0, 0))


pygame.init()

FPS_FONT = pygame.font.SysFont("Verdana", 20)
GOLDENROD = pygame.Color("goldenrod")

tile_size = 32
window = pygame.display.set_mode((800, 600), pygame.HWSURFACE|pygame.DOUBLEBUF)
clock = pygame.time.Clock()
FPS = 60

isRunning = True

while isRunning:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            isRunning = False

    # Render Graphics
    window.fill((50, 50, 50))

    # Render Simple Terrain Grid
    for x in range(0, 640, tile_size):
        for y in range(0, 480, tile_size):
            pygame.draw.rect(
                window, (255, 255, 255),
                (x, y, tile_size+1, tile_size+1), 1)

    show_fps(window, clock)

    clock.tick(FPS)
    pygame.display.update()


pygame.quit()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46887804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档