
結局お前は何なんだ
どうも、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 )
トラックバックは利用できません。
この記事へのコメントはありません。