gpt4 book ai didi

python - 如何使用pygame.surface.scroll()?

转载 作者:行者123 更新时间:2023-11-28 17:15:18 27 4
gpt4 key购买 nike

我刚刚了解到 pygame.surface.scroll() 以及我从 pygame 文档中了解到 scroll() 用于移动表面而无需重建背景再次覆盖旧表面,就像 pygame.rect.move_ip() 但对于表面。

反正我不知道怎么用,pygame文档里的例子对我这个初学者来说很难看懂,找了半天也没找到有用的东西看懂如何使用它。

这是我的代码。

import pygame
from pygame.locals import*

screen=pygame.display.set_mode((1250,720))
pygame.init()
clock=pygame.time.Clock()
boxx=200
boxy=200
image = pygame.Surface([20,20]).convert_alpha()
image.fill((255,255,255))
while True :
screen.fill((0,0,0))
for event in pygame.event.get():
if event.type==pygame.QUIT :
pygame.quit()
quit()
image.scroll(10,10)
screen.blit(image,(boxx,boxy))
pygame.display.update()
clock.tick(60)

最佳答案

编辑:您的 imagescreen 变量是倒退的。我敢肯定,这也会让您感到困惑。

您的问题可能是您正在尝试滚动全黑背景。它可能正在滚动,只是您不知道而已,因为您使用 blit() 在屏幕上绘制的白框是静止的。

尝试使用您可以看到滚动的内容,例如图像文件。如果你想移动白框,你可以添加一个计数器作为速度变量。阅读本文,然后运行它。

import pygame
from pygame.locals import*
screen=pygame.display.set_mode((1250,720))
pygame.init()
clock=pygame.time.Clock()
boxx=200
boxy=200
image = pygame.Surface([20,20]).convert_alpha()
image.fill((255,255,255))
speed = 5 # larger values will move objects faster
while True :
screen.fill((0,0,0))
for event in pygame.event.get():
if event.type==pygame.QUIT :
pygame.quit()
quit()
image.scroll(10,10)
# I did modulus 720, the surface width, so it doesn't go off screen
screen.blit(image,((boxx + speed) % 720, (boxy + speed) % 720))
pygame.display.update()
clock.tick(60)

我不能确定滚动功能是否有效,请学习使用图像作为背景,以便您可以先看到它在移动。

关于python - 如何使用pygame.surface.scroll()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44610428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com