10/04/29 10:17:17 itw73pKb
終了時刻-開始時刻=経過時間
751:名前は開発中のものです。
10/04/29 10:28:34 d5o0oHa5
>>750
なるほど
これを分:秒:ミリ秒に変換する、と
ラップスタートとPCの起動時間に関連はないから若干の誤差は仕方ないのね
752:名前は開発中のものです。
10/04/29 19:03:57 d5o0oHa5
画面上に動き続けるタイムを表示する場合だとこの式では無理?だよね
753:名前は開発中のものです。
10/04/29 20:12:21 oUdNBSO0
ゲーム内の時間をとるんだったら、現実時間じゃなくてfpsから計算していかないと
ほとんどの場合使い物にならないよ。
タイム表示をするとしたら↓こんな感じ。割り算しまくってあまりいいコードじゃないけど
real_timeはすでにミリ秒に換算されたものとして
real_time_text = string(real_time div 1000 div 60)+"'"+
string(real_time div 1000 mod 60)+"'"+
string((real_time mod 1000) div 10)
draw_text(x, y, real_time_text)
754:名前は開発中のものです。
10/04/29 21:01:11 d5o0oHa5
詳しく書いてくれてありがとう
ちなみにfpsでミリ秒を求める場合はどうやるんでしょか
60fpsの場合60フレームで1秒はわかるんだけど
755:名前は開発中のものです。
10/04/29 21:39:19 oUdNBSO0
あんまり難しいこと考えずに算数を思い出して
60 fpsの場合、1fpsでかかる時間 x は
60 (fps) : 1000 (msec) = 1 (fps) : x (msec)
x = 1000 / 60 (msec)
経過時間 = 経過したフレーム数 * x
756:名前は開発中のものです。
10/04/29 21:46:09 d5o0oHa5
こうやって書いてもらうと簡単に思えるけど
自分で辿り着くのはすごく難しいんだよなー
何度も何度もありがとう
757:名前は開発中のものです。
10/05/01 18:53:49 II5NejI3
GMLが大量においてあるサイトはどこにあるんだ?
かれこれ数時間はぐぐっているのだがぜんぜん見当たらない・・・
758:名前は開発中のものです。
10/05/02 02:17:03 1vQ/IaZ6
少なくとも日本のサイトにはないんじゃない
759:757
10/05/02 10:15:45 aa09sJ7a
>>758
そうか・・・もうちょっと頑張ってググってみるよ。
760:名前は開発中のものです。
10/05/02 10:40:23 aa09sJ7a
お前らって横スクロールアクションゲームの斜面処理どうしてる?
連投ですまない。
761:名前は開発中のものです。
10/05/02 23:19:33 uBl6tD5c
俺も知りたい
762:名前は開発中のものです。
10/05/02 23:26:10 5bIfN4MQ
こういうの?
URLリンク(www.youtube.com)
763:名前は開発中のものです。
10/05/02 23:35:56 uBl6tD5c
これだと登るのは可能だけど 下るのは落ちるようになるなぁ
764:名前は開発中のものです。
10/05/03 01:32:24 8PtFWmtK
公式のチュートリアルに坂道って入ってなかったっけ
…と思ったが、確かめてみたらその動画と似たりよったりだった
よくあるのは、ループで下から上に向かって調べていって
空いているスペースがあったらそこに移動する方法かな。
for (vy = 4; vy >= -4; vy -= 1) {
if (place_free(x + 4, y + vy)) {
x += 4;
y += vy;
break;
}
}
765:名前は開発中のものです。
10/05/03 01:44:11 8PtFWmtK
ついでに>757 GMLスクリプトの定番サイト
URLリンク(www.gmlscripts.com)
766:名前は開発中のものです。
10/05/03 20:07:36 2UeCxxLo
>>762
すばらしいチュートリアルを有難うございます!
これを参考にして見ます。
>>764
スクリプト提供サンクス。
これを参考にして作ってみます。
>>765
おお!ありがとうございます!
いろいろ忙しくてレス出来なくてすまない。
767:757
10/05/03 20:11:54 2UeCxxLo
名乗るのを忘れていたorz
>>766 は俺です
768:名前は開発中のものです。
10/05/03 21:32:52 OdCmNntC
斜面に関してだけどつまり
向きを「/」として、斜面のXより左に自キャラがいるときに→キーを押した場合、
「X,n+Y」(上)と「n+X,n+Y」(斜め上)に何もないか調べて、無ければそこに移動、みたいな感じで良いのかな
以前同じようなのを作った気がしたけど失敗した
で、俺は曲線の斜面を登る必要はないから滑り落ちる様なのを作りたいんだけど
何か質問文考えてる途中で何となくイメージが掴めて来たから困る
769:名前は開発中のものです。
10/05/08 17:12:54 b3P5iVqG
横スクアクションの無限ループするマップを楽に作れないかな
770:名前は開発中のものです。
10/05/08 17:53:33 b3P5iVqG
自己解決した
771:名前は開発中のものです。
10/05/08 19:32:43 pAC3Vaca
>>768
こんな感じかな?
左右キーで移動
スペースでジャンプ
サンプルはこちら
URLリンク(www.mediafire.com)
772:名前は開発中のものです。
10/05/08 19:45:18 pAC3Vaca
URLリンク(www.youtube.com)
こんな感じにルーム遷移をしたいんだけど、なにかいい方法ないかな・・・
詳しい方、ご教授願います。
773:名前は開発中のものです。
10/05/09 15:58:20 +L3j5tFD
こんな感じのこれはどれを指してるんだ
774:名前は開発中のものです。
10/05/09 19:49:26 xBD6SAPM
すいません GameMakerの処理速度はプログラム言語でたとえるとどの言語程度でしょうか?
775:772
10/05/10 19:22:18 MvcHCLbq
>>773
説明不足でした。ごめんなさい
この動画の 1:11から1:13あたりの、ルームを移動したときに前の処理を継続しているみたいなんです。
ルーム移動時にオブジェクトの移動速度や状態をどうやって保持するのかなとおもいまして
776:名前は開発中のものです。
10/05/10 21:34:53 tts9fO3P
残したいobjectにpersistentを設定
777:名前は開発中のものです。
10/05/13 20:15:05 wxlWK1XE
ジョイパッド キーボードでのキーコンフィグの作り方がよく分からない
サンプルって無いだろうか
778:名前は開発中のものです。
10/05/14 20:25:16 YaJQFI/9
>>777
ジョイパッドはわからないが
キーボードでのキーコンフィグなら
URLリンク(www.mediafire.com)
ヘルプにも有るように、今作ってるゲームのシステムを使ってやっつけモード全開で作ったので・・・
779:777
10/05/14 20:57:51 ZT/EAdjl
>>778
ありがたい
ver8.0をliteで使ってるんだけど スクリプト:key_initの
datafile_exportが不明なスクリプトと出た ちょっと色々調べてくる
780:名前は開発中のものです。
10/05/14 23:29:40 fHM8y9Wt
キーコンフィグなら上のほうにも出ているけどキーマップ切り替えが簡単だと思うよ
例えば、Zと何かのキーを変更するなら
default_key = ord("Z")
keyboard_wait()
custom_key = keyboard_lastkey
keyboard_set_map(custom_key, default_key)
781:名前は開発中のものです。
10/05/15 00:24:40 uTaTmBuv
>>780
ありがとう 試してみる
今夜は寝ないでがんばる
782:名前は開発中のものです。
10/05/16 00:35:52 prMMPTJc
スコア等を表示するときに
1250ではなく0001250のように表示するにはどうしたらよいでしょうか
783:名前は開発中のものです。
10/05/16 11:45:50 nSJwkLn0
URLリンク(gamemaker.jpn.org)
ここにGM7以降はアルファチャンネルの合成・・・とか書いてあるが実装されてるのでしょうか?
白に近い色も透明化できるということですよね?
GM8使ってみても6と違って透明処理が非常に分かりにくいorz 読み込んだ後の画像の透明化の仕方すら分からん…。
784:名前は開発中のものです。
10/05/16 15:35:38 s7h1BRs+
>>782
string_formatが誰得な使えない機能になっているので、一番上のスコア部分をグラフィックで隠すか
str_number = string(number | 100000000) //8桁表示
draw_text(x, y, string_copy(str_number, 2, 8))
大きい桁の数で読み込んで上の桁を削るとかかな
>>783
日本語のやつは使ったこと無いから知らないけど
GM8の透過はアルファつきのpng読めば勝手に透明化してくれる
自分で画像を作るときはopacity設定して書くだけ
785:名前は開発中のものです。
10/05/16 20:03:43 4L+tUZJD
>782
> 1250ではなく0001250のように表示する
四桁までなら以下のスクリプトで出来る。
URLリンク(www.mediafire.com) 3and4.gml
>784 のような方法が一番無難だけどね。
786:785
10/05/17 18:31:49 a6R0p8Vc
ファイル名間違えたorz
URLリンク(www.mediafire.com)
正しくはこっちね。
787:名前は開発中のものです。
10/05/17 19:19:16 qsApoeyK
すいません GameMakerで商業レベルの戦略 戦術シミュレーションゲームを作る事は可能でしょうか?
788:名前は開発中のものです。
10/05/17 22:44:35 iruzC88G
無理
789:名前は開発中のものです。
10/05/18 10:30:04 UBDSEPmt
GMをレジストする時のfirstname/lastnameってやっぱり本名だよね
PRO版になった後に「ライセンス保持者は○○」みたいにどこかに表示されたりする?
それともライセンス名は自由に決められる?
なんとなく気になったもので
790:名前は開発中のものです。
10/05/18 20:08:56 SNyXku20
無理か無理じゃないかと言われたら無理じゃない
死ぬほど頑張れば出来るとおもうよ
791:名前は開発中のものです。
10/05/18 20:10:43 C9Z95m5J
i wanna be the engine でゲームを作っているんですけど
オブジェクトと時計回りに飛ばすにはどうすればよいのでしょうか?
i wanna be the guy で言うとグラディウスの面の最後のサクランボです
792:名前は開発中のものです。
10/05/18 21:24:11 SNyXku20
またアイワナか
793:名前は開発中のものです。
10/05/19 00:25:50 CbssJVe7
しかもマルチかw別にいいけど
794:名前は開発中のものです。
10/05/20 13:03:53 XqlYIriT
Game MakerとMMF2ってどっちの方がとっつきやすいの?
人によるのかな?
795:名前は開発中のものです。
10/05/20 23:25:21 WBZEEzhD
使用者が少なくともプログラマじゃないとして
ツクールを裏技駆使したりするレベルでコアに使い込むタイプの人
→MMF2
デザイナーだけどFlashでActionScript使うのが好き(勉強が苦にならない)人
→Game Maker
どんなに苦労してもいいからゲーム作りを飯の種にしたいという決意の人
→Java
796:名前は開発中のものです。
10/05/21 00:55:49 8RMu8YrK
>>795
なるほど、把握
797:名前は開発中のものです。
10/05/22 23:51:45 kzKFYK2b
gamemakerの3D機能が本当に微弱という話は良く聞きますが
実際どれくらいの事まで出来るのでしょう?
良ければサンプル、あるいは3Dを使用した作品の動画などを教えていただけませんでしょうか
798:名前は開発中のものです。
10/05/26 10:00:33 zLNiQ8yo
アクティベーションできない・・・
このレジスト方法嫌いだ。
799:名前は開発中のものです。
10/05/29 00:36:22 tQ6NeHot
アクティできあ。
~nameとか書いてあるから名前書いてたけど
メールアドレスだったのね・・・・サポートに2度もメール出しちゃった。
ハスカスィ
800:名前は開発中のものです。
10/05/29 13:47:15 ri3eQDYH
~nameってどこの事?
801:名前は開発中のものです。
10/05/29 14:32:12 +iWaOSdT
licence holder のことでしょ
分かりにくいのは全部softwrapのせい
802:名前は開発中のものです。
10/05/30 02:22:15 yzHAUCrX
マウスをゲームのウインドウからはみ出さないようにする事は可能でしょうか
マウスがウインドウから出た時ステップイベント中にwindow_mouse_setでウインドウ内に戻す方法では
一応ウインドウ内に戻る事は戻るのですが一時的にはみ出してしまいます
803:名前は開発中のものです。
10/05/30 10:35:25 K80hcH1v
常にフルスクリーンならともかく
強制的にマウスをウインドウに閉じ込めるのは非常によろしくない
何がしたいのかわからないけれど、きちんとウインドウ外に出たときの処理を作ったほうがいい
804:名前は開発中のものです。
10/05/30 13:45:16 yzHAUCrX
マウスを使うアクションゲームを考えているのですが
マウスがウインドウからはみ出してクリックする度にフォーカスが外れるのはストレスになるだろうと思いまして
ワイド画面の場合の余白の事もあるのでフル/ウインドウ問わずゲーム画面内にマウスをキープできればと
805:名前は開発中のものです。
10/05/30 20:36:11 K80hcH1v
個人的なあれやこれやを押し付けてもしょうがないので先に解決策を書くと
>>802の状態で、おそらくウインドウいっぱいにゲーム領域があるんだろうけど
もう少しウインドウサイズを大きくして、ゲームに淵の部分をつけてマウスをその中に収めるようにすれば
フォーカスを失うことは無いかと
でもやっぱりウインドウモードでマウスが占有されるっていうのは、う~む・・・
806:名前は開発中のものです。
10/05/30 20:47:11 6CMxHS1M
FPSとかはゲーム中占有してるもんだけどね。
ただ、メニューモードになるとマウスカーソルが表示されて
ウィンドウフォーカスをマウスで選択できるようになるけど。
807:名前は開発中のものです。
10/05/30 20:54:01 yzHAUCrX
たしかにこの方法だとフォーカスが移ってもマウスの移動が制限されてしまうんですよね
理想はFPSのウインドウモードのような感じなのですが
色々調べてみたところ望んだ動作をさせるにはDLLを使うしかないようです
そのDLLがどんな物なのかは全くの謎ですが
808:名前は開発中のものです。
10/05/30 21:01:23 yzHAUCrX
>>806
更新したら同じようなレスが
メニューモードでもウインドウ内に閉じ込めるタイプがありますが、それが理想の動作かもしれません
ALT+TABでフォーカスを移してもマウスの動きも制限されないですし
809:名前は開発中のものです。
10/05/30 22:56:03 jFXrZH5T
普通にフルスクリーン限定のゲームじゃダメなのかな
ウィンドウのFPSを遊んだ事が無いので何とも不愉快なイメージしか無い
人によってはフルスクリーンになる事の方が嫌なのかもしれないけど
それにそんな画面いっぱい使ってるゲームなら尚更フルスクリーンの方が楽しめるんじゃないかな
810:名前は開発中のものです。
10/05/31 20:14:52 uB+Rcg9m
ゲーム画面が4:3だとモニターがワイドの場合フルスクリーンにすると余白ができてしまって不都合が出るかと思ったのですが
特に問題は無さそうなのでフルスクリーンで作ることにします
ありがとうございます
811:名前は開発中のものです。
10/06/01 13:33:24 mLQywIcm
URLリンク(www.youtube.com)
この動画みたいに同じタイプのパーティクルを個別の位置(ザコ1匹毎)に作るにはどうしたら良いでしょうか?
812:名前は開発中のものです。
10/06/02 21:15:39 pzl3yDfb
Proエディションにアップさせたいんだけど金はどうやって払えば良いのかな
銀行振り込みなんかが出来ると助かるんだけど
それと送られてきたキーはどのバージョンでも使えるのかな?
今GM6で何か別物になってそうな気がしてGM7に進めないんだけど
将来的にやっぱりバージョンは上げてくだろうし
813:名前は開発中のものです。
10/06/02 23:38:52 MxWIiucV
GMってズーム機能とかはないのかな?
image_xscaleとimage_yscaleをいじるしかない?
814:名前は開発中のものです。
10/06/03 02:49:00 dVlhQ8ao
>>811
敵の位置を指定してpart_particles_createするだけじゃないの?
particle systemとtypeは、適当なコントローラオブジェクトにでも作らせて
グローバルに一個だけ持っておけばいい。
>>812
支払いはクレジットカードとPayPalだけだったかと。
バージョンによってやり方は微妙に違うと思うけど、
Lite版だったらGM起動するたびに「Proにしないか」って画面が出るから
それを押して案内に従えばいいと思う。
ちなみにバージョン間でキーの互換性はないよ。
(GM6買った時は5と6両方のキーがもらえたけど)
>>813
GM6以降だったら、Viewを使って拡大縮小ができる。
815:名前は開発中のものです。
10/06/03 15:22:06 YHqswL3e
>>814
おお、ありがとうございます
おかげでズームアップできました
816:名前は開発中のものです。
10/06/03 22:05:01 aReQvSl6
GM9はC#製になるらしいね
URLリンク(gamemakerblog.com)
817:名前は開発中のものです。
10/06/03 22:13:37 ZiWZ04IR
新verか 線形補間解除できるようになったらいいな
818:名前は開発中のものです。
10/06/03 23:37:06 AF5Clpsp
それって公式発表じゃない気が。
>>816のページもGameMakerユーザーがやってるっぽいし。
本当にC#だったら、Macは切捨てか・・・?
819:812
10/06/04 17:36:04 ds85S00c
>>814
ありがとう
互換性無いのか・・・
なんか知らぬ間にどんどんバージョン上がってきてるしどうすりゃ良いんだ
820:名前は開発中のものです。
10/06/07 15:39:30 A0pl8E9h
線形補間って解除できなかったっけ
GM6だけ?
821:名前は開発中のものです。
10/06/09 15:59:46 ebHnfTX2
スプライトの回転はProだけでしょうか。
822:名前は開発中のものです。
10/06/09 17:02:25 3eDecubD
いえす
823:名前は開発中のものです。
10/06/09 20:48:06 iBEd3wdQ
あるオブジェクトにある変数が定義されているかどうかを確認する方法ってありますか?
定義されていないならその処理は行わないみたいなことをやりたいのですが…
824:名前は開発中のものです。
10/06/09 21:05:50 sZ3LRrvf
つ variable_local_exists(変数名)
825:名前は開発中のものです。
10/06/09 21:19:21 iBEd3wdQ
う、ヘルプのその他の変数のところにしっかりとあったのですね。すごい恥ずかしい…
素早いレスありがとうございました。これで先に進めそうです
826:名前は開発中のものです。
10/06/09 21:19:27 dOFxgLqw
>>820
まじか
8だと出来ないわ
827:名前は開発中のものです。
10/06/09 23:03:40 3eDecubD
7はどうだったか忘れたけど、
8だと解除っていうかデフォルトで設定されてない
もちろんチェックをいれれば有効になる
828:名前は開発中のものです。
10/06/09 23:05:13 dOFxgLqw
>>827
まじか
色々チェックを弄って試してるんだけど分からぬ
どのチェックかな
829:名前は開発中のものです。
10/06/09 23:24:26 3eDecubD
Global Game Settings の interpolate
この辺は6から変わらないと思う
830:名前は開発中のものです。
10/06/09 23:31:12 dOFxgLqw
すまない 画面を拡大した時に輪郭がボケるのを無くしたかったんだ
831:名前は開発中のものです。
10/06/11 21:51:55 t2BjBbMT
いまTDS(TopDownShooter)で軽くゲームを作っているのだが、
どうもキーボード使って斜め移動をしているときに、銃を撃とうとすると斜め移動できなくなるな
なんでだろ
832:名前は開発中のものです。
10/06/12 01:22:20 PYXKd/uJ
普通のキーボードはいくつものキーを同時押しできる作りにはなってない
組み合わせによっては三つ以上認識できないことがある
ShiftとかCtrlにすると改善されるかも
833:名前は開発中のものです。
10/06/12 13:54:56 oloLVXQg
image_angleくらいliteでも使わせてくれ…うぅ
834:831
10/06/13 11:29:24 XK4fWSQG
>>832
やっぱりそうでしたか・・・
キーの組み合わせを調整してみます。
それでもうまくいかないようだったら四方向固定にしようかと。
>>833
激しく同意。 image_angleなしでTDS系のゲームとか作ろうとすると結構つらいorz
835:名前は開発中のものです。
10/06/13 15:12:21 S6dSSaR1
2000円くらい払えよ
ゲーム製作なんて何ヶ月もかかるんだから、2000円ケチる方がはるかに損だと思うんだがな
836:名前は開発中のものです。
10/06/13 19:10:48 ov7pH7B7
ところで格ゲーとかのコマンド入力ってどうやってる?
ボタン押したら変数onにしてタイムラインで一定時間内に次キーが押されなかったら変数offなんて面倒な仕様にしてるんだけど
もっと単純な方法は無いかな
837:名前は開発中のものです。
10/06/13 21:29:16 taDSM2ud
技ひとつをオブジェクト扱いにして
処理コマンド(キーを入力する順番)を配列として持ったものと
技の入力状況を示すイテレータを持たせる
一定時間ごとにキー判定を取って、キーが一致すればイテレータを進め
一致しなければ先頭に戻す。最後まで到達すれば技発動・・・みたいなことを考えた
838:836
10/06/16 07:51:51 iSVFrURJ
なるほど、技ひとつひとつがオブジェクトですか
参考にしてみるよ。ありがとうございました
839:名前は開発中のものです。
10/06/16 07:56:57 Jeqzgo2J
アクションゲーム作っていて、剣を振るとか殴るとかで
アニメが終わる間動きを止めたいんですけどどうすればいいのか
教えてもらえませんか?
よくアラームを使うって見かけるけどいまいちわからなくて…
AnimationEndを使うとオブジェクトをいくつも分けないとだし
変数もややこしくなるしで一つのオブジェクトで済ませたいんです
840:名前は開発中のものです。
10/06/16 17:24:01 jPwPQDvq
動きに応じてsprite_indexを変更するようにしとけば、AnimationEndイベント使ってもひとつのオブジェクトでできるよ。
ただ、AnimationEndイベント内部はswitch-caseとかの場合わけが必要になるかもしれないけど。
841:839
10/06/17 00:24:48 mBfyuQLT
>>840
ありがとう。分けなくてもAnimationEnd使えるんですか
ただ動きに応じて、という処理の書き方・GMLは使ってないのでこれまた
書き方がヘルプ等見ても見当がつかないんですがGML使わなくても出来ますか?
というか皆さんこういう場合具体的にどうやっているんでしょうか?
散々調べたけどその辺詳しく解説されているところが見つからなくて…
ニュートラル>攻撃モーション完了(完了まで攻撃ボタン無効)>ニュートラル
というのがどうやっても出来なくて数ヶ月詰まってます。
もっと簡単な方法とか他にあればどなたか教えて下さい
お願いします。
842:名前は開発中のものです。
10/06/17 07:20:40 nIJZSKy9
全ての操作の条件に変数がonになってる事を追加して
攻撃モーションへ移る際にその変数をoff、モーション完了後に変数をonに直せば良いだけの話じゃないの?
843:839
10/06/18 21:45:25 zwccdsE4
>>842
ありがとう
なんかそう言われるとやけに簡単な気がして
ゼロから組み直したらある程度形になりました。
まだ思い通りにはいきませんが…
844:名前は開発中のものです。
10/06/22 11:01:41 Ci7o/Mjt
進行方向と速度を指定してオブジェクト生成(電球に矢印のマーク)のアクションをGMLで表すにはどのようにするのでしょうか。
845:名前は開発中のものです。
10/06/23 01:35:42 qd+uDdYg
>>844
まずcreateしてからsppedとdirectionを設定すればいい
a = instance_create(x, y, object);
a.speed = 速度;
a.direction = 方向;
Createイベントの時点ではまだspeedとdirectionが設定されてないから
厳密に言うとアクションと等価じゃないけどな
846:名前は開発中のものです。
10/06/23 01:44:03 tBjeKmtz
そうですか…一度にいくつも同時にその処理を行いたかったのですが
たくさん変数を用意しないといけませんね。
847:名前は開発中のものです。
10/06/23 01:54:04 qd+uDdYg
いや、別に一時変数だから使い回しでいいし
一時変数すら使いたくないならwithを使う方法もある
with (instance_create(x, y, object)) { spped=速度; direction=方向; }
同じことをあちこちでやるんだったらスクリプトにすればいい。
848:名前は開発中のものです。
10/07/01 17:55:32 RG53nBFr
すいません
Step towards a point avoiding objects はGMLでどう表せばよいのでしょうか
URLリンク(www1.axfc.net)
849:名前は開発中のものです。
10/07/01 19:26:31 U4SaJhzr
レジストしているのならA*を使う
レジストしていないなら
mp_potential_settings(maxrot,rotstep,ahead,onspot)
で設定した後
mp_potential_step_object(x,y,stepsize,obj) もしくは mp_potential_step(x,y,stepsize,checkall)
関係ないけど画像でaxfc使われると手間がかかるんだよなあ
850:名前は開発中のものです。
10/07/01 19:50:38 RG53nBFr
>>849
ありがとうございます。
ところで A*ってなんでしょうか
851:名前は開発中のものです。
10/07/01 20:36:34 U4SaJhzr
読み方は A star 最短経路を出すアルゴリズム。
GameMaker でも使えるみたいだけどGMで使ったこと無いから
精度とかコストはどれほどものかわからない
A*そのものについてはググッた方が早いかも
今なら結構解説サイトがあると思う
852:名前は開発中のものです。
10/07/01 21:52:39 RG53nBFr
>>851
ありがとうございます
853:名前は開発中のものです。
10/07/03 12:24:32 xej2WSqR
未レジストのGM5で迷路みたいな複雑な道をAIに通らせる
このようなアプローチは可能でしょうか
854:名前は開発中のものです。
10/07/03 17:57:32 LChSDnyO
広さにもよるけど可能
855:853
10/07/03 18:31:38 xej2WSqR
>>854
mp_potential_stepとmp_potential_settingsを使うのでしょうか
ルームの広さは大体600×600くらいです
856:名前は開発中のものです。
10/07/03 20:41:39 LChSDnyO
何をしたいかによるよ
例えばTower Defense系のように最短経路を辿らせたいとか
トルネコみたいなローグ系な動きとか
迷路のほうはともかくAIに何をさせたいか分からないと説明に困るぞ
857:名前は開発中のものです。
10/07/03 21:34:57 9sSVyJeo
英語でぐぐれ
858:名前は開発中のものです。
10/07/03 21:35:54 9sSVyJeo
誤爆
859:853
10/07/04 09:41:34 R47f51en
>>856
そうですね・・・
Tower Defenceみたいに最短経路を辿らせてみたいのですが
説明忘れてましたorz
860:名前は開発中のものです。
10/07/04 11:49:06 fTuJE3/P
TDなら塗りつぶし法がいいと思う
迷路の形状が決まった時点で、出口から通路をスコアつきで塗りつぶしていけば
敵はそのスコアが小さくなるようにたどっていけば最短になる
mp_potential_stepとmp_potential_settingsの組み合わせはTDには向いていない
根本的に最短を通るわけではないし
かなりいい加減によけていくのでおそらく狭い通路みたいなところだとうまくないと思う
2Dの見下ろし型のゲームで単純な障害物をよけるような場面が適しているんじゃないかと
861:853
10/07/04 13:05:11 R47f51en
>>860
塗りつぶし法ですか
ちょっと調べてきます
有難うございました
862:853
10/07/04 14:11:38 R47f51en
>>860
>迷路の形状が決まった時点で、出口から通路をスコアつきで塗りつぶしていけば
調べてもなかなかよくわかりませんでした
サンプルとかあると幸いです
863:名前は開発中のものです。
10/07/04 14:58:54 fTuJE3/P
ん~例えば、Sをスタート、Gをゴールとして下の図を塗りつぶすと
ずれているかも知れないけど右のようになるでしょう
あとは数字が少なくなるように移動させるだけ
□□□□ 3456
□■S □ → 2■65
□G ■□ 10■4
□□□□ 2123
GM5は古いしサンプル期待するのは難しいかもしれない
経路探索の名前はともかくアルゴリズムの本を見れば大抵のものには
これ系のものは載っていると思う
864:名前は開発中のものです。
10/07/04 21:49:22 R47f51en
>>863
ヒントを有難う
これを参考に頑張ってみます
865:名前は開発中のものです。
10/07/13 18:47:11 K3o0YDHH
戦闘機のシューティングを作っているんですが…
自機スプライトの縦と横の長さが違い、回転するのでroomの中に常に収めるコードが
うまく書けません。
正方形のスプライトなら if (x < sprite_width/2) x = sprite_width/2
とかで出来るんですが…(原点=中心)
lengthdirとか使ってもうまくいきません
いい方法ありませんか?
866:名前は開発中のものです。
10/07/13 19:14:30 /NxeAPUS
>>865
仮にスプライトの縦の方が横より長いとして
自機が縦向きで画面の端にくっついているとしよう。
その状態で自機が回転して横向きになったら、ぐぐーっと端から離れないといけないの?
縦と横の最大値をとって、その分だけ固定で離した方が簡単だし自然じゃない?
ちなみにスプライトの幅÷2をw、高さ÷2をhとおくと一番遠い端までの距離はこうなる。
a = degtorad(image_angle);
b = arctan(h/w);
x = sqrt(sqr(w) + sqr(h)) * max(abs(cos(a + b)), abs(cos(a - b)));
867:名前は開発中のものです。
10/07/13 19:22:14 /NxeAPUS
補足すると sqrt(sqr(w) + sqr(h)) が対角線の長さなので
固定で距離をとる場合はこの値にすればいい。
もし角度によって距離を変える場合、縦の距離は上の式のcosをsinに変えれば出る。
868:名前は開発中のものです。
10/07/13 21:37:38 K3o0YDHH
出来ました!
ありがとうございました
869:名前は開発中のものです。
10/07/17 12:18:00 gER7nrJ5
TDS系のゲームで高速移動する銃弾を作りたいのですが
collision_line(x,y,x+hspeed,y+vspeed,壁オブジェクト,1,0)
だとSpeedが10や13ぐらいなら壁をすり抜けずにすむのですが、Speedを60とかにすると
うまいこと行きません。
何かいい方法はないでしょうか?
Gamemakerのバージョンは6、未レジストです
870:名前は開発中のものです。
10/07/17 20:48:18 7i0jj3Bm
collision_lineをどう使ってて、何がうまくいかないのかわからないと何とも
よくある間違いはcollision_lineの結果をtrueやfalseと比較することだけど
そこは大丈夫か?
871:名前は開発中のものです。
10/07/18 14:00:31 4F6YppA5
>>870
大丈夫 だと思います
どうやら俺の作り方がまずかったみたい。
Step Event:
execute code:
if(collision_line(x,y,x+hspeed,y+vspeed,kabe,1,0)){sound_play(chakudan);instance_destroy();}
と設定すると着弾処理自体はしっかりと行ってくれるみたいです
ですが、弾道のトレースを行うと壁を貫通しているんです
うp:URLリンク(www1.axfc.net)
形式は.gm6です
872:名前は開発中のものです。
10/07/18 14:07:27 XkeNVelG
そりゃそうよ
xとyが更新されるのはStepイベントの後、Collisionなどが実行される手前
(ヘルプでEventのところを見ると詳しく書いてある)
・Stepイベントでcollision_lineでチェック→この時点ではまだ貫通してない
・その後、xとyにhspeedとvspeedが足される
・Drawイベントでx,yから直線を描画
1ステップ未来の弾道を見てるから、貫通してるように見えるだけ。
873:名前は開発中のものです。
10/07/18 15:14:06 4F6YppA5
>>872
なるほど
いろいろと調べながら頑張ります。
ありがとうございます
874:名前は開発中のものです。
10/07/18 17:51:47 XkeNVelG
言い忘れてたけど、draw_line(xprevious, yprevious, x, y) にすれば見た目どおりになる。
End stepイベントでcollision_line(xprevious, yprevious, x, y, ..) でチェックしてもいいけど
(その場合Stepイベントでは駄目)
弾速が速い場合、今度は弾が壁の手前で消えるように見えるという問題が出るはず。
それが気になるようだったら、move_contact_solidを使って着弾点まで移動させればいい。
875:名前は開発中のものです。
10/07/19 13:12:37 bqKfWWqP
GM7未レジスト版だけどこれも参考になるかも?
URLリンク(gmc.yoyogames.com)
876:名前は開発中のものです。
10/07/19 17:01:55 PLPwIk6X
collision_line の返り値みてあれって思ったけど
6だとtrue/falseが返ってくるのか。wikiにもそんなことが書いてあったし
7以降だとちゃんとidが返ってくるのにね
true/falseの返り値だとかなり使いにくいと思う
877:名前は開発中のものです。
10/07/19 17:23:01 WcNhtTfY
いや、6でもインスタンスIDか-4(noone)を返すよ。
> All these functions return either the id of one of the instances that collide,
> or they return a negative value when there is no collision.
ここの説明は5から8までずっと変わっていない。
ただ、全体読まずに関数の説明だけ見てtrue/falseだと早とちりする人は多い。
878:名前は開発中のものです。
10/07/19 17:35:40 WcNhtTfY
ちなみにGMでは、0より大きい値は真、0かそれ以下の値は偽と解釈される。
if (A) は if (A > 0)、 if (!A) は if (A <= 0) と同じ意味。
>871のif文が期待どおり動くのはそういう理由。
これを if (collision_line(...) == true) と直接true/falseと比較してしまうと動かなくなる。
879:名前は開発中のものです。
10/07/19 17:35:54 PLPwIk6X
なら単純に
URLリンク(gamemaker.wikicomplete.info)
ここの説明が間違ってるのか
880:名前は開発中のものです。
10/07/19 19:06:25 WcNhtTfY
うn
collision_pointの方の説明は合ってるのにね
他にも「bbox_*はProでしか使えない」とかところどころ間違ってる
881:873
10/07/25 20:00:59 1/i3AWzX
>>874-878
おおお!
俺がPC使っていない間に… みんなありがとう!
>874
move_contact_solidか・・・使ってみたらめり込みが改善されました。
>875
サンプル有難うございます!
これを参考に頑張ります。
>878
そんな仕様があったなんて知らなかった・・・
882:名前は開発中のものです。
10/08/03 20:30:08 cKSw/IY1
GM5.3Aで半加算処理って出来ないものなんでしょうか・・・
883:名前は開発中のものです。
10/08/17 09:24:30 OKMjBkLc
早く多言語対応してくれー
884:名前は開発中のものです。
10/08/17 13:43:12 4/akdMWt
>>
885:名前は開発中のものです。
10/08/17 13:46:28 4/akdMWt
途中で送ってしまったorz
>>883
禿同。
886:名前は開発中のものです。
10/08/30 12:44:47 4I8KA9ny
透過PNG使いてぇけど、GM8だと日本語がまったく使えなくなるからなぁ
887:名前は開発中のものです。
10/09/02 07:47:32 GMFPofTi
GMで商用ソフトウェアを作っていたんだが、一つだけどうしても潰れないバグがある…
有償でGM(7pro)に本当に詳しい人を募集したら、集まるものだろうか?
自分はプログラムは素人だけど、GMLを2年くらい触ってる。
888:名前は開発中のものです。
10/09/02 19:43:56 DnjUZssB
商用ってどんなの?
同人ゲームとか?あえてソフトウェアと呼ぶという事はツールとかかな?
889:名前は開発中のものです。
10/09/02 21:17:32 0WLIvYuZ
幻想少女大戦?
890:名前は開発中のものです。
10/09/03 10:10:05 MNeR9scq
>>888
そう、同人ゲーム。
興味がある人がいれば連絡用のメアドを晒そうと思うので、
詳しいことはそちらで改めて。
>>889
べ、別にメモリリークとか言ってないんだからね!
891:名前は開発中のものです。
10/09/07 21:58:20 4Oy4y2r6
>>890
興味ありますなあ、教えてもらう側として
892:名前は開発中のものです。
10/09/19 22:23:46 rmqa1/V5
日本語対応まだー