求助
为什么我这个在运行之后,全屏的时候图片会嵌进右侧和下面,调整窗口大小的时候图片移动的范围仍然是原本的范围呢?import pygame
import sys
from pygame.locals import *
# 初始化
pygame.init() # 初始化模块,这样需要的时候可以随时调用
size = width, height = 1000, 800 # 设置的界面大小
speed = # 设置的乌龟初始移动的速度
bg = (255, 255, 255) # 表示颜色,三个参数都是255时为白色
fullscreen = False
# 创建指定大小的窗口(会返回一个Surface的对象,surface对象是来表示图像的对象)
screen = pygame.display.set_mode(size, RESIZABLE) # RESIZABLE 用来通过拖拽修改窗口大小的
# 设置窗口标题
pygame.display.set_caption("初次见面,请大家多多关照!")
# 加载图片
turtle = pygame.image.load("turtle.png")
# 获得图像的位置矩形(每一个Surface对象都会有一个rect矩形对象,用于表示Surface的矩形区域的位置和大小信息)
position = turtle.get_rect()
l_head = turtle # 加这个是为了在左移的时候也可以改变乌龟朝向
r_head = pygame.transform.flip(turtle, True, False)
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 当我们点击界面上的x时就会写入一个QUIT事件
sys.exit()
if event.type == KEYDOWN:
if event.key == K_LEFT:
turtle= l_head
speed = [-5, 0]
if event.key == K_RIGHT:
turtle= r_head
speed =
if event.key == K_UP:
speed =
if event.key == K_DOWN:
speed =
# 全屏
if event.key == K_ESCAPE:
fullscreen = not fullscreen
if fullscreen:
screen = pygame.display.set_mode((1680, 1050), FULLSCREEN | HWSURFACE) # FULLSCREEN | HWSURFACE 用来设置全屏的
width, height = 1680, 1050
else:
screen = pygame.display.set_mode(size)
# 用户调整窗口尺寸
if event.type == VIDEORESIZE:
size = event.size
width, height = size
print(size)
screen = pygame.display.set_mode(size, RESIZABLE)
# 移动图像
position = position.move(speed)
if position.left < 0 or position.right > width: # 坐标系左上角是(0,0), 右下角为(1000,800)
# 翻转图像
turtle = pygame.transform.flip(turtle, True, False) # 三个参数,第一个参数是对象名,第二个参数是是否水平翻转,第三个参数是竖直翻转
# 反方向移动
speed = -speed
if position.top < 0 or position.bottom > height:
speed = -speed
# 填充背景
screen.fill(bg)
# 更新图像
screen.blit(turtle, position) # 将图像turtle画到另一个图像screen上,尺寸为position
# 更新界面
pygame.display.flip() # 刷新画面,将绘制的画面一次性打印到画面上
# 延迟10ms
pygame.time.delay(10) # 让乌龟跑的稍微的正常一些 本帖最后由 小伤口 于 2021-4-8 15:04 编辑
# 用户调整窗口尺寸
if event.type == VIDEORESIZE:
size = event.size
width, height = size
print(size)
screen = pygame.display.set_mode(size, RESIZABLE)
这个代码缩进缩过头了{:10_257:}
全屏的时候图片会嵌进右侧和下面
这句话我没懂你的意思{:10_245:} 小伤口 发表于 2021-4-8 15:02
这个代码缩进缩过头了
这句话我没懂你的意思
就是图片会跑出去 本帖最后由 小伤口 于 2021-4-10 14:28 编辑
silver-crow 发表于 2021-4-9 14:39
就是图片会跑出去
哎呀,忘记回你了{:10_266:}
嗯,这个问题我其实也没解决{:10_282:}
所以我写的游戏都不准用户防缩大小{:10_315:}
当时我是在移动背景上面那里加了一个{:10_295:}
#更新界面
pygame.display.flip()
pygame.time.delay(10)
虽然他不会跑出去了{:10_329:}
但是每次全屏时,都会重新出现在左上角{:10_272:}
页:
[1]