GameMaker 日本語掲示板

【解決済】YoutubeでARPG制作チュートリアルに出てきたnot set before reading it.のエラー解消について / 5

13 コメント
views
17 フォロー
5

asaさんコメントありがとうございます。
direction自体はそのままでも使えるのですね。今後の制作時の参考にします。ありがとうございます。

コードが書かれているのはscriptファイルの中です。

またこれとは別のscriptファイルにmacroでフレームレートの数値を設定しています。
さらにエラーの指示を受けてないオブジェクト内のファイルを書いている状態です。
Objectに対してEvents>Createイベントが下記のとおりです。

image_speed = 0;
hSpeed = 0;
vSpeed = 0;
speedWalk = 2.0;

spriteRun = sPlayerRun;
spriteIdle = sPlayer;
localFrame = 0;

またステップイベントが下記のとおりです。

//Get Player Input
keyLeft = keyboard_check(vk_left)  || keyboard_check(ord("A"));
keyRight = keyboard_check(vk_right) || keyboard_check(ord("D"));
keyUp = keyboard_check(vk_up) || keyboard_check(ord("W"));
keyDown = keyboard_check(vk_down) || keyboard_check(ord("S"));
keyActivate = keyboard_check_pressed(vk_space);
keyAttack = keyboard_check_pressed(vk_shift);
keyItem = keyboard_check_pressed(vk_control);

inputDirection = point_direction(0,0,keyRight-keyLeft,keyDown-keyUp);
inputMagnitude = (keyRight - keyLeft != 0)||(keyDown - keyUp != 0);


//Movement
hSpeed = lengthdir_x(inputMagnitude * speedWalk, inputDirection);
vSpeed = lengthdir_y(inputMagnitude * speedWalk, inputDirection);

x += hSpeed;
y += vSpeed;

//Updete Sprite Index
var _oldSprite = sprite_index;
if (inputMagnitude != 0)
{
	direction = inputDirection
	sprite_index = spriteRun;
} else sprite_index = spriteIdle;
if (_oldSprite != sprite_index) localFrame = 0;

//Update Image Index
PlayerAnimateSprite();

情報量が多くなり、またエラー該当箇所ではないため記載を割愛しましたがなにか解決のご参考にしていただきたく思います。
お忙しいところ本当にありがとうございます。

通報 ...
  • 6

    コードが書かれているのはscriptファイルの中ということですね。

    関数を呼び出してる部分を探しますと、PlayerAnimateSprite(); があります。
    PlayerAnimateSprite がスクリプトファイルの名前でしょうか?
    その前提で以下に説明しますと、このスクリプトを開いて、

    function PlayerAnimateSprite() {
     code
    }
    

    という形になっていなければ、この形にしてください。コードを全部コピペして

    function PlayerAnimateSprite() {
     
    }
    

    の中に入れるだけでOKです。

    そしてRunするとどうなるでしょうか?

  • 7

    asaさんありがとうございます!できました!

    どのようにお伝えしていいかわかりませんが、本当に嬉しいです!
    1週間近くいろいろ変化させてみたり、全て打ち直したりしてだめだったので、本当に助かりました!
    夜遅くにありがとうございます!