gml - 如何修复 GameMaker Studio 2 中的“image_xscale”错误?
问题描述
我在 GameMaker Studio 2 中制作游戏,但遇到了问题。当物体向左或向右转动时,他正在向前推。但他必须像第一次一样处于相同的位置。
我尝试使用此代码:
/// @description vaksciojimas
// You can write your code in this editor
key_right = keyboard_check(vk_right);
key_left = keyboard_check(vk_left);
key_jump = keyboard_check_pressed(vk_space);
var move = key_right - key_left;
hsp = move * walksp;
vsp = vsp + grv;
if (place_meeting(x,y+1,obj_wall)) && (key_jump) {
vsp = -8;
}
//horizontaliai susiduria
if (place_meeting(x+hsp,y,obj_wall)) {
while (!place_meeting(x+sign(hsp),y,obj_wall)) {
x = x + sign(hsp);
}
hsp = 0;
}
x = x + hsp;
//vertikaliai susiduria
if (place_meeting(x,y+vsp,obj_wall)) {
while (!place_meeting(x,y+sign(vsp),obj_wall)) {
y = y + sign(vsp);
}
vsp = 0;
}
y = y + vsp;
//animacijos
if (!place_meeting(x,y+1,obj_wall)) {
sprite_index = sprite_jumping_player;
image_speed = 0;
if (sign(vsp) > 0){
image_index = 1;
}
else {
image_index = 0;
}
}
else {
image_speed = 1;
if (hsp == 0) {
sprite_index = sprite_player;
}
else {
sprite_index = sprite_runing_player;
}
}
if (hsp != 0) { // hsp = horizontal speed
image_xscale = sign(hsp);
}
当我这样做时,我正在看这个教程:https ://www.youtube.com/watch?v=fCeyiEcWRAS&t=8s
解决方案
从外观上看,我认为这与精灵的起源有关。
有了原点,你就决定了精灵的中心在哪里。此时它应该旋转/转身等。
您需要在精灵本身(不是精灵编辑器,只是精灵图像)中设置原点,因为默认情况下它设置在左上角。将其设置在中间中心是通常的方法。原点显示为“+”符号。
推荐阅读
- java - 在Java中从文件迭代到二维数组?
- javascript - 从人员选择器中获取值并将其添加到人员列中的列表中
- python - 为什么 pandas 的 style.format 在 spyder 中不起作用?
- android - 在 Android 中编译 Ionic (Angular) 应用程序时出现问题
- netlogo - Netlogo 要求海龟到达第一个目的地后去第二个目的地
- c++ - 不同核心上的观察者设计模式说(观察者和主题作为单独的进程)(C++)
- django - docker 镜像中的客户端如何知道另一个 docker 镜像中的服务器的 IP 地址?
- python - Quantlib-python 没有定义构造函数
- google-apps-script - 谷歌应用脚本上传文件不起作用
- javascript - Uncaught ReferenceError: require is not defined 错误信息