【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/
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」のアクションは入れてる?
0841名前は開発中のものです。
2008/03/25(火) 02:43:56ID:7R5Ni7yo>>840の解説。
衝突が起きたとき、相手がSolidだと自分は衝突前の位置に戻される。
例えば床との距離が5あって、自キャラが3の速度で落下していたとき、
次のステップで床との距離が2になって、さらに次のステップでは床にめり込む。
このめり込んだ瞬間に、床にSolid判定がついていたのなら、
衝突が起きる一つ前のステップ、つまり床との距離が2の時の位置に一旦戻される。
たまに浮いてしまうのはこのため。
Collisionイベントに「move to contact」のアクションを入れてやることで、
「(めり込んだ後、一旦1ステップ前の位置に戻してから)床に接する位置に移動させる」
という過程で、床にぴったり着地させることができる。
0842名前は開発中のものです。
2008/03/25(火) 04:38:59ID:6z3i9o/60843名前は開発中のものです。
2008/03/26(水) 21:43:48ID:paW4cEkfスマブラのAボタンのコンボみたいなものを作りたいと思っています。
どうすればできるでしょうか。GMLじゃないとできないとかなんでしょうか。
もしGMLじゃなくてもできるのであればご教授お願いします。
下手糞な文章ですいません。
0844名前は開発中のものです。
2008/03/26(水) 21:45:56ID:paW4cEkf0845名前は開発中のものです。
2008/03/26(水) 21:46:16ID:paW4cEkf0846名前は開発中のものです。
2008/03/26(水) 22:08:47ID:tIIk7RtUもっと具体的に
0847名前は開発中のものです。
2008/03/26(水) 22:17:44ID:paW4cEkf2個目の攻撃モーションがつづけて出るみたいのにしたいんです。
パンチ→パンチ→キックみたいな。
0848名前は開発中のものです。
2008/03/27(木) 02:00:03ID:CI1Rl28Iアクションあまり詳しくないからこれでいいかわかんないけど
アラームイベント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の部分でアラームイベント内にどんなアクションを入れたらいいんでしょうか。
ご教授お願いします。
0851名前は開発中のものです。
2008/03/27(木) 13:17:57ID:bXR6vAZf0852名前は開発中のものです。
2008/03/27(木) 20:38:31ID:bXR6vAZf0853名前は開発中のものです。
2008/03/27(木) 22:07:49ID:fgaEWE81アニメーションエンドイベントで
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背景画像の表示位置は、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×方法が
○方法って
0858名前は開発中のものです。
2008/03/30(日) 18:40:24ID:y58KxNzedepthが小さいほど手前、大きいほど奥に表示される。
例えば-10、0、10の3つがあったら-10が一番手前に表示される。
手前に表示したければ、その特定のインスタンスのdepthを他より小さくすればいい。
デフォでdepthは0になってるから、特に何もしてない限りdepthを-1にすれば済むはず。
0859名前は開発中のものです。
2008/03/30(日) 20:25:27ID:NXbnTPzdありがとうございます。
解決しました
0860名前は開発中のものです。
2008/03/31(月) 00:26:35ID:3gZNdKrLありがとうございます。コードを組み込んだらちゃんと着いてきました。
でも何故かとまるときや着地するときに背景がズレるのです。
解決方法があれば教えていただけるとうれしいです。
http://gamdev.org/up/img/11264.zip
0861名前は開発中のものです。
2008/03/31(月) 01:54:01ID:VGQZQIFz落として見たわけじゃないけど、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解決しました。
ありがとうございます。
0864名前は開発中のものです。
2008/03/31(月) 22:40:41ID:VGQZQIFzそのためのparent
適当なオブジェクトを一つ作ってobj_damage_parentとでも名付ける
ダメージ元のオブジェクト全部でそいつをparentに指定する
(Advanced modeをオンにしないとparentの設定は出てこないので注意)
後はobj_damage_parentとの衝突イベントだけ作ればOK
0865名前は開発中のものです。
2008/03/31(月) 23:28:59ID:/Z2PGPfrありがとうございます
0866名前は開発中のものです。
2008/04/01(火) 15:45:29ID:jcfVMQvT>>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:RldfVeQ40870名前は開発中のものです。
2008/04/03(木) 12:26:59ID:LCg7Ks7Z0871名前は開発中のものです。
2008/04/03(木) 15:31:34ID:hpoNHotE0872名前は開発中のものです。
2008/04/03(木) 17:47:55ID:x/yJQOmcdraw 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/yJQOmc0874名前は開発中のものです。
2008/04/04(金) 05:13:29ID:xKOenXkz0875名前は開発中のものです。
2008/04/04(金) 05:21:13ID:xKOenXkz0876名前は開発中のものです。
2008/04/04(金) 05:32:53ID:ozKEK2lV0877872
2008/04/04(金) 06:59:11ID:GCwfYrIO仕様というかそういうんじゃなくて
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:atXFd6s20881名前は開発中のものです。
2008/04/04(金) 23:44:49ID:atXFd6s2http://www.uploda.org/uporg1350943.gmk.html
pass:GM
0882名前は開発中のものです。
2008/04/05(土) 01:54:06ID:28WyvbPPすみませんがGM6なので開くことができません・・・。
それともGM6で開く方法もあるのでしょうか?
0883名前は開発中のものです。
2008/04/05(土) 04:41:45ID:/7lMTMqTStep 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中身見る用にGM7も入れてる
0885名前は開発中のものです。
2008/04/05(土) 05:54:37ID:/7lMTMqT上から7行目のhonooってのはObject2のことです。
0886名前は開発中のものです。
2008/04/05(土) 08:08:06ID:Q8dvYXzo外部データからキャラクターの追加とか
結構システム設計まわりをがんばってるみたいだが。
0887名前は開発中のものです。
2008/04/05(土) 13:27:36ID:/7lMTMqTキャラを後から追加できるなんて良心的だよね。
俺ならキャラデータを丸ごとexeにブチ込んでアップデートのたびに
大容量のデータをいちいちダウンロードさせてる所だよ。
開発が長引いたのはうp主が忙しかったからかな?
0888名前は開発中のものです。
2008/04/05(土) 14:18:21ID:28WyvbPP0889名前は開発中のものです。
2008/04/05(土) 14:52:56ID:/7lMTMqT0890名前は開発中のものです。
2008/04/05(土) 21:57:34ID:/7lMTMqT0891名前は開発中のものです。
2008/04/06(日) 00:30:38ID:jpfm9sAGないので自分で誰が作ったか覚えておかないといけない。
・instance_createは生成したインスタンスのIDを返す
・自分自身のインスタンスIDはidでとれる
ので
aaa = instance_create(x, y, object0);
aaa.createor = id;
としてやると、object0の中からはcreatorで自分を作ったインスタンスを参照できる。
0892名前は開発中のものです。
2008/04/06(日) 14:46:53ID:+Z1B7XWCありがとうございます
■ このスレッドは過去ログ倉庫に格納されています