python - Python3 PyGame如何移动图像?
问题描述
我尝试使用.blit
但出现问题,这里是一个截图来进一步解释我的问题:
在我的鼠标之后,图像似乎在屏幕上弄脏了
代码:
import pygame
import keyboard
black = (0,0,0)
white = (255, 255, 255)
pygame.init()
screen = pygame.display.set_mode((600, 400))
screen.fill(black)
screen.convert()
icon = pygame.image.load('cross.png')
pygame.display.set_icon(icon)
pygame.display.set_caption('MouseLoc')
cross = pygame.image.load('cross.png')
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT or keyboard.is_pressed(' '):
running = False
mx, my = pygame.mouse.get_pos()
screen.blit(cross, (mx-48, my-48))
print(my, mx)
pygame.display.update()
解决方案
修复给定代码中的缩进,它将所有重要的东西放在 while 循环之外。您还可以添加一个 def 语句,在每次移动精灵时重绘窗口:
def redraw_game_window():
screen.fill(black)
screen.blit(•••)
pygame.display.update()
并将其放在程序的末尾,在将所有fill
和blit
语句放入 def 语句之后:
redraw_game_window()
该语句将使您更容易在屏幕上对更多项目进行 blit,并且这将防止对象在屏幕上绘制,因为每次移动对象时屏幕都会更新。
推荐阅读
- php - 我想调用一个 php 函数,即使页面/浏览器关闭,它也会调用其他函数在后台运行
- android - 为查看寻呼机提供 ID 按钮之类的项目不起作用
- python - 如何在 python 中解析 json?
- ruby-on-rails - Ruby on Rails 在请求期间崩溃
- javascript - 如何在简单的网格中显示图像,而不是来自数据库的 Web 网格。以字节数组格式保存的图像
- mongodb - 1 次尝试耗时 3 毫秒后失败并出现错误 1117
- angular - 在角度树中为页面导航添加路由
- javascript - 如何使用新的传入值验证输入框(存在于 Div 容器中)值?
- ruby-on-rails - 端口 80 显示已在使用,而没有进程正在运行
- numpy - 将值附加到 numpy 数组