GameMaker 日本語掲示板

GMLの豆知識

17 コメント
views
16 フォロー

GMLについての豆知識を集積するスレッドです。
ざっくりとしたテーマ設定ですが、とりあえずゆるく始めます。
「えっそうなの?それマニュアルに書いてあった?早く教えてよ!」
と感じたことなどをメモっぽく投稿しようかなと思います。

※実際マニュアルに書いてあるか無いかは、重視しません。ゆるくいきます。

asa
作成: 2021/11/26 (金) 22:06:04
最終更新: 2021/11/26 (金) 22:18:13
通報 ...
1

instance_activate/deactivate関数の中で、regionは一番遅い。
ソース:https://forum.yoyogames.com/index.php?threads/instance_activate-deactivate_region.91279/#post-547929

2

タイルはビューの外では自動的に非アクティブ化される。
ソース:https://forum.yoyogames.com/index.php?threads/instance_activate-deactivate_region.91279/#post-547947

3

さらに言うと、ただの静止画・背景ならば、頂点バッファを使って描画すれば一番軽い。
ソース:https://forum.yoyogames.com/index.php?threads/instance_activate-deactivate_region.91279/#post-547947

(頂点バッファとか、未だに全然分からない)

4
生高橋 2021/12/01 (水) 15:13:28 >> 2

自分1ルームで全ステージをタイルで表現してるんですけど、なんでこんなに軽いんだろっておもってましたがそういうことだったんですね

5

1ルームでやってたんですね!

6
生高橋 2021/12/02 (木) 20:44:45 >> 4

効率がむっちゃ悪い作り方してました...

7

タイルで衝突判定するってチュートリアル動画があって、どんな利点があるんだろうと思ってましたが、そこが利点なのでしょうねー。

8
asa 2021/12/06 (月) 12:22:16 修正

spriteのcollision maskは、ビルトイン変数と連動して拡大縮小、反転する。
これらを独自の変数に代えたら、描画と当たり判定を分離できる。

キャラを左右反転する場合。
image_xscaleは1のままにする。
独自の変数(例:xscale)で-1を指定し、draw_sprite_extで描画する。

xscale = -1;
draw_sprite_ext(spr_player, image_index, x, y, xscale, yscale, 0, c_white, 1);



反転でcollision maskがずれないようにするには、
collision maskの幅を偶数pxにして原点を中央にする方法でも可(たぶん)。
画像

10

collision mask の幅は偶数だと自分は引っかからなくなったので、それで。

うっかりしがちのところでは、当たり判定の回転は direction ではなく image_angle に適用されるというところでしょうか。

draw_sprite_ext(sprite_index,0, x, y, image_xscale, image_yscale, direction, c_white, image_alpha);

とすると当たり判定は回転しないっていう

11

そうですね、sprite描画の角度はimage_angle、移動量に関する角度はdirectionですので、
そのようにビルトイン変数を使い分けるといいと思います。

9

draw_healthbar()という、HPバーを描画するための関数がある。

12

スクリプト関数とメソッドの違いについて。メモリの確保に違いがあるという話。
まだ私には「日本語でOK」な感じがありますが。理解したい。

https://forum.yoyogames.com/index.php?threads/functions-cause-memory-leak.91875/#post-551875

13
asa 2021/12/21 (火) 18:13:33 修正

メソッドについて。

/// @func abc();
abc = function() {
 // code
}

このように、

/// @func abc();

を書くと、
メソッド変数に色が付き、F1キーで定義箇所を開けるようになる。
(Ctrl+Tで検索もできるようになるっぽい)

14
生高橋 2021/12/21 (火) 18:31:49 >> 13

これはえぐい豆知識ですね!

15

ただ同名のものがあるとそっちが開いたりしますね
可能なら名前がダブらないようにした方がいいと思います

16
生高橋 2021/12/21 (火) 18:58:11 >> 14

そこですよね...