如何翻转我的玩家精灵而不让它跳得比需要的位置更远?

问题描述 投票:0回答:1

我正在尝试制作一款开放世界的角色扮演游戏。我刚刚开始,我让玩家移动并且动画在空闲动画和行走动画之间变化。然而,我最近刚刚编写了玩家在 x 轴上翻转的代码,这确实有效,但有一个警告。玩家翻转得有点过头了。就像模仿跳远一样。翻转后如何让玩家保持在同一位置?

我尝试过更改播放器的缩放比例。改变播放器的速度。我什至尝试了互联网上推荐的一些代码,这些代码做了一些古怪的事情。我找不到其他人有这个问题。

var move = keyboard_check(vk_right) - keyboard_check(vk_left);
if (move < 0)
{
  sprite_index = spr_char_walking;
  image_xscale = -7;
  image_yscale = 7;// flips the sprite when moving the other way
  
}
else if(move > 0)
{
    sprite_index = spr_char_walking;
    image_xscale = 7;
    image_yscale = 7;
    
}
else
{
  sprite_index = spr_char_idle;
  
  
}
game-development game-maker
1个回答
0
投票

你的精灵的起源在哪里?

默认情况下,新创建的精灵的原点位于左上角。 这是绘制精灵时位于 (x, y) 的“锚点”,其他所有内容都从那里展开。

当你翻转精灵时,你会镜像一切,包括原点的位置。 因此,对于要镜像的精灵,您通常希望原点位于中心。

顶部示例:翻转 Sprite,原点位于左上角 (0, 0)。

Demonstrations of Sprite Flipping

底部示例:翻转相同的 Sprite,但原点移至底部中心

© www.soinside.com 2019 - 2024. All rights reserved.