トップページgamedev
1001コメント465KB

【2D】ゲーム作成ツールGameMaker part2【マンセー】

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2005/07/12(火) 09:03:47ID:DK0oUKwt
無料Windows用2Dゲーム作成ツール"Game Maker"について、色々と語り合うスレッドです。

●本家(英語)
 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/
0792名前は開発中のものです。2008/02/17(日) 15:48:55ID:F5p9Y4ne
"Variable name expected" が出るのはたいてい
"score" をすでに変数名以外に使っちゃっているとき。
変数名が青じゃなくて紫になってたらそれだ。
オブジェクトとかスプライトに "score" って付けてない?
07937872008/02/17(日) 19:47:57ID:wXzkSK3W
>>792
確かに紫になっていました。でも"score"なんて名前を付けた覚えはない……
と思ってたらありましたよ、"score"という名のルームが!
気をつけて名前を付けてきたはずだから、こんな間違いはしていないと思い込んでいました…

>>791
そのようなスペースの有無によって引き起こされるバグは
ほとんどないと思っていますが、どうなんでしょう?

お二人方、どうもありがとうございました。
0794名前は開発中のものです。2008/02/17(日) 21:31:14ID:H3L0qkMh
>>786
ありがとうございます
そして重ねて質問なんですが、
マスクの使い方も教えてもらえないでしょうか?
0795名前は開発中のものです。2008/02/18(月) 06:03:43ID:P6ufyrMd
>>794
マスク=当たり判定かな、違ってたらすまん
でも俺説明下手だから
http://gamemaker.main.jp/modules/newbb/viewtopic.php?topic_id=367
を参考にするといいんだぜ!
07967792008/02/18(月) 14:05:15ID:wD+9YlvR
ロード時間の件ですが、
スプライトのロードよりも、
キャラ変数の用意に膨大な時間がかかっていることが判明。

execute_fileで大きなファイルをロードすると時間かかるんですね・・
0797名前は開発中のものです。2008/02/18(月) 16:30:52ID:IGcs7e6P
>>556でも指摘されてたけど、
ゲーム実行時に GMLコードの書かれた文字列(またはテキストファイル等)を実行するのはかなり時間コストがかかるよ。
単純に考えても、gmソースにあらかじめ組み込んでおくのに比べて、
exe側がコードを解析して、(GM流の)バイトコードに変換する処理が増えるんだし。。。

変数の代入程度なら、自前でデータファイルを作って処理をしたほうが良いだろうね。
バイナリ形式のほうがよいかもしれない。
0798名前は開発中のものです。2008/02/18(月) 21:26:12ID:ZmedX/dg
>>795
解決できました!
ありがとうございます!
0799名前は開発中のものです。2008/02/18(月) 22:39:56ID:tcJyICZc
>>796
変数を使いまくるとロード長くなる?
どのくらい変数使ってるの?
08007792008/02/19(火) 22:43:31ID:x/RhMfeZ
あー、いや、変数の用意自体は一瞬なんだけど、
execute_fileでやってるから変数が多くなるとテキストも長くなって
時間がかかってしまうわけで。ゲーム内部に入れてしまえば0.1秒もかからないし、
配布時には内部に入れてしまおうかなぁと思ってる。

今数えたら5000個くらいだった。それ×4。
なんかこの設計自体に問題がある気がしてならない。
0801名前は開発中のものです。2008/02/21(木) 10:47:14ID:QLrlpKAR
すいません、擬似的に空間の歪みを表現しようと思い、
sprite_create_from_screenとsprite_assignで
ゆがませる空間のスプライトを作成し、
sprite_set_alpha_from_spriteをかまして
そのスプライトを用いたオブジェクトを拡大/縮小しながら表示させ、
オブジェクト消失時にsprite_deleteってやってるんですが、

この処理するたびに物理メモリが一定量ずつ減っていってしまいます。
sprite_deleteしてるからメモリは開放されるはずなのに…
何故でしょうか。
0802名前は開発中のものです。2008/02/21(木) 12:22:17ID:TNE50/I9
>>801
書かれていることだけをこちらでver 6.1にて実験してみたけど、
処理するごとにメモリ消費されてしまう現象は確認できなかった....
ちなみに、こんなソースです。レジストバージョンしか動きません。F1キーで略説でます。
ttp://gamdev.org/up/img/11107.zip

sprite_create_from_screen() で作成したスプライトも全て sprite_delete() されてるか再度確認されてみては。
08038012008/02/21(木) 13:03:03ID:QLrlpKAR
素早い返答有難うございます。
帰宅してから試してみることにします。
08048012008/02/21(木) 18:05:02ID:hrX+JUXR
>802
只今帰宅し、サンプル確認してみました。

おおおおーーーメモリが減らない!!

背景からスプライトを置き換える際にsprite_delete(ind);を
入れてなかった点と、preloadがtrueになっていた点あたりが
問題…だったのかもしれないです。

さっそく作ってるゲームに入れてみて更に確認してみます!

有難うございました!!
08058022008/02/22(金) 00:23:23ID:9TIiCCE7
おお、お役に立ててよかった。
おそらく原因は、sprite_delete() を入れていなかった、もしくはタイミングが悪かった点でしょうね。
問題が解決できそうで何よりです。開発がんばってください。
0806名前は開発中のものです。2008/02/22(金) 00:58:19ID:GgtMRHOI
公式は、7正式出てから動きまったくなし?
0807名前は開発中のものです。2008/02/22(金) 22:28:56ID:EnGdlCfo
>>806
だね
もうあれでほとんど安定してるし
得にバグとか更新とかもないし
更新されるのは8が出てからかもね
8が出るのも相当後だと思うけど

ところでGameMakerって外部ファイルtxtとかって読み込めたっけ
0808名前は開発中のものです。2008/02/22(金) 23:22:21ID:GgtMRHOI
>>807
今出先だからわかんないけど、上の方で外部ファイルから変数を読み込んでって話題があったときにためしたら出来た記憶がある。
0809名前は開発中のものです。2008/02/23(土) 21:16:37ID:3ZZOv+FT
Draw the value of scoreの使い方がよく分からない・・・
誰か詳しく説明してください。お願いします。
0810名前は開発中のものです。2008/02/24(日) 00:38:27ID:410jBEd1
>>809
使い方と言っても、xとyにスコア表示したい座標入れるだけなんだけど…
とりあえず(0, 0)のままでも画面左上に何かしら出るでしょ。

アクションをDrawイベントに置くこと、Visibleにチェック付けておくこと、
オブジェクトをルームの中に置いとくこと、以上3点忘れずに。
08118092008/02/24(日) 10:24:15ID:+SnWXLhW
>>810
Visibleにチェックをつけるという意味がよくわからなかったが、
ちゃんと動きました。ありがとうございます。
0812名前は開発中のものです。2008/02/24(日) 11:48:45ID:2Py4k7Q8
Object Properties

Name: [        ]
 Sprite
  [      ]
   [ New ] [ Edit ]

□Visible  □Solid
Depth: [         ]
(以下略)

↑のVisibleのチェックボックスのこと。
デフォでチェックが入ってるから問題無かったんだろうけど。
これにチェックが入ってなかったら、例え何をしても何も表示されない。
動いたらしいしもういいんだろうけど、一応念の為。

うっかりしてると>>810が言った3つを忘れてしまいがち。
見直してて原因を見つけたとき「そりゃ表示されるわけねーわなw」となる。
0813名前は開発中のものです。2008/02/25(月) 16:38:49ID:N0LtIPkd
オブジェクトのイベントにある
outside view が働いていない気がする
0814名前は開発中のものです。2008/02/25(月) 17:48:56ID:NE2+oADS
>>813
バグだろうねぇ。公式のコミュニティにも話題が出てたよ。
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:imokwZIU
中国奇形動物の画像【苦手な方は閲覧を御遠慮下さい】
http://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:o8q2cNq4
ちょっと興味あるけど自機の移動も作れないしGMLとかわけわかめでもうだめだ
0817名前は開発中のものです。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:li5Lf13v
確か可能なはず
0820名前は開発中のものです。2008/03/07(金) 02:58:15ID:r5pkyD7y
つttp://www.yoyogames.com/wiki/show/Sample+EULA
0821名前は開発中のものです。2008/03/07(金) 21:49:20ID:/zU2Jm/L
>>819,820
サンクス
0822名前は開発中のものです。2008/03/10(月) 16:38:14ID:qJ6+/ltX
>>819,820
セブンイレブン
0823名前は開発中のものです。2008/03/11(火) 20:45:46ID:EJkJUT5l
親インスタンスの設定と当たり判定の設定がまとめを見てもわからない・・・
GM7だとやり方が変わってるのでしょうか?
もしそうなら誰か設定の仕方を教えてくれませんか?
0824名前は開発中のものです。2008/03/11(火) 21:53:46ID:c68BSDCd
別に変わってないはずだけど
ParentとかBounding Boxが見つからないって話だったら
まず File >Advanced Mode にチェックつける
0825名前は開発中のものです。2008/03/11(火) 22:02:17ID:EJkJUT5l
>>824
d
advanced modeにチェックを入れたら見れるようになりました
ありがとうございました
0826名前は開発中のものです。2008/03/16(日) 11:21:30ID:7GR4thT4
インスタンスIDを使って、当たり判定の位置調節をしているのですが、
存在する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
インスタンスを変更すると、1ステップの間そのインスタンスは
「存在するけど存在しない」みたいな不安定な状態になるらしくて
「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
>>827
なるほど・・わかりやすい説明ありがとうございます。
ダメージモーションの種類が4、攻撃の種類が40、その他死亡モーションや、
予備動作などがあって、一つのオブジェクトで作ると、
俺の頭がこんがらがってしまったので分けましたが、
実際のところは分けないほうが最終的にわかりやすいんだろうなぁ・・。
やっぱり自分の力量に応じて仕様というか、
ある程度妥協した方が結果的にいい場合もあるんでしょうね。
0829名前は開発中のものです。2008/03/17(月) 13:07:23ID:0WhHqNl0
モーションってのがただ単にスプライトのことだったら、スプライトの入れ替えだけで済むし(sprite_indexの変更)、
全てのスプライトを1つにまとめて、subimageの値を決めることでも解決する。(image_indexの範囲指定)
スプライト以外だとしても、そのインスタンスの状態(ダメージ、攻撃中、移動中等)で場合分けをするといいだろうね。(step内でswitchを使って場合分け)

インスタンスを変えるということは、今あるインスタンスを削除して、新しくインスタンスを作るということ。
敵を攻撃したり、ダメージを受けたりする度に自分が生まれ変わるってのも変な話だよね?
インスタンスを変えていると、システム的なエラーだけじゃなく「エラーメッセージは出ないけど、自分の意図した通りにならない」というエラーも起こりやすい。
だから、場合分けをインスタンスの変更でするんじゃなくて、オブジェクトの中で場合分けをするように作っていく方がいいよ。
0830名前は開発中のものです。2008/03/17(月) 20:51:48ID:zfMhFuyL
さっきレジストしたんですが、バックアップCDってのは別にいらないですよね?
0831名前は開発中のものです。2008/03/17(月) 21:11:55ID:9xiWBLkG
特定のボタンを押したり画面内のボタンをクリックしたらいったんその画面の動きを止めて
画面上に別のメニュー画面などを表示させたいのですがどうすればいいでしょうか。
0832名前は開発中のものです。2008/03/17(月) 22:38:19ID:lI4Ks6j6
>>831
お手軽なのは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
その「sprite_title」がグローバル変数で、ロード(sprite_add)を1回しかしないなら
スプライト1つ分のメモリしか使わない。ローカル変数でそれぞれのオブジェクトが
個別にsprite_addするなら、当然スプライト3つ分のメモリを使う。
なので(1)と後者の方法の組み合わせだとメモリを無駄に使うことになる。
他の組み合わせだと使用量は同じかな。

でも、メモリの節約だけが目的なら、単にスプライトのプリロードをオフにする
(GM5の場合は遅延ロードをオンにする)で十分だと思う。
これだと必要な時に自動的にロードして、ルームの終了時に自動的に解放もしてくれるよ。
0836名前は開発中のものです。2008/03/24(月) 02:31:39ID:jcEogdo3
>>834,>>835
有難うございました。1の方法でロードすることにします。
0837名前は開発中のものです。2008/03/24(月) 17:37:42ID:M/9alYxD
複数の地面になるオブジェクトを並べてジャンプ後に着地するように設定したんですが、
横一列に並べているのに着地位置が縦1マス分ほどあいまいになってしまいます。
bounding boxも隙間なく設定しているんですがなぜでしょうか?
0838名前は開発中のものです。2008/03/24(月) 17:55:40ID:jv5GLLmZ
言語ファイル対応させろよ・・・
0839名前は開発中のものです。2008/03/24(月) 23:02:33ID:GFQTJ2FQ
>>838
>>746
0840名前は開発中のものです。2008/03/25(火) 01:38:15ID:/7w1wYJ6
>>837
地面にぴったり着地しなくて、宙に浮いた状態になるってこと?
Collisionイベントに「move to contact」のアクションは入れてる?
0841名前は開発中のものです。2008/03/25(火) 02:43:56ID:7R5Ni7yo
>>837
>>840の解説。
衝突が起きたとき、相手がSolidだと自分は衝突前の位置に戻される。

例えば床との距離が5あって、自キャラが3の速度で落下していたとき、
次のステップで床との距離が2になって、さらに次のステップでは床にめり込む。
このめり込んだ瞬間に、床にSolid判定がついていたのなら、
衝突が起きる一つ前のステップ、つまり床との距離が2の時の位置に一旦戻される。
たまに浮いてしまうのはこのため。

Collisionイベントに「move to contact」のアクションを入れてやることで、
「(めり込んだ後、一旦1ステップ前の位置に戻してから)床に接する位置に移動させる」
という過程で、床にぴったり着地させることができる。
0842名前は開発中のものです。2008/03/25(火) 04:38:59ID:6z3i9o/6
質問に答えていただきありがとうございます
0843名前は開発中のものです。2008/03/26(水) 21:43:48ID:paW4cEkf
すいません、質問で今アクションゲームを作っているのですが、
スマブラのAボタンのコンボみたいなものを作りたいと思っています。
どうすればできるでしょうか。GMLじゃないとできないとかなんでしょうか。
もしGMLじゃなくてもできるのであればご教授お願いします。
下手糞な文章ですいません。
0844名前は開発中のものです。2008/03/26(水) 21:45:56ID:paW4cEkf
すいませんVer.5.3Aです。
0845名前は開発中のものです。2008/03/26(水) 21:46:16ID:paW4cEkf
すいませんVer.5.3Aです。
0846名前は開発中のものです。2008/03/26(水) 22:08:47ID:tIIk7RtU
スマブラのAボタンのコンボみたいというのが、漠然としすぎてよく分からない
もっと具体的に
0847名前は開発中のものです。2008/03/26(水) 22:17:44ID:paW4cEkf
1個目の攻撃のモーションが出た後につづけて攻撃ボタンを押すと、
2個目の攻撃モーションがつづけて出るみたいのにしたいんです。
パンチ→パンチ→キックみたいな。
0848名前は開発中のものです。2008/03/27(木) 02:00:03ID:CI1Rl28I
>>847
アクションあまり詳しくないからこれでいいかわかんないけど
アラームイベント2個組み合わせてコンボ入力受付期間を作ってみたらどう?
まずオブジェクトにコンボアクション発動許可用変数を用意し”0”を初期値に。
攻撃ボタン押したら1回目の攻撃を行わすとともに1つ目のアラームを起動させる。
1つ目のアラームがタイムアップしアラーム内アクションにコンボアクション発動許可用変数を”1”にして2個目のアラームを起動させる。
2個目のアラームがタイムアップしたらコンボアクション発動許可用変数を”0”に戻す。
攻撃ボタンはコンボアクション発動許可用変数が”0”の時と”1”の時で攻撃が変わるようにIf a variable has a valueで分岐させる。
とかそんな感じだと思うけど・・・まずはアニメーションスプライト用意して通常攻撃モーションとコンボモーションを作成してみては?
そこらへんはもうできてるかもしんないけど・・・
0849名前は開発中のものです。2008/03/27(木) 08:42:25ID:bXR6vAZf
ご丁寧な返答ありがとうございます。
またわからないことがあったら聞きに着ます。
0850名前は開発中のものです。2008/03/27(木) 09:37:30ID:bXR6vAZf
「攻撃ボタン押したら1回目の攻撃を行わすとともに1つ目のアラームを起動させる。」
の部分でアラームイベント内にどんなアクションを入れたらいいんでしょうか。
ご教授お願いします。
0851名前は開発中のものです。2008/03/27(木) 13:17:57ID:bXR6vAZf
解決することができました。ありがとうございます。
0852名前は開発中のものです。2008/03/27(木) 20:38:31ID:bXR6vAZf
質問なのですがアニメーションをループさせず一週でとめるにはどうすればよいのですか?
0853名前は開発中のものです。2008/03/27(木) 22:07:49ID:fgaEWE81
>>852
アニメーションエンドイベントで
image_index を最後の番号(絵が18枚ならindexは0〜17なので、17にする)にして、
image_speed を 0 にする、とか。
0854名前は開発中のものです。2008/03/28(金) 11:24:35ID:MJYJEqfl
背景をタイル張りにせずにビューについてこさせるためには
どうすればいいのでしょうか?
0855名前は開発中のものです。2008/03/28(金) 11:33:42ID:uVxOA1kY
一枚絵の背景画像を view についてこさせたいってことなら、
背景画像の表示位置は、background_x[0..9] と background_y[0..9] の変数で管理されてるんで、
0番目の背景を0番目のview左上角位置に調整したければ、
ステップイベントで以下のコードを記述すればよい。と思う。

background_x[0] = view_xview[0]
background_y[0] = view_yview[0]

背景画像がタイル化指定していたら、無効かもしれない。
0856名前は開発中のものです。2008/03/30(日) 18:19:37ID:NXbnTPzd
特定のインスタンスを常に手前側に表示させるって方法がありましたっけ?
あったら教えてくださると嬉しいです。
0857名前は開発中のものです。2008/03/30(日) 18:20:34ID:NXbnTPzd
>>856 文にミスがあったので修正
×方法が
○方法って
0858名前は開発中のものです。2008/03/30(日) 18:40:24ID:y58KxNze
depthを小さくさせる、かな。
depthが小さいほど手前、大きいほど奥に表示される。
例えば-10、0、10の3つがあったら-10が一番手前に表示される。
手前に表示したければ、その特定のインスタンスのdepthを他より小さくすればいい。
デフォでdepthは0になってるから、特に何もしてない限りdepthを-1にすれば済むはず。
0859名前は開発中のものです。2008/03/30(日) 20:25:27ID:NXbnTPzd
>>858
ありがとうございます。
解決しました
0860名前は開発中のものです。2008/03/31(月) 00:26:35ID:3gZNdKrL
>>855
ありがとうございます。コードを組み込んだらちゃんと着いてきました。
でも何故かとまるときや着地するときに背景がズレるのです。
解決方法があれば教えていただけるとうれしいです。

http://gamdev.org/up/img/11264.zip
0861名前は開発中のものです。2008/03/31(月) 01:54:01ID:VGQZQIFz
>>860
落として見たわけじゃないけど、viewの座標は
「End stepイベントの後」かつ「Drawイベントの前」に更新されるので
StepイベントやEnd stepイベントで他の座標をviewに合わせても
描画の時点でずれてしまうという問題がある。たぶんそれじゃないかな。

一般的な解決法は「Drawイベントでviewに合わせて描画する」なんだけど、
背景の描画はDrawイベントより前に実行されるのでこのケースでは厳しい。

この場合、ルームの背景自体はなし<no background>にして、
かわりにうんとdepthの大きいオブジェクトを一つ用意し、
そいつに背景を描画させるのがいいと思う。
Drawイベントの中で
draw_background(background0, view_xview[0], view_yview[0]);
みたいな感じで。
0862名前は開発中のものです。2008/03/31(月) 06:36:23ID:/Z2PGPfr
アクションゲームで被ダメージのイベントを作りたいのですが、
敵の様々な攻撃を「敵の攻撃」と、一つにまとめられないでしょうか。
「このオブジェクトに衝突したらダメージ、このオブジェクトにも衝突したらダメージ」と
オブジェクトの数だけ記述しているような状態を何とかしたいのですが。
0863名前は開発中のものです。2008/03/31(月) 13:44:36ID:3gZNdKrL
>>861
解決しました。
ありがとうございます。
0864名前は開発中のものです。2008/03/31(月) 22:40:41ID:VGQZQIFz
>>862
そのためのparent

適当なオブジェクトを一つ作ってobj_damage_parentとでも名付ける
ダメージ元のオブジェクト全部でそいつをparentに指定する
(Advanced modeをオンにしないとparentの設定は出てこないので注意)
後はobj_damage_parentとの衝突イベントだけ作ればOK
0865名前は開発中のものです。2008/03/31(月) 23:28:59ID:/Z2PGPfr
>>864
ありがとうございます
0866名前は開発中のものです。2008/04/01(火) 15:45:29ID:jcfVMQvT
>>863
>>860のファイルちらっと見たけど1つだけ
オブジェクトとかスプライトとかサウンドのリソース名が同じものがいくつかあるけど
別の名前にしておいた方がいいよ
0867名前は開発中のものです。2008/04/01(火) 16:06:42ID:jcfVMQvT
あっとそれから名前に”-”や”?”をつかうのもダメだったと思う
メニューの「Scripts」→「Check Resource Names」で
チェックしてみ
<No name conflicts were found>と出るようになったらok
0868名前は開発中のものです。2008/04/03(木) 12:01:14ID:LCg7Ks7Z
ライフバーの機能を使ってみようと思い、マウスの位置に合わせて描画されるように作ったつもりなのですが全く描画されません。
どこら辺が間違っているのでしょうか?
Sprite: <no sprite>
Solid: false
Visible: true
Depth: 0
Persistent: false
Parent: <no parent>
Mask: <same as sprite>

Step Event:
set the health to 50
draw the health bar with size (mouse_x,mouse_y,mouse_x+200,mouse_y+30) with back color white and bar color blue

0869名前は開発中のものです。2008/04/03(木) 12:13:58ID:RldfVeQ4
drawアクションはdrawイベント内で実行しよう
0870名前は開発中のものです。2008/04/03(木) 12:26:59ID:LCg7Ks7Z
単純なことであるのに質問に答えていただき誠に感謝します。
0871名前は開発中のものです。2008/04/03(木) 15:31:34ID:hpoNHotE
livesのイメージって縦に出来ない?
0872名前は開発中のものです。2008/04/03(木) 17:47:55ID:x/yJQOmc
>>871
draw Livesアクションは横方向でしかならべられないのね。GMLでかいたらこんな感じかな?
drawイベントに「Execute a piece of code」で

for(i = 0; i < lives; i +=1)
{
draw_sprite(ライフ表示用スプライト名,-1,先頭のスプライトイメージのX座標,
先頭のスプライトイメージのY座標+sprite_get_height(ライフ表示用スプライト名) *i);
}
0873名前は開発中のものです。2008/04/03(木) 17:55:35ID:x/yJQOmc
Draw Live Images アクションだった^
0874名前は開発中のものです。2008/04/04(金) 05:13:29ID:xKOenXkz
おー、縦にできた。ありがとう
0875名前は開発中のものです。2008/04/04(金) 05:21:13ID:xKOenXkz
ってこれ減らした時に下から減っていくのは仕様なのか
0876名前は開発中のものです。2008/04/04(金) 05:32:53ID:ozKEK2lV
+を-にしたりすれば上下逆もできるんじゃ?
08778722008/04/04(金) 06:59:11ID:GCwfYrIO
>>875
仕様というかそういうんじゃなくて
draw_sprite()は描画イベントでスプライトを表示させる命令
sprite_get_height()は指定したスプライトの高さを調べる命令
そんでdraw_sprite()命令をfor文を使って単にライフの数だけ繰り返してる
for()の中で”i”は初期値が”0”で1回処理されるごとに1づつ増えていくからsprite_get_height()*iとすることで
スプライトの高さだけずれて描画されていってる
>>876氏のいう様に”sprite_get_height(ライフ表示用スプライト名) *i”の前の符号を-にしたら下から上になる
0878名前は開発中のものです。2008/04/04(金) 08:31:17ID:xKOenXkz
なるへそ。
ちょっと考えればわかることだね、お恥ずかしい。
勉強になります、ありがとう
0879名前は開発中のものです。2008/04/04(金) 11:47:17ID:UN21xGR5
クリックした時にそのクリックした位置が
そのオブジェクトより上だったならそのオブジェクトの画像を後ろ向き、下なら前向き、左なら左向き、右なら右向き・・・ってな感じで変える方法は無いでしょうか?
右斜め下とか8方に作りたいのです。

それとクリックした位置にオブジェクトを移動させる(一瞬でじゃなくそこまでの道程を通って)のはどうすれば良いのでしょうか?


初歩的な質問ですみませんがよろしくお願いします。
0880名前は開発中のものです。2008/04/04(金) 23:37:08ID:atXFd6s2
http://rapidshare.com/files/104815717/test.gmk.html
0881名前は開発中のものです。2008/04/04(金) 23:44:49ID:atXFd6s2
ゴメン、ミスったぜ
http://www.uploda.org/uporg1350943.gmk.html
pass:GM
0882名前は開発中のものです。2008/04/05(土) 01:54:06ID:28WyvbPP
>>881
すみませんがGM6なので開くことができません・・・。
それともGM6で開く方法もあるのでしょうか?
0883名前は開発中のものです。2008/04/05(土) 04:41:45ID:/7lMTMqT
Object1
Step Event:
set variable image_angle to direction
Object2(追尾させたいスプライト)
Step Event:
if left mouse button is pressed
for all honoo: perform a step towards position (mouse_x,mouse_y) with speed 10 stop at solid only
GM6だと開けないのか〜
0884名前は開発中のものです。2008/04/05(土) 04:46:32ID:mh+kpRIe
俺普段はGM5使ってるけど
中身見る用にGM7も入れてる
0885名前は開発中のものです。2008/04/05(土) 05:54:37ID:/7lMTMqT
書き間違えました。
上から7行目のhonooってのはObject2のことです。
0886名前は開発中のものです。2008/04/05(土) 08:08:06ID:Q8dvYXzo
ここの住民的にニコニコ動画(VS)ってどうなんだ?
外部データからキャラクターの追加とか
結構システム設計まわりをがんばってるみたいだが。
0887名前は開発中のものです。2008/04/05(土) 13:27:36ID:/7lMTMqT
なかなか良いと思ってるよ。
キャラを後から追加できるなんて良心的だよね。
俺ならキャラデータを丸ごとexeにブチ込んでアップデートのたびに
大容量のデータをいちいちダウンロードさせてる所だよ。
開発が長引いたのはうp主が忙しかったからかな?
0888名前は開発中のものです。2008/04/05(土) 14:18:21ID:28WyvbPP
後から外部からデータ追加とかどうやってるんだろ
0889名前は開発中のものです。2008/04/05(土) 14:52:56ID:/7lMTMqT
Replace a sprite from a fileを使えばおk
0890名前は開発中のものです。2008/04/05(土) 21:57:34ID:/7lMTMqT
自らを生成したオブジェクトを指定する関数っていうのはありますか?
0891名前は開発中のものです。2008/04/06(日) 00:30:38ID:jpfm9sAG
>>890
ないので自分で誰が作ったか覚えておかないといけない。
・instance_createは生成したインスタンスのIDを返す
・自分自身のインスタンスIDはidでとれる
ので

aaa = instance_create(x, y, object0);
aaa.createor = id;

としてやると、object0の中からはcreatorで自分を作ったインスタンスを参照できる。
0892名前は開発中のものです。2008/04/06(日) 14:46:53ID:+Z1B7XWC
>>891
ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています