GameMaker:mask_indexって結局何に使うのよ・・・の巻

GameMaker:mask_indexって結局何に使うのよ・・・の巻

結局お前は何なんだ

どうも、Master.typeXです。
今回はGameMakerの技術的備忘録のようなものです。
しかし、げむくりさん
GameMakerのタグを消すのは勘弁してほしかった・・・
ClickTeamFusion2.5は残ってるのに・・・。

さて本題。
GameMakerで予め用意されている変数で
「mask_index」ってのがあります。

ざっくり説明すると
現在のスプライトの当たり判定を
読み取ったり変更できる変数です。

オブジェクトのイベント内に
記述すれば変更出来る・・・と、思っていたら
どうやら変更はできるんだけど
もしかしなくてもオブジェクトの
Same As Spriteの設定が最優先されるくさいです。
※あくまでも作者の作り上そうなってる可能性があるので要検証


//ダメージボックスのstepイベント
//ダメージボックスのデフォルトのスプライトは s_playerdamagebox1
//コリジョンマスク設定は Same As Sprite
//follow = プレイヤーオブジェクト
if (follow.canshagami){
sprite_index = s_playerdamagebox1;
mask_index = s_playerdamagebox1;
}
else {
sprite_index = s_playerdamagebox2;
mask_index = s_playerdamagebox2;
}

と、書き込んだ場合
プレイヤーオブジェクトのcanshagamiが
無効になればsprite_indexとmask_indexは
変更される・・・と思いきや
sprite_indexは目に見えて変わるものの
mask_indexは変更されるが前述の通り
オブジェクトのSame As Sprite設定の方が優先されてしまいます。

そのせいで現在制作中のゲームのダメージ判定が
すっごく怪しいものになっていました。

そのため、記述が長くて面倒くさい
collision_rectangleを使い、ダメージ判定を
作ることになってしまいまして・・・。
いや、コッチのほうがぶっちゃけ正確です。
記述が長ったらしくてあんまり使いたくないだけです。

結局、mask_indexって何に使うのか
さっぱりわからなくなってしまった・・・とさ。

絶対collision_rectangleよりも短く済むのになぁ・・・
うーん、さっきも書いたが要検証。調べてみようか。

報告する

コメント

  • コメント ( 0 )

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

コメントするためには、 ログイン してください。