08/12/11 22:41:52 YYSIE6Pp
普通のターン制ゲームでも、敵がたくさんいたら全員が攻撃し終わるまで待たされるだろ?
と書こうとしたけど、でも全員が歩き終わるのを待ったりはしないよな?と思ったのでちょっと考えてみた。
シレンなり何なり君が参考にしてるゲームで自分と敵の動きをじっくり観察すればわかるはずだけど、
その手のゲームでは1ターンが実際には複数のフェーズから成り立っている。
(1) 自分が行動する(歩く、攻撃する、道具を使うなど)
(2) 敵が歩く(全員同時に)
(3) 敵が攻撃する(一体ずつ順番に)
自分が歩いた時には(1)と(2)が同時に起こるけど、それ以外の行動をとると(1)が終わってから(2)が起こる。
誰も攻撃行動をとらなければ、主人公は立ち止まることなくスムーズに歩き続けられるわけだ。
この辺を踏まえて、歩くのとその他の行動を分けて別々に実行させるようにしたらどうかな。
ただ、敵はあくまで1ターンに「歩く」と「攻撃する」のどちらか片方しかしないと思うので、
どちらの行動をとるかは(2)より前(ひいては主人公が歩き始める時)に決めておく必要がある。
まとめるとこんな感じかな。
・主人公が行動決定したら、その他のキャラ全員がどう行動するか決定。変数にでも覚えておく
・主人公の攻撃行動、終わるまで待つ(攻撃しない場合はすぐ次に進む)
・歩く予定のキャラ全員を同時に歩かせる。全員の行動が終わるまで待つ
・攻撃予定のキャラに、キューを使って順番に攻撃行動を行わせる
・全員行動し終わったら最初に戻る
573:名前は開発中のものです。
08/12/12 00:41:26 YwPJgrfp
攻撃はなるべく隣接したときや一直線上にきたときに行いたいので
行動前に決定するのはちょっと自分の技能じゃ辛いかなぁと…
主人公が行動する→敵:主人公の行動と同時に、攻撃範囲内に主人公がいなければ移動や特殊行動、いる場合は一旦待機
→移動するべき敵が全員移動し終わったら攻撃準備している敵のフェイズに入る→キューを使って順番に攻撃処理→主人公が動ける状態に戻す
として
変数aを用意→a=1の時主人公行動可能状態→主人公行動時にa=2→a=2になったら敵の行動開始(a=2になった際敵の数をbに記録)→
・攻撃範囲内に主人公がいない敵:移動や特殊行動をし、b-=1
・攻撃範囲内に主人公がいる敵:キューを利用して順番に攻撃。何らかの変数等をON状態にしてその敵だけキューに対応させる?>攻撃したらb-=1
b=0になったらa=1に戻して再び主人公行動可能状態に
とこんな感じでいいのでしょうか?
攻撃をする敵に関するキューをどう組めばいいやらよく分からないのですが…
574:名前は開発中のものです。
08/12/12 01:37:09 AbV0Ta9O
攻撃範囲にいたらキューに追加
フェーズが変わったら一個取り出してと処理していけば問題ないんじゃないか
根本的に a が 0,1,2,4 とかビットフラグで管理したいのかもしれないけど
慣れていないならきちんと名前をつけて真偽値でやるべき
フェーズ管理についても同様。変数の状態で管理するのではなく
主人公行動、敵の行動、敵の攻撃 etc とそれぞれフラグ管理するべき
bの意味が果てしなくないように見える
575:名前は開発中のものです。
08/12/12 14:22:36 UTYwgiXi
オブジェクトの親やマスクを途中で変えたいのですがどうやればいいのでしょうか?
576:名前は開発中のものです。
08/12/12 19:19:55 b5nKeRJC
親を変えるのは不可能だけど
マスクはmask_indexに再代入すればできるはず
577:名前は開発中のものです。
08/12/12 21:00:29 6TlHc+FT
すみません
gmkはgmdに変換できないでしょうか
578:名前は開発中のものです。
08/12/12 22:10:49 Vplk2GsR
>>575
object_set_parentで親を変えることはできるが、インスタンスではなく
オブジェクト自体(設計図)に作用するから期待するような結果にはならない。
親を変えたいって質問はたまに見るけど、そういう時はたいてい設計が間違ってるべ。
>>577
LGMでGM7→6に変換できるらしいけど、使ったことないから本当かどうかはわからん。
URLリンク(www.ismavatar.com)
って、gmdってことはさらに6→5に落とさないといけないのか。
互換性ない機能も多いからほとんど無理じゃないかな?
579:名前は開発中のものです。
08/12/12 22:16:46 agcPaJTz
GMで5ボタンマウス等のサイドボタン使う事はできませんか?
580:名前は開発中のものです。
08/12/12 22:59:50 AbV0Ta9O
Help見る限り無理っぽそうだけど
もしデバッグでサイドボタン押したときのmouse_buttonの値が0~3以外だったら
その値を割り当てればいいし、キーコンフィグっぽくするなら
global.mb_side_one |= mouse_bottun
とかすればできそうではあるけど対応していないような気もする
581:名前は開発中のものです。
08/12/12 23:36:54 agcPaJTz
>>580
レスありがとう
デバッグでGM5.3とLGMで確認したところ無反応でした
582:577
08/12/13 00:38:49 K75p9U8G
>>578
ありがとうございます
LGMですね
やってみます
583:582
08/12/13 14:58:29 K75p9U8G
LGMでGM6.1A用に変換しました
URLリンク(www2.uploda.org)
PASSは GT
このobject3の変数 "near"がおかしいです
クリックでobject0を近づけると
ちゃんとスクリプトやCreateイベントで定義してあるのに
Unknown variable near で
エラーになります
バグでしょうか?
584:名前は開発中のものです。
08/12/13 16:00:12 682sG2h4
多分ここだろ。
with (ebul){
move_towards_point((near).x,(near).y,2)
}
with文内の変数は呼び出し元(この場合object3)の変数の意味にならないよ。
ちゃんと other. をつけてやらんと。(詳しくはヘルプ参照)
以下のように修正したらエラーは出なくなったぞ。仕様かどうか分からんが。
move_towards_point((other.near).x,(other.near).y,2)
つーか、こんなことでツール側のバグとか疑うなよ・・・。自分のバグじゃないかw
585:583
08/12/13 16:21:59 K75p9U8G
>>584
wwww
そうでしたね
修正します
586:名前は開発中のものです。
08/12/14 22:59:58 VLzMeB5w
>>585
>wwww
とか
>バグでしょうか?
言い出す前に、テメーの無能を疑えよな
587:名前は開発中のものです。
08/12/15 14:09:14 VQe5+xHL
>>586には同意としても
なんとなく高圧的な人増えたな。嫌味っぽく言ってもなんもならんのに
588:名前は開発中のものです。
08/12/15 18:09:05 6p1v9SNR
質問する側もちょっとは考えろという事でしょう
589:名前は開発中のものです。
08/12/16 11:54:03 Pj6nrR98
RPG的なものを作っているのですが、手に入れたアイテムをアイテム欄などで取得順に表示したり
カーソルが合わさっているとき使用するとそのアイテムの効果が現れたりするにはどうすればいいのでしょうか。
アイテム自体は全部完成しており、アイテム名のスプライトやシステム上の番号等は割り振ってあります。5.3です
590:名前は開発中のものです。
08/12/16 12:21:24 KxWOE/yV
オブジェクト(例えば、主人公のオブジェクトとか)に取得したアイテムを管理する配列を用意して、
取得したアイテム番号を代入していく感じにすればイイのでは?
get_item[0] = 取得したアイテム番号
[]内は取得するに従い数値を上げていけばよい。
配列の長さを調べる術はないので、自分で管理しないといけない。
もしくは、データ構造で map が使えるなら、それを使ってもよい。
たとえば、キーネームをアイテム名、値に所持数とやると管理しやすい。
ただし、mapはキーネームでソートされてしまうんで、取得順となると工夫しないといけないね。
アイテムメニューのシステムは面倒だが地道にやるしかないのでは。
カーソルの操作処理とかも、いちいちオブジェクトを用意してやらないといけない。
アイテム効果を発動させるには、
メニュー欄に表示されるアイテムオブジェクトに、
使用するときのキー入力イベント(mouseクリックボタン等)を持たせて、
そのイベント内で、
・アイテム効果発動
・アイテム消費
の処理を記述していく感じかな。
概念的なことしか書いてないが、参考になれば。
591:名前は開発中のものです。
08/12/17 08:18:19 BlN9VESD
アイテムAを取った時にグローバル変数に1をプラスして、アイテムAの変数にグローバル変数+1を代入。
アイテムを使用した時はグローバル変数から1マイナスする。
ってな感じでどうかな?
592:名前は開発中のものです。
08/12/18 00:08:00 A6CnLTdh
instance_id[] のインデックス使えないかなと思ったけど
これ自体キューになってるんだね。そりゃそうか
593:濱田
08/12/18 18:33:59 5x5AGIoL
ゲーム作成ツールGameMaker で商業ソフトを作成、販売することは合法でしょうか?
またファイナルファンタジータクティクスのようなクォータビューのSRPGは製作可能でしょうか?
594:名前は開発中のものです。
08/12/18 18:49:28 zjRT977K
>>593
課金版なら可能。それと理論上はどんなゲームでも作れる。
595:名前は開発中のものです。
08/12/18 19:00:44 AtKHrczp
えーと変数を使用したアクションを実行すると
ERROR in .....posution 1:UnKnown variable {変数名}
ってでるんですけど原因わかる人いたら教えてください
596:名前は開発中のものです。
08/12/18 19:06:15 uRYQk5PQ
>>595
初期値定義してないんじゃね?
597:名前は開発中のものです。
08/12/18 20:00:57 AtKHrczp
>>596
ゲーム作り初心者ですみません・・・
初期値定義ってなんですか?
598:名前は開発中のものです。
08/12/18 20:23:37 9UDCWn2j
変数に最初の値を定義するってこと
599:名前は開発中のものです。
08/12/18 20:34:28 AtKHrczp
>>599
ありがとうございます。
何とかできました。
600:名前は開発中のものです。
08/12/18 22:15:12 BD5z/Zcu
>>594
非レジスト(Lite)版でも商用利用可だよ。EULA見た限りでは、商用不可のはβ版だけ。
レジストしてないと「GameMakerで作りました」ってロコが出るからカッコ悪いことになるけど。
>>595
その「.....」の中にも割と重要な手がかり(イベント名とか)が含まれてることがあるので
今後はなるべく省略なしで頼む。
601:名前は開発中のものです。
08/12/18 23:23:16 gWEUu2RB
初心者とか変に短文にしようとするから困る
・長文でもいいから情報を小出しにするな
・現在どうなってるのか提示
・目的を明確に
この3つそろそろテンプレに入れた方がいいんじゃないか?
602:名前は開発中のものです。
08/12/18 23:35:13 9UDCWn2j
まあ正論だけど
もう解決したからいいんじゃない
603:名前は開発中のものです。
08/12/19 00:51:49 AK9HTeCg
何がわからないのかわからないもんさ
604:名前は開発中のものです。
08/12/19 01:06:57 QZODxzKf
ゲーム起動時のローディングの時に出せる画像ですが、
あれをアニメ(gif)にしたり複数用意した画像の中からランダムで一枚を表示、などということは可能でしょうか?
605:名前は開発中のものです。
08/12/19 11:57:53 OJi6EA5S
URLリンク(www.uploda.org)
使えるかどうかわからないけど
ポーズのスクリプト書いてみた。
初期値 global.move=0 のあと
このスクリプト読めばば動くはず。
カウントや時間を使ってる、またオブジェクトの生成、消去の部分は別途、
if (global.move =0)
{
~~~~~
}
でくくってあげればいいはず。
606:605
08/12/19 12:03:25 OJi6EA5S
書き忘れてたけどスクリプトの読み込みはkeypress時ね
607:名前は開発中のものです。
08/12/19 20:40:28 7ZgwG0BV
消えるのはや!
ありがたく貰おうと思ったらもう404…
608:濱田
08/12/19 21:11:16 sOxi3S7i
Game Maker 5.3A で作成したゲームをVistaでする事は出来ますか?
609:名前は開発中のものです。
08/12/19 21:12:39 7ZgwG0BV
できるよ。
610:名前は開発中のものです。
08/12/20 10:28:38 rZvj3mwD
>>607
その1
if (global.move = 0)
{
global.move = 1;
global.pause = instance_count;
for(i=0; i<global.pause; i+=1)
{
array_a[i,1] = instance_id[i].gravity;
array_a[i,2] = instance_id[i].gravity_direction;
array_a[i,3] = instance_id[i].hspeed;
array_a[i,4] = instance_id[i].vspeed;
array_a[i,5] = instance_id[i].path_speed;
instance_id[i].gravity = 0;
instance_id[i].gravity_direction = 0;
instance_id[i].hspeed = 0;
instance_id[i].vspeed = 0;
instance_id[i].path_speed = 0;
}
for(i=0; i<8; i+=1)
{
array_b[i,1] = background_hspeed[i];
array_b[i,2] = background_vspeed[i];
background_hspeed[i] = 0;
background_vspeed[i] = 0;
}
}
611:名前は開発中のものです。
08/12/20 10:29:35 rZvj3mwD
その2
else
{
global.move = 0;
for(i=0; i<global.pause; i+=1)
{
instance_id[i].gravity = array_a[i,1];
instance_id[i].gravity_direction = array_a[i,2];
instance_id[i].hspeed = array_a[i,3];
instance_id[i].vspeed = array_a[i,4];
instance_id[i].path_speed = array_a[i,5];
}
for(i=0; i<7; i+=1)
{
background_hspeed[i] = array_b[i,1];
background_vspeed[i] = array_b[i,2];
}
}
書ききれないから2つに分けたけどこれだけ
612:名前は開発中のものです。
08/12/20 21:00:05 4d+YUfVI
ゲームの遷移状態を管理するオブジェクトに
ポーズ状態をループさせるほうがいいと思うんだけどなあ
各インスタンスの変数を一括処理するのは思わぬバグが出るときがあるから
できるだけ避けたほうがいいよ
現にアラーム処理が抜けているような
613:名前は開発中のものです。
08/12/21 11:14:37 PzRsHlBP
instance_activate...とinstance_deactivate...を使う方法もある。
あと、>>31にルーム移動を使ったポーズがある。
614:濱田
08/12/21 13:39:17 OMCEofD9
GMver7で日本語表示するにはどうすればいいでしょうか?
初めてGMでゲーム作成する者ですがバージョン5,3A. 6. 7 .どれを使えばいいでしょうか?
615:名前は開発中のものです。
08/12/21 14:13:03 susUXEb/
あるオブジェクトAにオブジェクトB(いくつもある)が重なった時にEnterを押すと
重なっているBだけが消えるようにしたいのですがどのようにアクションを組めばいいのでしょうか
616:名前は開発中のものです。
08/12/21 15:46:08 xad+zz/A
音ゲーチックな物を作ろうとしているのですが、soundに音楽を入れ再生した場合ズレが生じたりはしないでしょうか。
するとしたらできるだけ軽減する方法はありますか?
617:名前は開発中のものです。
08/12/21 16:03:49 J97WFZEv
>>615
アクションの中にIf there is an objectみたいなのがある。
BのEnterキーアクションの中でそれを使って、Aと重なっていたら自分を消せばいい。
>>614
>1の非公式情報サイトへGo
っていうか、その質問だとすでに7使うこと前提じゃないの?
とりあえずバージョンごとの違いとか、今まで聞いてきたことも
このスレ内にちゃんと情報があるのでまずは頭から読んできて。
618:名前は開発中のものです。
08/12/22 01:31:06 FUN2QKHC
なんか、大雑把な質問になりますけど、
変数を用意していない状態などで
relative用いて変数増やそうとしたり、分母0の割り算とかすると、
エラーメッセージが出て、プレイが中断されますよね?
テストプレイ中、エラーメッセージが出ずに、OS巻き込んで
フリーズしたり電源落ちたりしてしまうことの原因で
考えられることって何があるでしょうか…。
619:名前は開発中のものです。
08/12/22 02:11:18 UfdezWih
OSの種類もGMのバージョンもどんな状況でなるのかも分からず姉妹
620:名前は開発中のものです。
08/12/22 13:45:56 VIUd8eyr
OS:windows xp sp2
CPU:pen4 3Ghz
Memory:2G
GM7 pro
処理落ちなどはなく、いきなりフリーズもしくは電源落ちします。
状況…なんですが、これが分からないんですよ。
1度起きた状況を再度再現しようとしたら、何回やっても全然問題なく動いたりするし。
2Dアクションゲームで、ボス敵が岩を投げるんですが、そのときその岩に対し
主人公キャラがジャンプ斬りをあてた時(その時ボスは防御していました)
フリーズしました。
岩は「敵の攻撃」を親オブジェクトに持っていますが、
それまで何百回と出てきた「敵の攻撃」に対して同じ攻撃を当てた時はそのようなことはなかったです。
何らかの変数がオーバーフロウした時、似たようなことになった気もしますが、
そういうコードもなさそうです。
フリーズしてしまう原因として挙げられる要因(例えばオーバーフロウ等)、
どなたかご存知の方おられないでしょうか…。。
621:名前は開発中のものです。
08/12/22 21:09:57 Ff2Oxw5o
>>620
その処理の中でオブジェクトの生成・削除・変更などしているとしたら
イベントの無限呼び出し(Createイベントの中で同じオブジェクトをCreateするとか)
が原因でスタックオーバーフローすることはあり得る。
あるいはコード的な無限ループとか。それで電源落ちるとまでは考えにくいけどね。
何らかのエフェクトを生成しているとしたら、ビデオドライバとの相性かもしれない。
622:620
08/12/24 13:52:00 j2sRIJLR
遅レスすいません。
無限呼び出しもないと思います。
そうですよね、、コード無限ループの場合、ゲームアプリのみが
シャットダウンするに留まる程度だったような記憶があります。
未だ解決されていないのですが、起こる確率がかなり
低い様子ではあるので、この問題は一旦置いておくことにします。
ありがとうございました。
623:名前は開発中のものです。
08/12/24 19:15:30 Je0ZC97P
前に変数のエラーを書いたものです。
変数の初期値定義のやり方がわからないんですけど、教えてください。
624:名前は開発中のものです。
08/12/24 19:27:04 Xm8ZsJDZ
>>599は何だったんだ
625:名前は開発中のものです。
08/12/25 00:32:19 lTYGyE3i
非公式情報サイト10回読破して来い
626:名前は開発中のものです。
08/12/25 01:47:33 LZR7eQes
何も置いてない部屋で「そのボールを四つ『A』って書いてある箱に入れといて」なんて言われても困るでしょう。
カラの入れ物を前もって用意しておかなきゃいけない
初期値定義なんて難しく(?)いうと混乱するかもしれないけど、
要は使いたい変数があるなら数値代入とかする前に数値0で変数を用意しておけ、ってこと。
オブジェクト「箱」の変数Aに+2とかしたいんだったら
「箱」のクリエイトイベントかどこかに「変数Aを0として用意」しておかないとAが見当たらないなんてことになってエラーが起きる。
627:名前は開発中のものです。
08/12/25 19:40:35 wKjFbyzV
>>624
前は何故かGM5から7に変えたらできるようになったから
解決と思ってました・・
>>626
オブジェクトが作られたときに発生するイベントに変数のアクションで
変数を0にして入れたら
解決しました。 教えてくれて助かりました。
ありがとうございます。
628:名前は開発中のものです。
08/12/25 23:16:41 FQPSIRUG
イベントとアクションで書いたものをGMLコードとして見ることはできますか?
629:名前は開発中のものです。
08/12/25 23:56:07 lTYGyE3i
ObjectのShow Informationってボタンで見れたような気がする
630:名前は開発中のものです。
08/12/26 15:57:01 PhPwcMia
これってコンピューター言語を使って自分でプログラム組めたりするの?
それと他のソフトとリンクしたりできる??
そういうのを後々やっていきたいんだけど
631:RMT-WM
08/12/26 16:33:47 K4aSBGcm
<a href="URLリンク(blog.rmt-wm.com)">RMT-WMのブログ</a> ページへようこそ!
632:名前は開発中のものです。
08/12/26 19:46:25 KU6Gan+K
>>629
やっぱそれぐらいしかないすか
633:名前は開発中のものです。
08/12/26 21:37:08 L5Xtp1pR
>>630
GameMaker だけでは、Windows APIやプログラミング言語用のライブラリを直接使うようなプログラムは無理。
あくまでゲーム製作用ツールだからね。
ほかのソフトというか、ほかの言語(C++とか)で作ったDLLを呼び出すことは可能なので、
自作プログラムや、自作DLLで制御可能な他のソフトとの連携は可能。
なもんで、WindowsAPI とリンクさせることももちろん可能で、
例えばダイアログボックスをつくって、
そこからGameMakerでつくった自作ゲームに制御を加えるなんてことも出来る。
もちろん、Windowsプログラミングの知識がそれなりに必要。
流行の(?) .NET との連携は難しそうだね。
634:名前は開発中のものです。
08/12/26 21:38:56 L5Xtp1pR
追記。DLLを扱える機能は Pro バージョンのみです。
635:名前は開発中のものです。
08/12/26 22:56:29 SuoE1taa
MPのようなゲージを作って、MPが10以上の時にボタンを押すと
MPを10消費して飛び道具が撃てるという設定を作りました。
その結果、何故か描写されているMPゲージが10以下にならず(もちろん内部も)、打ち放題になってしまう現象が起きました。
これのほかにはMPは以下にならない程度しかMPに関連する変数を弄っていないのですが何がいけないのでしょうか。
636:名前は開発中のものです。
08/12/26 23:11:14 SxF5ePcK
>>635
普通そういうのは実際のソース見なけりゃ答えられん。が、もし
If MPが10以上なら
MPを10減らす
飛び道具を撃つ
みたいに組んでるなら
If MPが10以上なら
▲<Start of block>
MPを10減らす
飛び道具を撃つ
▼<End of block>
こう囲め。
637:名前は開発中のものです。
08/12/27 00:34:43 zgTmgbXH
スプライトを透過させたい時に透過を選ぶとドット絵に穴があいたような感じになりますが
ああではなく後ろの色が映るいわゆる半透明にしたいのですが可能でしょうか
638:名前は開発中のものです。
08/12/27 01:12:00 Glw8dwT3
>>637
単純に画像全体を半透明にしたいならどのverでもOK(未レジストでも)
スプライトのalphaプロパティを弄れば良い
ピクセルごと透明度が異なるような表現(例えば輪郭にアンチエイリアス)がしたいなら
ver6以降のレジスト版か、あるいは外部DLLを使えばver6以前のGMでも可能かも
ついでに確かver7レジスト版から32bitPNGが扱えたはず
639:名前は開発中のものです。
08/12/27 15:43:46 bMiIzurr
アクションゲームを作っています。
フォーラムなどを参考にしてジャンプして地面に着地などはできるようになったのですが、
ジャンプ中やダッシュ中に障害物に当たると(毎回起こるわけではないのですが)コリジョンの設定が悪さをしているのか遥か上空に吹っ飛んだりあらぬところにワープしてしまいます。
障害物は上に乗れるので親を地面と同じにしています。
横移動やジャンプ中の接触(上や横)に対するコリジョンはどう設定すればいいのでしょうか。バージョンは5.3です
640:名前は開発中のものです。
08/12/27 19:56:55 zgTmgbXH
>>638
できました、ありがとう
ついでにもう一つ質問です
キーボードを押しっぱなしの時にアクションを起こしているのですが
特定状況下で「プレイヤーはキーを押しっぱなしだけど内部ではそのキーは押されていない」と言う処理を行いたいのです。
これは可能でしょうか。
641:名前は開発中のものです。
08/12/27 21:54:29 mqdpfh1K
>>639
ソース見なきゃわからん
642:名前は開発中のものです。
08/12/27 21:58:58 mqdpfh1K
>>640
理解力が無いから俺の想像だけど
例えば変数1の時はAキーを押すとアクションが発生するけど、変数が2の時はAキーを押しても発生しないって事で良いかな?
もしそうならキーを押すイベントでIf an exprssion is trueを使えば良いと思う
643:名前は開発中のものです。
08/12/28 01:10:46 lQUrTnBK
ついに登場!アクションゲームツクール
URLリンク(www.famitsu.com)
アクションゲーム制作の決定版!Multimedia Fusion2 国内販売推進委員会
URLリンク(www7a.biglobe.ne.jp)
URLリンク(hp.vector.co.jp)
644:名前は開発中のものです。
08/12/28 05:48:32 1w+FYaO/
なんか使ってるうちにアクションは全部スクリプトで処理になるよね?
管理と編集が楽になるよね?
645:名前は開発中のものです。
08/12/28 15:22:43 cZXYtdqt
あえてアイコン方式で記述する意味がないからなあ
コードがかけなくても作れるってのを謳い文句にしてるけど
制約の中アイコン記述を覚えてもしょうがないんだよな
646:名前は開発中のものです。
08/12/28 17:21:40 LlMEzWDN
ただ、スクリプト記述するよりもアイコンの方が処理が早い罠w
647:名前は開発中のものです。
08/12/28 19:00:32 fT956MDj
アクションゲームで左右キーを押すとキャラが左右に動くのですが
坂道などでは段差でカクカクしたりしてしまいます。
なめらかに動かすには当たり判定や動きをどう設定すればいいでしょう。
648:名前は開発中のものです。
08/12/28 20:37:31 cZXYtdqt
>>646
Scriptsは呼び出し自体が重いから差が顕著に出るけど
piece of code だとほとんど変わらないような気がする
>>647
ピクセル単位で当たり判定を取っていたりしないかな
矩形や簡易図形で当たり判定を取るようにすればよくなるんじゃないかと
少し上にもあったけど、当たり判定処理がうまくいかないとかは
○○のエラーがでますというのと違って、プログラムは良くも悪くも書いた通りにしか動かないから
周辺の情報を出さないと条件式を見直せぐらいしか答えようがなくなってくるよ
649:名前は開発中のものです。
08/12/28 21:00:33 fT956MDj
正確な当たり判定を取るとキャラクターの足が動くたびに判定がおかしくなるのでとりあえず大きさに合わせて四角にしています。
足場も同様ですが斜めの床を作る際斜めにすると三角でマスクしても微妙なドットのせいでかくかくしてしまうのです。
650:646
08/12/28 23:34:43 LlMEzWDN
>>648
昔、timeGetTime()を呼び出すDLLを作って実験してみたことがあったんだ。
今また試しにやってみたところ、変数の代入なら varアイコンを使うより piece of code の方が早かった。
が、instance_create() の呼び出しは、アイコンの方が早かった。
即効作ったソース。
URLリンク(www3.uploda.org)
651:646
08/12/29 00:02:49 gdKazmBS
ああ、忘れてた。
>>650 の受信pass : gamemaker
スレ汚しごめんなさい。
652:名前は開発中のものです。
08/12/29 01:21:50 PIejyGZB
床のコリジョンを作っていますが
今の段階だと床に当たった時に起きるアクションと空中にある床に頭から接触したとき、
壁に横から接触したときのアクションが同じになってしまいます。
コリジョンを方向によってわける方法を教えてください
653:名前は開発中のものです。
08/12/29 03:11:36 p4VZEUac
vspeed > 0 && y < other.y+18
ってんでどうかな
これは上からね
654:645
08/12/29 13:44:03 T1r41zQH
>>650
404・・・自分でも確かめられることなのでやってみた
repeat loop 20000 回でinstance_create()をGMのcurrent_timeで比較してみた
確かにアイコンの方が早いみたいですね。平均20msぐらい差が出ました
一応環境
XP SP3
Celeron M 1.3 GHz
GMのcurrent_timeの精度もあるので相対比較という感じです
655:濱田
08/12/29 20:51:48 hLjua+tb
日本語訳の手に入れ方が分かりません。どうすればいいでしょうか?
656:名前は開発中のものです。
08/12/29 21:44:28 quafeWvW
みんな買ってんの?
PROだとエフェクト楽しいのかな