|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
为什么我这个在运行之后,全屏的时候图片会嵌进右侧和下面,调整窗口大小的时候图片移动的范围仍然是原本的范围呢?
import pygame
import sys
from pygame.locals import *
# 初始化
pygame.init() # 初始化模块,这样需要的时候可以随时调用
size = width, height = 1000, 800 # 设置的界面大小
speed = [0, 0] # 设置的乌龟初始移动的速度
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 = [5, 0]
if event.key == K_UP:
speed = [0, -5]
if event.key == K_DOWN:
speed = [0, 5]
# 全屏
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[0] = -speed[0]
if position.top < 0 or position.bottom > height:
speed[1] = -speed[1]
# 填充背景
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)
这个代码缩进缩过头了
这句话我没懂你的意思
|
|