以下是一个简单的示例代码:

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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录