pygame实现点击屏幕一下角色就缓慢朝着那个点移动直至到达那个点停止移动
以下是一个简单的示例代码:
import pygame
pygame.init()
# 设置屏幕大小
screen_width = 800
screen_height = 600
screen = pygame.display.set_mode((screen_width, screen_height))
# 加载角色图片
player_image = pygame.image.load('player.png')
# 定义角色初始位置和移动速度
player_x = screen_width / 2
player_y = screen_height / 2
player_speed = 2
# 定义目标位置和移动距离
target_x = None
target_y = None
distance = None
# 游戏主循环
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
exit()
if event.type == pygame.MOUSEBUTTONDOWN:
# 点击屏幕,设置目标位置
target_x, target_y = event.pos
distance = ((target_x - player_x) ** 2 + (target_y - player_y) ** 2) ** 0.5
# 计算角色移动量
if target_x is not None and target_y is not None:
if distance > 0:
dx = (target_x - player_x) / distance * player_speed
dy = (target_y - player_y) / distance * player_speed
player_x += dx
player_y += dy
distance -= player_speed
# 达到目标位置,停止移动
if distance <= 0:
target_x = None
target_y = None
# 绘制角色和目标位置
screen.fill((255, 255, 255))
screen.blit(player_image, (player_x, player_y))
if target_x is not None and target_y is not None:
pygame.draw.circle(screen, (255, 0, 0), (target_x, target_y), 5)
pygame.display.update()
运行代码后,点击屏幕即可让角色缓慢移动到点击位置。在代码中,我们使用了鼠标点击事件来设置目标位置,然后每帧计算角色移动量,直到到达目标位置为止。同时,我们还在屏幕上绘制了目标位置,以便玩家更好地了解角色的移动目标。
原文地址: https://www.cveoy.top/t/topic/bcOw 著作权归作者所有。请勿转载和采集!