|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
正确的运行应当是:图片在矩形框内不停的运动。
但本段代码运行时,鼠标在矩形内移动,图片才运动,
鼠标停止或鼠标在框外时,图片都不动。
请教大侠指导一下,错在哪里?
import pygame
import sys
pygame.init()
size=width,height=600,400
speed = [-2,1]
bg = (255,255,255)
#创建窗口,返回Surface对象
screen = pygame.display.set_mode(size)
pygame.display.set_caption("初次见面,多多关照")
turtle = pygame.image.load("cat.jpg")
position = turtle.get_rect()
#获取图片的位置矩形
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
position = position.move(speed)
if position.left<0 or position.right>width:
turtle = pygame.transform.flip(turtle,True,False)
#True水平翻转
speed[0] = -speed[0]
if position.top<0 or position.bottom>height:
speed[1] = -speed[1]
screen.fill(bg)
screen.blit(turtle,position)
#更新图象
pygame.display.flip()
#双缓冲
pygame.time.delay(10)
你这个把后面的代码都放在事件的循环里面了,如果没有事件就不会更新画面和其它操作了,你可以改成这样
- import pygame
- import sys
- pygame.init()
- size=width,height=600,400
- speed = [-2,1]
- bg = (255,255,255)
- #创建窗口,返回Surface对象
- screen = pygame.display.set_mode(size)
- pygame.display.set_caption("初次见面,多多关照")
- turtle = pygame.image.load("cat.jpg")
- position = turtle.get_rect()
- #获取图片的位置矩形
- while True:
- for event in pygame.event.get():
- if event.type == pygame.QUIT:
- sys.exit()
- position = position.move(speed)
- if position.left<0 or position.right>width:
- turtle = pygame.transform.flip(turtle,True,False)
- #True水平翻转
- speed[0] = -speed[0]
-
- if position.top<0 or position.bottom>height:
- speed[1] = -speed[1]
- screen.fill(bg)
- screen.blit(turtle,position)
- #更新图象
- pygame.display.flip()
- #双缓冲
- pygame.time.delay(10)
复制代码
|
|