【2D】ゲーム作成ツールGameMaker part2【マンセー】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2005/07/12(火) 09:03:47ID:DK0oUKwt●本家(英語)
ttp://www.gamemaker.nl/
●GameMaker Japan - 非公式情報サイト(日本語)
ttp://gamemaker.main.jp/
●初心者向けチュートリアル
ttp://gamemaker.main.jp/modules/articles/index.php?cat_id=1
前スレ: 【2D】ゲーム作成ツールGameMaker【マンセー】
http://pc8.2ch.net/test/read.cgi/gamedev/1087068523/
0740名前は開発中のものです。
2008/01/09(水) 10:04:09ID:jHNZrdiZ0741ぺしゃみゅんち
2008/01/15(火) 21:32:09ID:hN1kqTH6しかし変数などが分からないのですが
誰か5.aで開ける>>729さんのいっていたようなフラグ変数
をつかったサンプルもしくは私のアップしたものに手を加えたものを
アップしてくれるとうれしいです。
ここで説明していただいてもかまいませんが
サンプルなどをアップしてくれたほうがうれしいです。
よろしくお願いします
0742名前は開発中のものです。
2008/01/15(火) 23:50:06ID:DrVh3adF簡単なやり方としては
・今キーイベントに置いている内容をアラーム0イベントに移動
(「イベントの変更」を使うと楽)
・かわりにキーイベントに「Set an alarm0」を置いて値を1にする
これでインスタンスの変化が1ステップおいて起こるようになる
0743名前は開発中のものです。
2008/01/18(金) 02:01:25ID:CrDQFjAi直角や180度いっきに回転してしまうんですが
クルーってかんじに遠回りして追尾させたいんですが
どうすればできますでしょうか
0744名前は開発中のものです。
2008/01/19(土) 00:58:07ID:dhI4eC+v0745名前は開発中のものです。
2008/01/19(土) 02:10:04ID:pvbjWxudあるとすれば
・6以降の新しい機能が使えない
・レジスト機能使う時に、登録しにいかなくちゃダメ
ってくらいだな。
0746名前は開発中のものです。
2008/01/19(土) 06:44:46ID:lpPp39mj日本語化辞書
途中だけど、続き誰か頼む
使い方教えてとかいう、ググれない厨は落とさないように
0747名前は開発中のものです。
2008/01/19(土) 15:34:14ID:Rw9P3/DK0748名前は開発中のものです。
2008/01/22(火) 21:09:08ID:45T81GjC今どうやってるん?
0749名前は開発中のものです。
2008/01/22(火) 21:17:39ID:ocbbdzjm本家では新しいの出るんかな
0750名前は開発中のものです。
2008/01/22(火) 21:22:18ID:NoSS/6O8いきずまってます\(^o^)/
動いてる方向を取って1/3ステップ進ませて今進んでる方向がうんたらかんたら
0751名前は開発中のものです。
2008/01/23(水) 02:48:32ID:Q1tjyTbCものすごくGJ
0752名前は開発中のものです。
2008/01/23(水) 04:18:28ID:b5xhxs/kすまんが現状どうやってるのかよくわからん
角度を常に変数でもたせておくなりして三角関数使わないと難しいんじゃないだろうか
俺ならミサイルの単位時間に動かせる角度と距離固定して目標追わせるかな。
0753名前は開発中のものです。
2008/01/24(木) 03:09:34ID:n00gmxlnまた製作の壁にぶつかってしまい困っています。
GM7でアクションゲームをつくっています。
現在、ロックマンのように、自キャラが移動をしながら攻撃ができるようになっています。
これを魔界村のように、移動中に攻撃ボタンを押したら、立ち止まって攻撃するようにしたいのですが、どうすれば良いでしょうか?
ソースをあげておきますので、
どなたか解る方がいらっしゃいましたらご教授下さい。
ttp://www11.axfc.net/uploader/20/so/He_66684.zip.html
Keyword(DLパス)は0011です。
0754748
2008/01/24(木) 12:00:40ID:gZRHXEEh自分>>34なんだけどうpしてるやつの最初の方にホーミングミサイル撃つ敵
つくってあるんだけどこんな感じの作りたいの?
0755名前は開発中のものです。
2008/01/24(木) 12:22:14ID:gZRHXEEhobj_usagiオブジェのキーボードイベント<left><right>のアクション全体をcan_attack変数が1の時だけ実行するように
If a variable has a valueを置いてみたらいいんじゃない?
0756753
2008/01/27(日) 02:40:32ID:v3yvH1+7すばやい回答ありがとうございます。
無事自キャラが止まって攻撃が出来るようになりました!
半月間も悩んでたので本当に助かりました。
ありがとうございました。
0757729
2008/01/27(日) 04:15:44ID:PCXtfTLDあ……なるほど。
pressKeyで即オブジェ変更するんじゃなくてAlarmイベントで実行させれば
複雑にフラグ変数を使わずに済みますね。勉強になります。
0758名前は開発中のものです。
2008/01/29(火) 11:37:55ID:n2eeRZD+オブジェクトのソースを出力ってできますか?
オブジェクトがたくさんあると手作業ではちょっと厳しい...
0759名前は開発中のものです。
2008/01/29(火) 21:35:15ID:fH/FU5dj名前からは想像がつかないが、全オブジェクトの情報を
一気に出力してくれるというすぐれモノだ。
オブジェクトたくさん作りすぎてるとエラーで死ぬけどな!
0760名前は開発中のものです。
2008/01/29(火) 23:51:12ID:n2eeRZD+止まった\(^0^)/
450個もオブジェクトがありゃそりゃ固まるか。
0761名前は開発中のものです。
2008/01/31(木) 18:22:51ID:fnpWL05fばーか
0762名前は開発中のものです。
2008/01/31(木) 22:04:15ID:TXruG4et( ^ω^)…
0763名前は開発中のものです。
2008/02/01(金) 00:34:05ID:a4c4UVam>761
ばーか
762 名前は開発中のものです。 [sage] 2008/01/31(木) 22:04:15 ID:TXruG4et - NEW! -
>>762
( ^ω^)…
0764名前は開発中のものです。
2008/02/08(金) 17:38:06ID:zFVnBZNtまた聞くのはちょっと気が引けるんですが、
Solidのチェックを外さずに下からすり抜けられる床ってのは
やっぱり無理なんでしょうか。
諸事情で「キャラがブロックより上にいる時だけSolidにする」という方法が使えません。
0765名前は開発中のものです。
2008/02/08(金) 18:50:11ID:2GE6uT/lsolid Whether the instance is solid. This can be changed during the game.
(solid インスタンスがsolidかどうか。ゲーム中に変更可能)
solidかどうかの判定は変更できるようなので、キャラのy値を取得して、
「キャラのy値がブロックのy値よりも低いとき、solidをfalseにする」
「else {solidをtrueにする}」
って組んだらどうかな?
0766名前は開発中のものです。
2008/02/08(金) 19:08:26ID:zFVnBZNt前提として4キャラ同時に操作するということを書いてませんでした、すいません。
1キャラ操作のアクションゲームならそうするんですが、
多キャラを操作するときなどに、他のキャラがブロックの上にいるときとかに
Solidを解除すると乗っているキャラが落ちてしまうので悩んでいます。
0767名前は開発中のものです。
2008/02/08(金) 19:10:03ID:mtgOpTzWifを何個か重ねたらだめなのか?キャラごとに
0768名前は開発中のものです。
2008/02/08(金) 19:29:09ID:zFVnBZNt4Pが床(足場)にしたからすり抜けようとしたときにぶつからない?
1Pが上にいるからSolidはONになってるはずだし
0769名前は開発中のものです。
2008/02/08(金) 20:41:16ID:2GE6uT/lSolid同士の衝突は貫通しない以上、1つでもSolidがあったら下のやつは上にあがれなくなると思うぞ。そのためのSolidなんだし。
オブジェクト別にアクションを変えたいのなら、Solidは解除しておいて、状況に応じて通行可/不可が切り替わるように考える必要があると思う。
〜チラシの裏〜
発想を逆転してみた。
ブロックはSolidで固定。キャラのSolid判定を変えてみるという考え。
キャラがブロックの上にいるときはSolid、下ならNon-Solid。
これなら下から上ならすり抜け、上から下なら止まるというのを実現できるのじゃないかと。
……でもこれをやると、ブロックは縦方向に見て1つまでしか置けない。
ついでに多分、キャラも床もSolidにして床の上を自由に歩けるようにしてあるんだと思うから、
これをやると床をすり抜けどこまでも落ちていく。
うん。駄目だ。
〜チラシの裏〜
0770名前は開発中のものです。
2008/02/08(金) 20:48:06ID:zFVnBZNt自己解決した・・!
結局「キャラがブロックより上にいる時だけSolidにする」という方法が使えるということに気がついたというオチ・・。
Solidに設定しててもCollisionイベント設定しなかったら素通りするから、
4人いたらそれぞれのプレイヤー用の床を作って4つ重ねればいいのか。。
2ヶ月くらい悩んだけどなんか思いついてみれば簡単だった・・・。
ttp://www.uploda.org/uporg1239813.gm6.html
考えて頂いてありがとうございました。
0771名前は開発中のものです。
2008/02/08(金) 20:51:40ID:2GE6uT/l0772名前は開発中のものです。
2008/02/10(日) 01:31:29ID:JMvutfpq違っても製作頑張れ。完成するといいな。
0773名前は開発中のものです。
2008/02/12(火) 00:35:49ID:iUX9zyeTこのレスはアクションの人だったんだな(´・ω・`)
0774名前は開発中のものです。
2008/02/12(火) 22:51:39ID:iUX9zyeT0775名前は開発中のものです。
2008/02/12(火) 22:58:47ID:54CFVRXr残念だがそれは仕様上ムリだと思ふ
0776名前は開発中のものです。
2008/02/12(火) 23:04:06ID:iUX9zyeTありがとうだぜ
ちょっとhttp://gamemaker.main.jp/modules/smartfaq/faq.php?faqid=33を応用してくるぜ
0777名前は開発中のものです。
2008/02/14(木) 22:58:45ID:3EjNgEsT一つのルームに4種類部屋作って>>776の方法で分割表示すれば良いんじゃね?
0778名前は開発中のものです。
2008/02/14(木) 23:29:42ID:bjVjEw1+ヴァージョンが5だったことを忘れてたんだぜww
0779名前は開発中のものです。
2008/02/15(金) 03:04:43ID:5T9VWkupロード時間が半端なく長くなった上にメモリ浪費が激しすぎる・・。
時間とメモリを節約する方法ってないですかね・・・
0780名前は開発中のものです。
2008/02/15(金) 03:21:07ID:BAZ3rUXcもしそうなら、room内で使う分だけ読み込むようにしてみるとか。。。
たしか、使用していない画像や音声のリソースをメモリから消去するような関数が用意されていたと思うんで、
roomを変更する時などに、必要がなくなったリソースをメモリから削除するようにしてみるとか。。。
0781名前は開発中のものです。
2008/02/15(金) 13:06:06ID:5T9VWkupしかしロード時間が死ねる・・。sprite_replaceを使う以上仕方ないのかなぁ。
ゲーム内に組み込もうにもキャラ数が40人くらいいるから、
exeにまとめると実行ファイルサイズとスプライト数がすごいことになる。
0782名前は開発中のものです。
2008/02/15(金) 16:41:13ID:sRLBKt+9読み込むものを減らしたらどうでしょか
2つか3つ本体作って
全部読み込みバージョン
ちょっと読み込みバージョン
最小限バージョン
とか(´・ω・`)
0783名前は開発中のものです。
2008/02/15(金) 17:20:59ID:hkVzw0EY・起動が早いかわりに、リソースの読み込みでやや時間をとる。
・修正、アップデートが軽量化できる。(新しい実行ファイルと追加データを上書き)
逆に全部をexeにまとめると、
・起動が遅いがその後のロードは不要(または軽減?)。
・中に詰め込んだデータに容易にアクセスできない(ユーザーからのリソースの書き換え防止)
・しかし、アップデートは差分の書き換えではなく「新しいバージョンを丸ごと入手」
……といった解釈で合っていますか?
間違っていたり、もっと詳しい説明があったら是非お願いします。
(もしこうだったら、修正/拡張パッチとかが作れるように、外部からの取り込みの方がいいのかなぁ)
0784名前は開発中のものです。
2008/02/15(金) 21:54:23ID:6M2Mj1CCそいつベッドの下にビンに入った液体チョコレートと筆を置いてて
これなんだ?って聞いたら
「これで彼といっしょにお互いの体に塗ってなめっこするの♪」
って言われた。
0785名前は開発中のものです。
2008/02/17(日) 04:31:08ID:/MDHcIsH顔や手がブロックに引っかかって落ちなかったり、
端っこの壁に行くとめり込んででられなくなったりします・・・
コリジョンの判定をどうすればいいのでしょうか
http://gamdev.org/up/img/11074.zip
0786名前は開発中のものです。
2008/02/17(日) 06:06:40ID:7sK4ZglNマスクを使えばおk
http://www6.atpages.jp/kakenn/src/up0002.zip
0787名前は開発中のものです。
2008/02/17(日) 11:03:46ID:wXzkSK3WGML上において、score(GM側にデフォルトで設けられているスコア変数)に
値を代入させる方法がわからず、困っています。
ヘルプは一通り読んだつもりで、私は次のような記述を行いましたが…
score =(適当な値);
global.score =(適当な値);
エラーになってしまいます。
GMLを使ってscore変数の値を変えるにはどのようにすれば良いのでしょうか?
0788787
2008/02/17(日) 11:10:44ID:wXzkSK3Wバージョンは6.1です。
0789名前は開発中のものです。
2008/02/17(日) 12:32:39ID:yekEWnFqやったことないが
グローバルいらないんじゃね?
0790787
2008/02/17(日) 14:13:20ID:wXzkSK3W試しに今、新規作成でscore+=1と記述してみたところ、これは難なく動作しました。
ということは、このエラーの原因は別の箇所にあると考えられそうですので
一旦ソースを見直してこようと思います。
……何処がダメなのか想像がつかないけど……
0791名前は開発中のものです。
2008/02/17(日) 15:28:06ID:yekEWnFqscore=?;
両方試してみた?
後スペルチェックとか
0792名前は開発中のものです。
2008/02/17(日) 15:48:55ID:F5p9Y4ne"score" をすでに変数名以外に使っちゃっているとき。
変数名が青じゃなくて紫になってたらそれだ。
オブジェクトとかスプライトに "score" って付けてない?
0793787
2008/02/17(日) 19:47:57ID:wXzkSK3W確かに紫になっていました。でも"score"なんて名前を付けた覚えはない……
と思ってたらありましたよ、"score"という名のルームが!
気をつけて名前を付けてきたはずだから、こんな間違いはしていないと思い込んでいました…
>>791
そのようなスペースの有無によって引き起こされるバグは
ほとんどないと思っていますが、どうなんでしょう?
お二人方、どうもありがとうございました。
0794名前は開発中のものです。
2008/02/17(日) 21:31:14ID:H3L0qkMhありがとうございます
そして重ねて質問なんですが、
マスクの使い方も教えてもらえないでしょうか?
0795名前は開発中のものです。
2008/02/18(月) 06:03:43ID:P6ufyrMdマスク=当たり判定かな、違ってたらすまん
でも俺説明下手だから
http://gamemaker.main.jp/modules/newbb/viewtopic.php?topic_id=367
を参考にするといいんだぜ!
0796779
2008/02/18(月) 14:05:15ID:wD+9YlvRスプライトのロードよりも、
キャラ変数の用意に膨大な時間がかかっていることが判明。
execute_fileで大きなファイルをロードすると時間かかるんですね・・
0797名前は開発中のものです。
2008/02/18(月) 16:30:52ID:IGcs7e6Pゲーム実行時に GMLコードの書かれた文字列(またはテキストファイル等)を実行するのはかなり時間コストがかかるよ。
単純に考えても、gmソースにあらかじめ組み込んでおくのに比べて、
exe側がコードを解析して、(GM流の)バイトコードに変換する処理が増えるんだし。。。
変数の代入程度なら、自前でデータファイルを作って処理をしたほうが良いだろうね。
バイナリ形式のほうがよいかもしれない。
0798名前は開発中のものです。
2008/02/18(月) 21:26:12ID:ZmedX/dg解決できました!
ありがとうございます!
0799名前は開発中のものです。
2008/02/18(月) 22:39:56ID:tcJyICZc変数を使いまくるとロード長くなる?
どのくらい変数使ってるの?
0800779
2008/02/19(火) 22:43:31ID:x/RhMfeZexecute_fileでやってるから変数が多くなるとテキストも長くなって
時間がかかってしまうわけで。ゲーム内部に入れてしまえば0.1秒もかからないし、
配布時には内部に入れてしまおうかなぁと思ってる。
今数えたら5000個くらいだった。それ×4。
なんかこの設計自体に問題がある気がしてならない。
0801名前は開発中のものです。
2008/02/21(木) 10:47:14ID:QLrlpKARsprite_create_from_screenとsprite_assignで
ゆがませる空間のスプライトを作成し、
sprite_set_alpha_from_spriteをかまして
そのスプライトを用いたオブジェクトを拡大/縮小しながら表示させ、
オブジェクト消失時にsprite_deleteってやってるんですが、
この処理するたびに物理メモリが一定量ずつ減っていってしまいます。
sprite_deleteしてるからメモリは開放されるはずなのに…
何故でしょうか。
0802名前は開発中のものです。
2008/02/21(木) 12:22:17ID:TNE50/I9書かれていることだけをこちらでver 6.1にて実験してみたけど、
処理するごとにメモリ消費されてしまう現象は確認できなかった....
ちなみに、こんなソースです。レジストバージョンしか動きません。F1キーで略説でます。
ttp://gamdev.org/up/img/11107.zip
sprite_create_from_screen() で作成したスプライトも全て sprite_delete() されてるか再度確認されてみては。
0803801
2008/02/21(木) 13:03:03ID:QLrlpKAR帰宅してから試してみることにします。
0804801
2008/02/21(木) 18:05:02ID:hrX+JUXR只今帰宅し、サンプル確認してみました。
おおおおーーーメモリが減らない!!
背景からスプライトを置き換える際にsprite_delete(ind);を
入れてなかった点と、preloadがtrueになっていた点あたりが
問題…だったのかもしれないです。
さっそく作ってるゲームに入れてみて更に確認してみます!
有難うございました!!
0805802
2008/02/22(金) 00:23:23ID:9TIiCCE7おそらく原因は、sprite_delete() を入れていなかった、もしくはタイミングが悪かった点でしょうね。
問題が解決できそうで何よりです。開発がんばってください。
0806名前は開発中のものです。
2008/02/22(金) 00:58:19ID:GgtMRHOI0807名前は開発中のものです。
2008/02/22(金) 22:28:56ID:EnGdlCfoだね
もうあれでほとんど安定してるし
得にバグとか更新とかもないし
更新されるのは8が出てからかもね
8が出るのも相当後だと思うけど
ところでGameMakerって外部ファイルtxtとかって読み込めたっけ
0808名前は開発中のものです。
2008/02/22(金) 23:22:21ID:GgtMRHOI今出先だからわかんないけど、上の方で外部ファイルから変数を読み込んでって話題があったときにためしたら出来た記憶がある。
0809名前は開発中のものです。
2008/02/23(土) 21:16:37ID:3ZZOv+FT誰か詳しく説明してください。お願いします。
0810名前は開発中のものです。
2008/02/24(日) 00:38:27ID:410jBEd1使い方と言っても、xとyにスコア表示したい座標入れるだけなんだけど…
とりあえず(0, 0)のままでも画面左上に何かしら出るでしょ。
アクションをDrawイベントに置くこと、Visibleにチェック付けておくこと、
オブジェクトをルームの中に置いとくこと、以上3点忘れずに。
0811809
2008/02/24(日) 10:24:15ID:+SnWXLhWVisibleにチェックをつけるという意味がよくわからなかったが、
ちゃんと動きました。ありがとうございます。
0812名前は開発中のものです。
2008/02/24(日) 11:48:45ID:2Py4k7Q8Name: [ ]
Sprite
[ ]
[ New ] [ Edit ]
□Visible □Solid
Depth: [ ]
(以下略)
↑のVisibleのチェックボックスのこと。
デフォでチェックが入ってるから問題無かったんだろうけど。
これにチェックが入ってなかったら、例え何をしても何も表示されない。
動いたらしいしもういいんだろうけど、一応念の為。
うっかりしてると>>810が言った3つを忘れてしまいがち。
見直してて原因を見つけたとき「そりゃ表示されるわけねーわなw」となる。
0813名前は開発中のものです。
2008/02/25(月) 16:38:49ID:N0LtIPkdoutside view が働いていない気がする
0814名前は開発中のものです。
2008/02/25(月) 17:48:56ID:NE2+oADSバグだろうねぇ。公式のコミュニティにも話題が出てたよ。
ttp://gmc.yoyogames.com/index.php?showtopic=316899
現状だと、outside view イベントのかわりに boundary view イベントを使って、
そこで以下のコードを書くと、期待通りに動くようだ。
/* view 0 に対して、処理する場合 */
if (x-sprite_xoffset+sprite_width < view_xview[0]
|| x-sprite_xoffset >= view_xview[0]+view_wview[0]
|| y-sprite_yoffset+sprite_height < view_yview[0]
|| y-sprite_yoffset >= view_yview[0]+view_hview[0]) { // スプライトが完全に view から外に出たかどうかを判定している
// ここにコードを書く
}
コードが書けないなら、 if の()内の式全てを
Test Expression (?の描いてある八角形のアイコン) の expression に貼り付ければOK。
ステップイベント内で同様にやっても多分OKだが、
毎ステップ判定処理をしてしまうんで、処理コスト的に不利だろう。
0815名前は開発中のものです。
2008/02/27(水) 15:04:31ID:imokwZIUhttp://d.hatena.ne.jp/tsukkun/20061211/p3
鼻二つに眼が三つの子牛. 頭一つに身体二つの子豚. 単眼の子豚. もはや原形を
とどめない子豚. 4本足のヒヨコ・・・ (ここではヒトの奇形は詳しく紹介しませんが、
中国語「畸形」(簡体字・繁体字ともに)でインターネット検索をしたら・・・)
奇形や病死した牛や豚も加工されてしまえば見分けが付きません。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1414601269
中国、奇形児発生の原因とみられる重金属汚染
http://iwasero.blog66.fc2.com/blog-entry-240.html
・毒性の強い添加物や防腐剤を使用するケースが多い
・重さをごまかすのに牛や豚に水を注入したり、大量の食塩を食べさせる
【海外】中国:環境汚染
http://blog.livedoor.jp/gochagocha/archives/cat_50235110.html
腐った上海の海、必見グーグルアース
http://temple.iza.ne.jp/blog/entry/170885
地球上いたるところに湖がありますが、中国の湖ばかりが蛍光色に
光り輝いています。異常です。
中国の蛍光色7色に輝く河川
http://hinden.at.webry.info/200712/article_4.html
病気になったら抗生物質に汚染された魚を食べて治すという。すごい「薬膳」ですね。
0816名前は開発中のものです。
2008/02/28(木) 18:44:34ID:o8q2cNq40817名前は開発中のものです。
2008/02/29(金) 02:55:26ID:x+l1o480逆に、作りたいものを作るためにはどんなことを覚えなきゃいけないか、って感じで入ると滅入ると思う。
チュートリアルの通りに作って、わからなくなったらExampleを見て、どうやってるのかを参考にしたり。
GMLを使わなくても、シンプルなゲームなら十分作れるから、GMLに触れるのはある程度慣れてからで十分。
最初のうちは、「何が起きたらどれをどうする」といったことを決めていく、と考えるといいかもね。
右を押したら右に行く、弾が自機に当たったら爆発する、とか。
「チュートリアルなんて面倒」とか思わずに。無駄にはならないよ。
0818名前は開発中のものです。
2008/03/07(金) 01:56:07ID:/zU2Jm/Lどこに書いてあるかわかんないんだけど
0819名前は開発中のものです。
2008/03/07(金) 02:03:53ID:li5Lf13v0820名前は開発中のものです。
2008/03/07(金) 02:58:15ID:r5pkyD7y0821名前は開発中のものです。
2008/03/07(金) 21:49:20ID:/zU2Jm/Lサンクス
0822名前は開発中のものです。
2008/03/10(月) 16:38:14ID:qJ6+/ltXセブンイレブン
0823名前は開発中のものです。
2008/03/11(火) 20:45:46ID:EJkJUT5lGM7だとやり方が変わってるのでしょうか?
もしそうなら誰か設定の仕方を教えてくれませんか?
0824名前は開発中のものです。
2008/03/11(火) 21:53:46ID:c68BSDCdParentとかBounding Boxが見つからないって話だったら
まず File >Advanced Mode にチェックつける
0825名前は開発中のものです。
2008/03/11(火) 22:02:17ID:EJkJUT5ld
advanced modeにチェックを入れたら見れるようになりました
ありがとうございました
0826名前は開発中のものです。
2008/03/16(日) 11:21:30ID:7GR4thT4存在するIDを指定しているのに、時々そんな変数しらねぇよといわれてしまいます。
おそらく、instance_changeの時に何か起こっているのだと思うのですが・・
立ち状態のインスタンスのIDを保存して、攻撃やダメージの際に、
instance_changeを利用しています。
立ちインスタンス←ここのIDを保存している
└攻撃1インスタンス
└攻撃2インスタンス
└ダメージインスタンス
if(adjust){
if(player == 1 && global.cpu_1){
x = (global.com1).x + (global.com1).hspeed + posx;
y = (global.com1).y + (global.com1).vspeed + posy;
}else if(player == 2 && global.cpu_2){
x = (global.com2).x + (global.com2).hspeed + posx;
y = (global.com2).y + (global.com2).vspeed + posy;
}else if(player == 3 && global.cpu_3){
x = (global.com3).x + (global.com3).hspeed + posx;
y = (global.com3).y + (global.com3).vspeed + posy;
}else if(player == 4 && global.cpu_4){
x = (global.com4).x + (global.com4).hspeed + posx;
y = (global.com4).y + (global.com4).vspeed + posy;
}
}
0827名前は開発中のものです。
2008/03/16(日) 13:35:59ID:V0YG+k5o「存在するけど存在しない」みたいな不安定な状態になるらしくて
「instance.variable」みたいにドット使って変数を参照するとエラーになる。
やっかいなのは、インスタンス自身は存在するので
instance_existsとかでチェックできないこと。
対策としては、with使ってその中で変数使えばエラーは出ない。
with (global.com1) {
other.x = x + hspeed + other.posx;
other.y = y + vspeed + other.posy;
}
みたいな感じで(withの中ではotherが元のselfになるのに注意)
インスタンスの変更は変数の継承がらみでもややこしい問題があるので、
できるだけ使わずにすませた方がいいよ。
この場合、オブジェクト一つだけでよくない? 当たり判定はmaskで変えられるよ。
0828名前は開発中のものです。
2008/03/17(月) 10:22:50ID:RBuRFwrNなるほど・・わかりやすい説明ありがとうございます。
ダメージモーションの種類が4、攻撃の種類が40、その他死亡モーションや、
予備動作などがあって、一つのオブジェクトで作ると、
俺の頭がこんがらがってしまったので分けましたが、
実際のところは分けないほうが最終的にわかりやすいんだろうなぁ・・。
やっぱり自分の力量に応じて仕様というか、
ある程度妥協した方が結果的にいい場合もあるんでしょうね。
0829名前は開発中のものです。
2008/03/17(月) 13:07:23ID:0WhHqNl0全てのスプライトを1つにまとめて、subimageの値を決めることでも解決する。(image_indexの範囲指定)
スプライト以外だとしても、そのインスタンスの状態(ダメージ、攻撃中、移動中等)で場合分けをするといいだろうね。(step内でswitchを使って場合分け)
インスタンスを変えるということは、今あるインスタンスを削除して、新しくインスタンスを作るということ。
敵を攻撃したり、ダメージを受けたりする度に自分が生まれ変わるってのも変な話だよね?
インスタンスを変えていると、システム的なエラーだけじゃなく「エラーメッセージは出ないけど、自分の意図した通りにならない」というエラーも起こりやすい。
だから、場合分けをインスタンスの変更でするんじゃなくて、オブジェクトの中で場合分けをするように作っていく方がいいよ。
0830名前は開発中のものです。
2008/03/17(月) 20:51:48ID:zfMhFuyL0831名前は開発中のものです。
2008/03/17(月) 21:11:55ID:9xiWBLkG画面上に別のメニュー画面などを表示させたいのですがどうすればいいでしょうか。
0832名前は開発中のものです。
2008/03/17(月) 22:38:19ID:lI4Ks6j6お手軽なのはshow_menu。当然メニューとしてはしょぼいけど。
キー操作だけでよければ、keyboard_waitでループ回しつつ
キー処理をしてメニューをがしがし描き変えるという方法がある。
サンプルで付いてくるasteroidsが参考になるかな。
ただ、このやり方はメニューの構成が複雑になると厳しい。
一般的なのはポーズする時にグローバル変数を設定しておいて、
他のオブジェクトはその変数が立っている間動きを止めるというもの。
ただ、止めないといけないものは意外とたくさんあるので(gravityだとか
alarmだとかアニメーションだとか)、ゲームが複雑になるにつれて
ちゃんとメンテするのが難しくなってくる。正直労力に見合わない。
本格的にやるなら、background_create_from_screenで
今の画面を背景画像に設定してから
instance_deactivate_allでインスタンスを全部非アクティブにしてしまう。
それからメニュー用のオブジェクトを配置する。
これならマウス使ったりメニューオブジェクトを動かしたりするのも自由だし、
メニュー抜ける時の後始末さえしっかりやれば一番実装しやすいと思う。
0833名前は開発中のものです。
2008/03/23(日) 14:48:57ID:CEb9FX4l(Start/Option/Endの3項目があるとして)
1) あらかじめ3つの項目を横一列に並べた画像「title.gif」を作っておく。
ゲーム実行時にtitle.gifから、3つのサブイメージを持ったスプライト「sprite_title」を作る。
3つのオブジェクト「obj_start」「obj_option」「obj_end」のスプライトを全て「sprite_title」に設定する。
image_singleを、obj_startは0、obj_optionは1、obj_endは2に設定する。
(つまり、3つのサブイメージを持った1つのスプライトを使い、表示させるものを変える)
2) あらかじめ3つの画像「start.gif」「option.gif」「end.gif」を作っておく。
ゲーム実行時にそれぞれの画像をロードして、「sprite_start」「sprite_option」「sprite_end」の3つのスプライトを作る。
オブジェクト「obj_start」に「sprite_start」を割り当てる。他二つも同様。
(このとき、1つのオブジェクトに対してサブイメージは1つだけ)
1と2でメモリ浪費等で違いはありますか?
できれば1の方法を使いたいのですが、そうするとそれぞれのオブジェクトが、
表示されないサブイメージを2つずつ持っていることになり、これは無駄になるのかなと。
ならないのであれば、不要になったときに消すスプライトが一つで済むのですが。
詳しい方、教えてください。
0834名前は開発中のものです。
2008/03/23(日) 21:06:26ID:vPqoB7Ecメモリ上にスプライトを複製するようなことをしない、と思う。。。
1の方法でいいんではないかな。
0835名前は開発中のものです。
2008/03/23(日) 21:32:39ID:PWwLtvC1スプライト1つ分のメモリしか使わない。ローカル変数でそれぞれのオブジェクトが
個別にsprite_addするなら、当然スプライト3つ分のメモリを使う。
なので(1)と後者の方法の組み合わせだとメモリを無駄に使うことになる。
他の組み合わせだと使用量は同じかな。
でも、メモリの節約だけが目的なら、単にスプライトのプリロードをオフにする
(GM5の場合は遅延ロードをオンにする)で十分だと思う。
これだと必要な時に自動的にロードして、ルームの終了時に自動的に解放もしてくれるよ。
0836名前は開発中のものです。
2008/03/24(月) 02:31:39ID:jcEogdo3有難うございました。1の方法でロードすることにします。
0837名前は開発中のものです。
2008/03/24(月) 17:37:42ID:M/9alYxD横一列に並べているのに着地位置が縦1マス分ほどあいまいになってしまいます。
bounding boxも隙間なく設定しているんですがなぜでしょうか?
0838名前は開発中のものです。
2008/03/24(月) 17:55:40ID:jv5GLLmZ0839名前は開発中のものです。
2008/03/24(月) 23:02:33ID:GFQTJ2FQ>>746
0840名前は開発中のものです。
2008/03/25(火) 01:38:15ID:/7w1wYJ6地面にぴったり着地しなくて、宙に浮いた状態になるってこと?
Collisionイベントに「move to contact」のアクションは入れてる?
■ このスレッドは過去ログ倉庫に格納されています