アイストマトバズーカのゲーム制作日記

いろいろ超初心者がゲーム制作に挑戦。現在RPGツクールMZでフリーゲーム制作中。フリー素材も作って置いてます。

イベントの画面座標をスクリプトで取得する(; ・`д・´)【RPGツクールMZ】

こんにちは。

 

RPGツクールMZでフリーゲームを制作しようとしてます。今回は少しだけ解説と進捗記事。

 

ちょっと前にプログラミング(JavaScript)の回でゲーム制作のシステム面に取り掛かる前に配列の使い方を知っておきたかったと言いましたが、さっそく使ってみたんですよ。

配列のハナシ↓

上の過去記事で言ったように敵(イベント)の座標を配列に格納したかったのです。

 

先に座標のハナシをしておきますと、RPGツクールMZにはマップ座標と画面座標ってのがありまして、キャラクターがマップ上を動くときはマップの左上を原点とした48×48pxが1マスの座標上を移動しており、これをマップ座標と言ってイベントやキャラクターの位置に関係する処理は基本的にはこの座標を使うものと思います。

(今後アップデートで48×48pxっていうのは変えられるようになるそうです。)

 

画面座標は画面の左上を原点とした1px毎の座標でピクチャの表示なんかはこっちの座標を使います。

 

両者の一番の違いは画面のスクロールに影響を受けるかどうか、です。例えば座標を指定して画像を表示したとき、画面座標ならスクロールの影響を受けません。マップ座標の場合はマップと同様にスクロールの影響を受けます。

 

で、今回欲しいのは敵(イベント)の”画面座標”。値の取得は通常コマンドでできます(けっこう最近知りました)。

f:id:icedtomatobazooka:20220407213229j:plain

ただ、今回は配列に格納するためスクリプトで座標を取得したいんですよね。ネットで調べてみるとマップ座標の取得は結構出てきますが・・・

 

イベントのマップ座標X取得 : $gameMap.event(〇).x

イベントのマップ座標Y取得 : $gameMap.event(〇).y

〇にイベントid

 

前述したように基本的にはマップ座標で制御するものですからなかなか画面座標を取得するスクリプトは発見できず(-_-;) 基本コマンドで取得できるので必要とする人もあまりいないのでしょう。

 

しかしがんばってみつけましたよ。

 

イベントの画面座標X取得 : $gameMap.event(〇).screenX()

イベントの画面座標Y取得 : $gameMap.event(〇).screenY()

〇にイベントid

 

これで取得できます。

 

よーしこれで複数の座標を一気に配列に格納してやるぞ!

 

20くらい行ってみますか。

f:id:icedtomatobazooka:20220407225659j:plain

Javascriptの配列はインデックス(配列の〇番目、という意味?)0からスタートだったと思いますがイベントidは1からスタートなので i の初期値は1であるべきでしょう(たぶん)。

 

 

これでスクリプト使いまくって凄腕ツクラーへの道をまっしぐらだ!

 

 

超絶怒涛のテストプレー↓↓

 

 

 

f:id:icedtomatobazooka:20220407224617j:plain

はい。安定のエラー(´ω`*)

 

 

 

なんでじゃああ(゚Д゚)って思っていろいろ数値入れて試してみたところ どうやら

「あんた20個もイベント配置してないでしょ。」ってことみたいです。

 

 

失礼しました…こんな具合です(´-ω-`)

 

 

らくがき。

f:id:icedtomatobazooka:20220407233140j:plain

そろそろゲームに使う絵の1つでも描こうかと思っているのですがまぁ立ち絵くらいしか描かない(描けない)のでゆっくりでいいか。

 

とりあえずでも画像ファイルを作っておいてイベント等を組みながら気が向いたら差し替えって感じで考えてます(大雑把)。

 

 

 

ランキング参加中です。下のバナーをクリックして頂けるとやる気値が増幅します!!

f:id:icedtomatobazooka:20201229184218j:plainにほんブログ村 ゲームブログ ゲーム制作へ