OnePoint


【ワンポイント!】 便利な使い方、豆知識、簡単なTips等があったらぜひ書き込んでください。



■目次


GMLのTips

指定桁数を 0埋めする文字列を作りたい

C言語で言う、sprintf() で "%06d" するようなことをしたい場合の実装方法。 string_format()string_replace_all()を使用することで実装可能。

// 123 を "000123" にするサンプルコード
var num = 123; // 0埋めしたい数値
var digit = 6; // 桁数
var s = string_format(num, digit , 0); // 123 を "   123" に変換
s = string_replace_all(s, " ", "0"); 空白文字を "0" に変換。"000123" になる

使いやすいログ出力関数を作る

GameMakerには sprintf() がないので、数値を string() で1つずつ変換する必要があります。 これだとログを出力するのが不便。 そこで以下のようなスクリプトを作るとログ出力が簡単にできます。

// ■スクリプト名を trace とする
var s = "";
for(var i = 0; i < argument_count; i++) {
  s += string(argument[i]); // 引数すべてを文字列として結合する
}

show_debug_message(s);

呼び出し側は以下のように記述します

var i = 123;
var s = "test";
var f = 456.789;

// "123test456.789" という文字を出力する
trace(i, s, f));

GMLエディタの文字サイズ変更

F7キーで文字サイズを小さくする。F8キーで文字サイズを大きくする

文字列検索

  • Ctrl + F:現在の編集中のスクリプトから文字列を検索する
  • Ctrl + Shift + F :すべてのスクリプトから文字列を検索する

定義ジャンプ

  • F1:定義ジャンプ。標準機能であればヘルプファイルを開く

コードの折りたたみ

#region から #endregion の部分は折りたたみが可能になる

文字列を数値に変換したい

整数値であれば int64()、実数値であればreal()で変換することができます

定数を使いたい

#macro というキーワードで定数が作れます。

#macro PLAYER_MOVE_SPEED (5) // プレイヤーの移動速度

この値を使う場合は指定した名前をそのまま使います

speed = PLAYER_MOVE_SPEED;

#macro はコンパイル時に置き換えを行なっているだけなので、文字列や関数を指定することもできます

#macro APP_NAME "GMS2の大冒険" // ゲームタイトル名
#macro IS_PRESS_ACTION keyboard_check_pressed(ord("Z")) // 決定キー

#macro の定義はどのファイルに記述しても良いみたいですが、できるだけ1つのファイルにまとめておいた方が良さそうです。

最初に実行されるルーム

GameMakerでは、Rooms の一番上に存在するルームをゲーム起動直後に実行します。 例えば以下のようにルームが並んでいると "room_title" が一番最初に実行されます。

Rooms
  +-- room_title
  +-- room_game
  +-- room_ending

別のオブジェクトに値を渡す方法

instance_create_depth()などで生成したインスタンスIDに直接値を渡すことができます

// obj_shotを生成
var _inst = instance_create_depth(x, y, 10, obj_shot);
// 上方向に10の速さで移動させる
_inst.speed = 10;
_inst.direction = 90;

9-slice scalingの実装方法

GMS2の知っていると便利な機能

GMS2: FEATURES YOU MIGHT NOT KNOW ABOUT

ショートカットキー

  • F2:リソースファイル名変更
  • Ctrl + T:リソース検索 (macOSの場合は Cmd + Tab)
  • Ctrl + Tab:Workspace Overview を表示する (macOSの場合は Option + Tab)












===================================
以下の情報は古いものとなっています
===================================


各ステップでのイベントの優先順位

  1. Begin step events(ステップ開始イベント)
  2. Alarm events(アラームイベント)
  3. Keyboard, Key press, and Key release events(キーボード>キー押しイベント>キー上げイベント)
  4. Mouse events(マウスイベント)
  5. Normal step events(通常ステップイベント) (全てのインスタンスの位置が更新されます)
  6. Collision events(衝突イベント)
  7. End step events(ステップ終了イベント)
  8. Drawing events(描画イベント)

実行時の error に関して

  • Unexpected symbol
    • ソースコードをコピー&ペーストしていた場合、全角空白などが混じっていませんか?

日本語ヘルプファイルについて

ここにVer6.0ですが日本語のヘルプファイルがあります。

こちらにもVer4.2ですが日本語のヘルプファイルがあります。


最新の50件を表示しています。 コメントページを参照

  • motion_set(dir, speed) などに出てくる dir は、0で右。反時計回りに見る。270で下となる。 -- 2007-11-06 (火) 01:11:34
  • Windows7においてゲームを終了したのにプロセスが生き残っている場合はSoundsのなか -- 2010-11-27 (土) 11:05:19
  • 途中で送信してしまったorz •Windows7においてゲームを終了したのにプロセスが生き残っている場合はSoundsリソースに問題があるかもしれません。 -- 2010-11-27 (土) 11:06:37
コメント:

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2020-04-09 2020-04-08 2020-04-04 2020-04-02 2020-04-01 2020-03-28 2020-03-27 2020-03-26 2020-03-25 2020-03-24 2020-03-23 2020-03-22

人気の10件

今日の10件



これまでの訪問者: 15648
今日の訪問者: 1
昨日の訪問者: 5
閲覧者: 3