[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 05/09 13:07 / Filesize : 345 KB / Number-of Response : 973
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:名前は開発中のものです。 [2005/07/12(火) 09:03:47 ID: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【マンセー】
pc8.2ch.net/test/read.cgi/gamedev/1087068523/

457 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 23:26:39 ID:2NkJ/cbT]
あー、わかった。多分。
mbtext_setfont() を呼んでないのではないでしょうか。
文字表示をする前に mbtext_setfont() 関数を呼んで、設定しないといけないです。
(リソースにスプライト用意しただけでは、実行時にどのスプライトがフォントとして使用するのか、また、どんなサイズなのかわからないから)

どっかのオブジェクトのクリエイトイベントかなんかで、Execute Code アクションを加えて、
mbtext_setfont( [全角のスプライト名] , [半角のスプライト名] , 「フォントメーカーで設定したサイズ(数値)」) ;
の1行を、加えてみてください。
これが違うなら、わからんです。。。

458 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 23:28:05 ID:PKPevRDs]
タイピングゲームって作れますか?
>>1のサイトをざっと見てみたんですが、
キー情報の取得に関する関数がない気がするんですが。

459 名前:名前は開発中のものです。 [2007/10/05(金) 23:29:16 ID:qYq6QO0A]
できないものだとおもって書きませんでした。すいません。
実行してロードが完了すると
Unexpected error occured when running the game.
とでてきて、あとは
Access violation at addres..........
などというエラーがたくさんでてきて終了します
オブジェクトのコードはこんなんです
{
mbtext_setfont(spr_zen, spr_han, 20);
mbtext_draw("描画するテキスト", 0, 0);
}
なにがだめでしょうか?

460 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 23:48:54 ID:2NkJ/cbT]
>>458
ヘルプの GML>>User Interfection >> the Keyboard 辺りを読んでみましょう。
変数 keyboard_lastkey で最後に押されたキーのキーコードがわかります。(そのとき押されてなくても)
一方、
変数 keyboard_key で、今現在押されているキーのキーコードが得られます。
キーコードは数値でなくても、Aキーなら VK_A とかで定義されてます。特殊なキーはヘルプに出てます。

また、特定のキーが押されているかどうか調べる関数も用意されてます。
keyboard_check(key) : key が押されていたら true を返します。
類似関数に keyboard_check_pressed(key) や keyboard_check_released(key) があります。

>>459
うーん、そのエラーは結構深刻そうです。PCの環境あたりから疑わないといけないかもしれません。
ほかのサンプルゲームが普通に動くのなら、VRAMやPCメモリの容量が足りない可能性もありますね。
ためしに、全角スプライトのところを preload texture のチェックをはずしたり、
それでもだめなら、記号とひらがなだけ残して消して、ひらがなだけ表示させてみて、実験してみてください。
それで動けば、メモリ関係が原因かと思われます。

461 名前:名前は開発中のものです。 mailto:sage [2007/10/05(金) 23:52:58 ID:2NkJ/cbT]
訂正 : User Interfection でなくて、 User Interaction です…
誤字が多くてすまんです

462 名前:名前は開発中のものです。 [2007/10/06(土) 00:01:45 ID:mQ8ag/BB]
あ、すいません
最初から読み直してやってみたらできました
すいませんでした

463 名前:名前は開発中のものです。 mailto:sage [2007/10/06(土) 00:19:17 ID:YdfEd/7r]
>>460
ヘルプまでは読んでいませんでした。
あるんですね。どうもありがとうございました。

464 名前:名前は開発中のものです。 [2007/10/08(月) 16:04:54 ID:4SbO/Zc7]
画像をdraw_sprite_stretchedなどで拡大表示したときに、
当たり判定も一緒に拡大する方法はありますか・・?

当たり判定用の矩形オブジェクトを用意して、
オブジェクトを生成するときに大きさを引数で指定できるようにしたのですが、
肝心の当たり判定の大きさが拡大する前と変わらないままなのです。

128x64の判定を作りたいのに、32x32の判定しか作ることができない、といった状況です。
当たり判定の左上・右下座標を変数などで指定することはできるのでしょうか。

465 名前:名前は開発中のものです。 [2007/10/08(月) 16:48:44 ID:4SbO/Zc7]
すいません、書き込んですぐですが、自己解決しました。
もっと悩んでから書き込むべきだった…(´A`;)

if( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) > 0 ){

sound_play(snd_Hit);

( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).HP -= Damage;
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).alarm[0] = Time;
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).speed = movePower;
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).direction = moveDirection;

draw_hitStar(x + (sprite_width/2),y+ (sprite_height/2),30);

if(kind == 0){
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).image_index = 2;
}else if(kind == 1){
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).image_index = 3;
}else if(kind == 2){
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).image_index = 4;
}else if(kind == 3){
( collision_rectangle(x,y,x+wide,y+height,charatest,false,true) ).image_index = 5;
}

instance_destroy()
}



466 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 17:34:48 ID:qKmaq3uh]
>>464-465
解決したからよいかもしれないけど、考えてみたんで一応参考程度にしてみて。結構荒業?かもしれないけど。
縦横 1px のスプライトを用意(透過は無し)して、当たり判定用のオブジェクトを用意する。マスクで指定したほうがよいと思う。
んで、instance_create などで実行した後、縦横幅を与え、スプライトを拡大してしまおう。

例:
<パンチしたときなど>
atari_id = instance_create(xx-横幅/2,yy-縦幅/2,当たり判定用のオブジェクト)
atari_id.image_xscale = 横幅
atari_id.image_yscale = 縦幅

こうすると、(xx,yy)座標を中心に任意の縦幅、横幅のあたり判定用オブジェクトが出現するようになる。
サンプルできた。(7.0)
ttp://gamdev.org/up/img/10275.zip
F1 キーで簡単な説明でます。


467 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 18:13:57 ID:4SbO/Zc7]
あれー・・?
解決するまではその方法を試してたんですが、
当たり判定が広がらず困ってました。
6.1だったからかな・・・?それともこっちの勘違い?
なんにせよ、ありがとうございました。

468 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 18:30:38 ID:qKmaq3uh]
ごめん。7.0 のヘルプ に以下の一文が。
> Solved a bug in collision checking with scaled instances.
> 訳 : 拡大縮小されたインスタンスのコリジョン判定にあったバグを解決した

6.1以前だと、拡大されないみたいだね。こちらも 6.1 5.3A にて、動作しないことを確認しました。すみませぬ。。。

469 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 18:56:22 ID:NYq6HAI6]
いえ、こちらこそバージョンを明記してなかったので申し訳ないです。
というかバグだったのか・・・。

470 名前:名前は開発中のものです。 mailto:sage [2007/10/08(月) 21:13:04 ID:xMzu6E+i]
厳密にいうと、スプライトを拡大した場合に当たり判定が
幅×image_xscale になるべきところが (幅-1)×image_xscale
になるバグがある。元のスプライトが大きければ目立たないが、
小さいスプライトだと顕著に。特に元が1ピクセルだと……

471 名前:名前は開発中のものです。 mailto:sage [2007/10/10(水) 07:59:27 ID:xHCyvWv9]
場面切り替えの際などに画面をだんだん暗くしていく方法はありますか?

472 名前:名前は開発中のものです。 mailto:sage [2007/10/10(水) 08:05:16 ID:uuly2Ro8]
>>471
画面のフェードアウト機能がないみたいな話があったはず
詳しくはこのスレのログを見ていって欲しいけど、代用としては
ディザ処理で透明から徐々に黒くなっていくアニメーションスプライトをつくって
それを表示、全体黒くなったところで画面切り替えってのがある

473 名前:名前は開発中のものです。 mailto:sage [2007/10/10(水) 18:44:46 ID:clWDHbW4]
劣化ウイイレのようなゲームを作ろうと思っていて、HSPかgamemakerで悩んでいるんですが、
gamemakerは、コートを固定しているカメラで見るように表示できるんでしょうか?
コートが常に四角く見えるんじゃなく、端っこのほうを見るときは台形のように見えるってことです
分かりにくくてすいません

474 名前:473 mailto:sage [2007/10/10(水) 20:49:07 ID:clWDHbW4]
考えてみたら2D作成用だし無理ですよね、
自己解決です、ありがとうございました

475 名前:名前は開発中のものです。 mailto:sage [2007/10/10(水) 21:23:33 ID:4H4UcSWi]
>>471
バージョンによるけど、GM7だと最初からRoom transitionに
フェードアウト・フェードインというのが用意されているよ。
GM6だと黒い四角を画面全体に半透明で描画するやり方がある。
まとめWiki↓にあるMs.PADDLERあたりを参考に。
ttp://gamdev.org/w/?GameMaker
GM5、あるいは未レジストなら>472かな。

>>473
レジストすれば3D機能も使えるんだけど、まあ3D向きでないのは確かだw



476 名前:名前は開発中のものです。 [2007/10/11(木) 00:10:35 ID:bfULkcnK]
GMLの文法ってC#に似てるみたいですが、
実際に使ってる人から見て似てると思いますか?

477 名前:名前は開発中のものです。 mailto:sage [2007/10/11(木) 02:26:20 ID:MiBouJ8+]
オブジェクトのプロパティとかアクセスするのは似てるかもしれない。
ただ、オブジェクトに任意の関数を持たせて
[object].[関数名](引数...)
というようなことはできない。(そもそもそういう文法がない)
※ ユーザーイベントとか駆使すれば似たようなことは出来なくはないと思うが、煩雑だし機能的にも制限が厳しい。
なもんで、完全なオブジェクト指向っぽい設計は難しいと思われ。

誤解を恐れずに言うと、個人的にGMLは、
構造体無し、変数のポインタや参照受け渡しの出来ないC言語っていう印象。
ただ、文字列操作はCよりかはマシかな。

478 名前:名前は開発中のものです。 mailto:sage [2007/10/11(木) 07:28:19 ID:lfKlsL3a]
いままでGM5で作っていたデータをGM7で起動して製作する場合消えたり変更されたりするデータはありますか?

479 名前:名前は開発中のものです。 mailto:sage [2007/10/11(木) 23:29:34 ID:j9EjwRAb]
>>478
スプライトとかオブジェクトとかは一応ちゃんと残るよ。

ただ、一部のアクションは「古いアクション」とか
「不明なアクション」てやつに置き換えられてしまって
中身が見えなくなる。7で編集を続けるつもりなら、
元のgmdをとっておいて見比べながら直さないと辛いかも。

いずれにせよ、5から6で色々削られたり変更になったり
してるから、それなりに書き直さないと動かないと思う。

480 名前:名前は開発中のものです。 mailto:sage [2007/10/16(火) 08:31:52 ID:KDtruK3Z]
これランゲージファイル対応してないの?

481 名前:名前は開発中のものです。 mailto:sage [2007/10/17(水) 13:07:25 ID:NOHDADh4]
「ボスの目の前一直線上に主人公が来たときボスが攻撃する」や「主人公がボスの上に移動したときボスが攻撃する」
など範囲を指定してそこにキャラクターが来た時行動を起こさせることはできますか?

482 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 11:13:19 ID:zjjlkNBl]
>>481
どちらもボスキャラとプレーヤーキャラのインスタンス原点比較で出来る
「ボスの目の前一直線に主人公がきた時」は「ボスの横座標(x座標)と主人公の横座標が一緒となった時」(横画面を想定して)なんだけど
実際キャラを動かすとx座標がぴったり合うことはすごく稀なので幅をもって比較してやるのが普通。
ということでオブジェクト名をボスキャラ:obj_bosプレーヤーキャラ:obj_pcとし、判定をobj_bos側で処理するとして判定幅を変数でobj_bosに持たせてやる(例ではbias)
以下GMLで書くと(アクションでやる場合はIf a variable has a valueアクションを組み合わせて出来ます)ステップイベントに

if(obj_bos.x + bais <= obj_pc.x && obj_bos.x - bais >= obj_pc.x)
//ボス原点+バイアス値よりプレーヤーキャラ原点が小でボス原点−バイアス値よりプレーヤーキャラ原点が大の時
{
//ここに攻撃処理を記述
}

と書いてやればいい。
「主人公がボスの上(ry」は同じ要領でプレーヤーキャラがボス上の矩形領域にいるかどうかを、x座標y座標を各々比較してやればいいと思います。

483 名前:482 mailto:sage [2007/10/18(木) 11:16:42 ID:zjjlkNBl]
細かく誤字がある・・・まぁわかるかと・・・

484 名前:482 mailto:sage [2007/10/18(木) 11:43:05 ID:zjjlkNBl]
かさねがさねすみません。符号ミスった。
× if(obj_bos.x + bais <= obj_pc.x && obj_bos.x - bais >= obj_pc.x)
○ if(obj_bos.x + bais >= obj_pc.x && obj_bos.x - bais <= obj_pc.x)
自分こういうのおおいな・・・・ごめんなさい

485 名前:482 mailto:sage [2007/10/18(木) 12:01:37 ID:zjjlkNBl]
今日ズタボロだす
横の場合はx座標ではなくy座標でした・・・・・
本当にごめんなさい



486 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 15:58:06 ID:2p+G78pK]
一定時間無敵という状態を作りたいのですが十数秒自キャラのあたり判定をなくすことはできますか?
半透明で当たり判定のないオブジェクトを作ってそれにチェンジするといろいろ変数を追加しないといけないので面倒なのdすが・・・

487 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 18:41:17 ID:HP36It3Q]
>>486
自キャラに無敵フラグを追加、で解決するような...。駄目な理由があるのかな。
自分だったら、当たったときにフラグチェックして無敵だったらコリジョン処理しない(即座に抜ける)ようにし、
タイマー使って一定時間後に無敵フラグ消失、というような感じにする。

488 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 20:07:50 ID:8B1FDJnb]
>>487
シューティングならそれでいいかもしれない
横視点アクションとかで地面とかが関わるならもう少し工夫しないとだけかも

このスレのログを辿ると似たよう話に当たるかもしれない

489 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 20:40:28 ID:vfcbVUIf]
面倒がってる奴に教える意味有るのか?

490 名前:名前は開発中のものです。 mailto:sage [2007/10/18(木) 21:42:24 ID:6eGl9S9Q]
過疎よかいいじゃないか

491 名前:名前は開発中のものです。 [2007/10/19(金) 07:37:01 ID:MUFGtR6o]


492 名前:名前は開発中のものです。 mailto:sage [2007/10/19(金) 18:06:04 ID:Vl0npn9t]
bGMについての質問なのですが
曲Aが流れているときにちょっとした短い曲Bを流したいのですが
「曲A一時停止>曲B再生>曲B終了>曲Aを一時停止の時点から再開」という風にするにはどうしたらいいのでしょう

493 名前:名前は開発中のものです。 mailto:sage [2007/10/19(金) 22:59:25 ID:6RGcBw98]
公式のゲームは起動する時create with game makerって出てこないけど
これを消すのはliteでもできる?

494 名前:名前は開発中のものです。 mailto:sage [2007/10/20(土) 00:33:48 ID:hAmk06Ct]
>>492
一時停止は、関数 bGM_pause(sound_id) でできる。sound_idに曲AのIDを指定しよう。
その後、bGM_play(曲Bのファイルネーム, [設定]) を呼び出し、曲Bを再生する。
曲Bの終了検知は、今のところ無理っぽい。曲Bが終わる時間を見計らって、一定時間後に曲Aに復帰させるしかないかな。
なお曲Aに演奏を復帰させるときも、 曲AのIDを引数にして関数 bGM_pause()を呼び出す。

関数リファレンス
ttp://gamemaker.main.jp/static/bGMref/

>>493
無理です。

495 名前:名前は開発中のものです。 mailto:sage [2007/10/21(日) 00:27:43 ID:1O8dqLnR]
これって日本語化出来る5.3使った方が良いのか?



496 名前:名前は開発中のものです。 mailto:sage [2007/10/23(火) 20:19:08 ID:1Dn54OyY]
7について説明してくれているサイトとかありますか?
7は日本語化できますか?

497 名前:名前は開発中のものです。 mailto:sage [2007/10/23(火) 20:39:07 ID:1Dn54OyY]
すいません。

日本語のヘルプはどこでダウンロードできますか。
>228さんのchmでは、書かれていない部分があります。
それを補うにはどうすればいいですか。

498 名前:名前は開発中のものです。 mailto:sage [2007/10/24(水) 18:24:35 ID:CNVx+st/]
止まってるな、1を見たら2年前だし

499 名前:名前は開発中のものです。 mailto:sage [2007/10/24(水) 21:53:11 ID:WgthXhdI]
>>477
Cの簡易版みたいな感じですね。

500 名前:名前は開発中のものです。 mailto:sage [2007/10/24(水) 23:12:03 ID:3bv97O32]
もう少し突っ込んだ内容のチュートリアルとか
日本語の資料があれば人気出ると思う。

501 名前:名前は開発中のものです。 [2007/10/24(水) 23:16:00 ID:IY/D3Nkk]
2Dのアクションゲームを作ろうとしているのですが、キャラクターを地面や足場に吸着させて動かすにはどうすればいいのでしょうか。
GM7です。

502 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 00:18:31 ID:vNqY00up]
ご指導ください

bGM.exe を使用して音楽をならそうとしてるのですが
デモの通りに設定しているはずなのに変なのです。

どんちゃどんちゃ というのが二重再生みたいに
ドドンチャチャドドンチャチャ とせわしなく再生されます。

しかも終了した後に、ノイズがいつまでも残ってる状態です。
(プロセルには何も残っていません)
何が悪いのでしょうか。

503 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 00:56:28 ID:vNqY00up]
すいません解決してしまいました。

一度すべてのオブジェクトをクリアして再設置した所、無事期待通りの反応を返してくれました。

・・・何故治ったのか原因が掴めないので不安ですが、また似た状況なった場合、
動作報告させて戴きます。

504 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 05:08:36 ID:AiXecA9K]
今、必死でE-WordChanger2000を使って7の日本語化を試みてるけど、めんどくさいったらありゃしない
もう少し頑張ってみるか

505 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 10:12:51 ID:/6XVTfMT]
俺もやってみたことあるけど、文字化けでおかしくなったりしない?
日本語化できない部分もあるし……。



506 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 12:51:49 ID:kOwmLgcJ]
フォント変えてないんじゃねーのか


507 名前:505 mailto:sage [2007/10/25(木) 13:46:16 ID:gKkUjDf5]
E-WrodChanger2000が変更してくれない部分もある。
イベント追加するときのイベントの種類とか、アクションを追加するときの OK や Cancel の文字とか。
GameMaker側でフォントの設定もできないようだった。スクリプトのコードや、GameInformation の部分では変更可能だったけど。
……もしかして、俺のやり方が違っていたのだろうか。

508 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 13:59:20 ID:gKkUjDf5]
↑の話は、文字は変更できるがフォントが変更されないってことっす。

Cancel → キャンセル はE-WordChanger2000側でデフォルトで変換しているようで、何も設定していなくても変換され、文字化けしてしまう。
デフォルト変換をやめるよう設定できるのかな。途中まで作ってたんだけど、そのやり方がわからんからやめてしまったんだ。
なおGameMakerはデフォルトのフォントは MS Sans Serif(海外ソフトではお馴染み) が使われているようだ。


509 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 21:45:38 ID:vNqY00up]
クレジットカードを持ってないのですが、レジストするにはyoyoサイトのどこを見ればよいのでしょうか?

簡単に決済する方法はありますか。

510 名前:名前は開発中のものです。 mailto:sage [2007/10/25(木) 23:06:27 ID:oTzrknN0]
>>509
まず、yoyoサイトのアカウントを取得します。※メールアドレスが必要。無料のものでかまいません。
ログインしたら、ttp://www.yoyogames.com/gamemaker/buy/にアクセス。
クレジットカードかPayPalで決済するとすぐにレジストできます。
ですが、PayPalでもクレジットカードが必要になりそうですよね…
それ以外の方法となると、上記のページ下にあるように、helpdeskに問い合わせをしなければならないようです。

511 名前:名前は開発中のものです。 mailto:sage [2007/10/26(金) 19:58:39 ID:owvMBGHB]
>>510
丁寧にありがとうございます。

やっぱりクレジットカードが必要になるのですね・・・
フリー版でやれるところまで頑張ってみます。

512 名前:名前は開発中のものです。 mailto:sage [2007/10/27(土) 04:42:33 ID:bo72z7qT]
x160〜480の間にランダムにインスタンスを出したいのですがどうしたらよいでしょうか。
x0〜ならできるのですが><

513 名前:名前は開発中のものです。 mailto:sage [2007/10/27(土) 05:51:00 ID:b7zQv7OS]
壁に設置したハシゴをキャラクターを上らせるというアクションを取りたいのですがうまくいきません。

ハシゴ(3x16ドット)あるのですが、キャラとぶつかって「ハシゴ」に乗ってしまいます。
キャラがハシゴと接触したときにボタンを押すと掴む、何もしなければ素通りさせるという処理をしたいのです。
何か良い方法はないでしょうか。

514 名前:名前は開発中のものです。 mailto:sage [2007/10/27(土) 06:52:36 ID:UL5QEHWV]
>>508自分の作った辞書以外のチェックを外して、更にdicフォルダの辞書を自作辞書以外全て削除


515 名前:名前は開発中のものです。 mailto:sage [2007/10/27(土) 14:25:15 ID:47eNMq37]
>>512
使ったことないがx0〜320を出してそれに160足せばいいんじゃね?



516 名前:名前は開発中のものです。 mailto:sage [2007/10/27(土) 14:38:37 ID:szgPSdg7]
特定のインスタンスを変更するにはどうすればよいのでしょう・・?

通常のChange the instanceアクションで、Apllies toを使って
変更したいオブジェクトを指定すれば良いのはわかるのですが、
同じ事をGMLでやろうとしても、インスタンスを変更する命令が
instance_change(obj,perf)とposition_change(x,y,obj,perf)しか見当たらないのです。

オブジェクト名を指定してそのインスタンスを変更するというGML命令は無いのでしょうか…?

517 名前:名前は開発中のものです。 mailto:sage [2007/10/27(土) 15:43:28 ID:JBeAIlon]
>>516
つwith文
with (obj) {
// このブロックではobjのインスタンスすべてに適用される
// with文を呼び出している元々のオブジェクトに対しては other を使用する。
// x = 0; // これはobjのインスタンス全てのx座標が0となる。
// other.x = 0; // これはwith文を実行しているインスタンスのx座標が0となる。
//
// 特定のオブジェクトのインスタンス全てではなく、一つのインスタンスに適用したいなら、
// with文の指定でオブジェクト名ではなくインスタンスIDを使用すること。
// Tips : with文は、繰り返し処理である。対象となるインスタンスIDの若い順に実行されているようである。
}

518 名前:名前は開発中のものです。 [2007/10/27(土) 18:29:37 ID:mK85JoeL]
あぁー。

ようやくwithが理解できました。
言われてみれば簡単でしたね。

ありがとうございました。

519 名前:名前は開発中のものです。 [2007/10/27(土) 19:06:11 ID:MYcBDy56]
2Dアクションを作っているのですが通り抜けできない障害物の作り方がよくわかりません。
上に乗れるが横からは通れないようなものを作りたいのですが何を設定すればいいんでしょう

520 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 01:05:44 ID:4H1O2wN3]
>>511

つ VISAデビット

521 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 02:22:00 ID:eDM7pNaz]
>>519
それだと上からも横からも通らないオブジェクトだから普通のオブジェクトじゃない?

522 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 10:38:07 ID:cbYdgwGn]
ヘルスの上限を100にしたいのですが上限を設定するにはどうしたらいいのでしょう。

523 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 11:40:24 ID:leAMyaxz]
>>519
マリオやロックマンのような2Dアクションは意外に敷居が高いです。GameMakerなら、ソリッドオブジェクトとか、それに関するアクションの理解がいろいろ必要です。
公式のチュートリアルのソースを良く見てみましょう。
ttp://www.yoyogames.com/downloads/tutorials/platform.zip
この中の platform_1.gmk が基本的な部分になると思います。

>>522
100より増やしたくないなら、100超えたときに100にしてしまえばよい、というようにします。

ヘルス増した後に次のコードを追加。
if (health>100) health = 100;

Actionなら
if health is larger than 100
set the health to 100
のようなかんじで。

524 名前:名前は開発中のものです。 mailto:sage [2007/10/28(日) 21:14:01 ID:cbYdgwGn]
ありがとうございます
もうひとつ聞きたいのですがルームで設定したview1やview2を切り替えるにはどうしたらいいのでしょうか。

525 名前:名前は開発中のものです。 mailto:sage [2007/10/29(月) 05:01:09 ID:zuWao6Bl]
ver7 についての情報はありませんか。




526 名前:名前は開発中のものです。 mailto:sage [2007/10/30(火) 11:56:12 ID:G3KKfzgr]
日本語化パッチまだ〜?

527 名前:名前は開発中のものです。 mailto:sage [2007/10/31(水) 17:07:35 ID:kICjS8bb]
ver7を使っています。
ウインドウサイズについて困っています。

Settingでwidth:640 height:480にしています。
ゲーム起動してそのままのサイズで始めたいのですが、モニター画面めいっぱいに広がって起動してしまいます。
どこを設定すればよいのでしょうか。

View in room

528 名前:名前は開発中のものです。 mailto:sage [2007/10/31(水) 17:11:22 ID:kICjS8bb]
すいません途中で送信してしまいました。

View in room は、見せる範囲ですよね。そこは w:640 h:480 にしています。
port on screen でも同じく w:640 h:480 にしています。
ですがport on screen のサイズを変えると、ウインドウサイズは小さくなるのですが、絵が潰れてしまいます。

どこを設定すれば、元の絵のまま w:640 h:480 で綺麗に表示できるのでしょうか。

529 名前:名前は開発中のものです。 mailto:sage [2007/10/31(水) 17:28:18 ID:kICjS8bb]
すいません解決してしまいました。

grobal game settings の graphics > scaling のfixed scale が 200% になってました。
お騒がせしました。

530 名前:名前は開発中のものです。 mailto:sage [2007/11/01(木) 22:33:50 ID:4l261QOy]
テキストファイルに記述した キー=値 を起動時に読み込んで、
変数として扱うには、どうすればいいですか?

ver7 未レジスト

531 名前:名前は開発中のものです。 mailto:sage [2007/11/02(金) 04:01:27 ID:qbEUBjbm]
>>524
亀レスですみません。例えばview[0]を無効にしてview[1]を有効にしたければ、以下のようなコードを書きます。
view_visible[0] = false;
view_visible[1] = true;
view_xport[1] = 0; /* ウィンドウ内に表示する左上位置のx座標 */
view_yport[1] = 0; /* ウィンドウ内に表示する左上位置のy座標 */
view_wport[1] = 640; /* ウィンドウ内に表示する横幅 */
view_hport[1] = 480; /* ウィンドウ内に表示する縦幅 */

view1からview0にもどしたければ、配列番号の1と0を入れ替えればよいです。

>>530
ファイルの読み書きをするには、ファイルを扱う最低限の知識が必要になります。(オープン>読み書き>クローズ)
それを踏まえて簡単な方法として、iniファイルを利用する方法があります。iniファイルの構文などは、ネットでお調べください。
・ini_open(filename) ファイルネームを指定してiniファイルを開きます。
・ini_read_real(section,key,default) [section]内にある文字列key に設定されている数値を読み込み、数値を返します。
・ini_close() 開いているiniファイルを閉じます。
この関数を、あらかじめルームに配置されているオブジェクトのクリエイトイベントやルームスタートイベント等で実行させましょう。
例:
ini_open("setting.ini");
global.difficulty = ini_read_real("main","difficulty",0); /* iniファイルからmainセクションのキーdifficultyの数値を読み込む */
ini_close();

独自形式なら、テキストファイルを読み書きする関数等を使いましょう。
・file_text_open_read(fname) テキストファイルを開きます。成功するとファイルIDを返します。
・file_text_read_string(fileid) ファイルIDのファイルから文字列として一行読み込みます。
・file_text_read_real(fileid) ファイルIDのファイルから数値を読み込みます。
・file_text_close(fileid) ファイルIDのファイルを閉じます。

532 名前:名前は開発中のものです。 mailto:sage [2007/11/03(土) 19:29:28 ID:zfNPIsFo]
最近質問が多いんで、GameMaker用まとめwikiサイトを作りかけてるんですが、需要あります?
wikiはgamdevにもあるけど、あそこは紹介程度にして詳しい情報はほかのところでまとめたほうが良い気がしますし。
内容がGMJapanと被ってしまうのも気になります……。

ページ
ttp://www.wikihouse.com/GameMaker/index.php?FrontPage
まだGMLの変数一覧とか、関数一覧(数学関数以外ほとんど白紙)ぐらいしかないです……。
もし需要があるなら、補完してくれるとありがたいです。(GML関数の解説でも一人じゃつらい…orz)
あと、ほかにどんな情報がほしいのかとかもわからんです。公式チュートリアルの解説とかあるといいのかな?

533 名前:名前は開発中のものです。 mailto:sage [2007/11/03(土) 19:59:03 ID:Z5CTQc/a]
>>532
どこかに一行入力?があると嬉しいです。

>>531
ありがとうございます。
狙っている動作は、各キャラクターのパラメーターをプレイ時に読み込む事です。
(移動力・攻撃力の差異等)
GML、iniのの項目では全体の設定として使用するような事がかかれてあったので
最後のテキストファイルを読み書きする方法でいきたいと思っています。

指定行の読み込みはできるのでしょうか。

534 名前:532 mailto:sage [2007/11/03(土) 21:43:07 ID:zfNPIsFo]
>>533
Topページにコメントを設置しました。

あとご質問ですけど、キャラごととなると iniファイルは不適切ですね。
テキストファイルの扱いですが、基本的に先頭から読み込みます。(読み込んだあとは、戻れない)
>>531(=>>532だったり) では書かれていませんが、file_text_readln(fileid) を実行するとこで、次の行に移動します。
したがって任意の行を読み込むには、ファイルを開いたあと指定行までスキップしてfile_text_read_string() するということをしなければなりません。

例えば3行目を読み込みたかったら、次のようにします。(※インデントは全角スペースです)
fileId = file_text_open_read("filename.txt");
for (i=0; i<2; i+=1) {
  file_text_readln(fileId); /* forループにより、file_text_readln() が2回実行される */
}
text = file_text_read_string(fileId); /* 変数textに3行目の文字列が入る */
file_text_close(fileId);

もしくは、一つのデータが1バイトで収まるのであればバイナリファイルを扱ってもよさげですね。以下、必要そうな関数を列挙しておきます。
file_bin_open(fname,mod) ファイルを開きます
  fname : ファイルネーム
  mod : 開くファイルのモード 0:読み込み 1:書き込み 2:読み込み/書き込み ※書き込むと既存ファイルを上書きしてしまうので注意
file_bin_read_byte(fileid) 現在位置から1バイト読み込み、1バイト移動します
file_bin_write_byte(fileid) 現在位置から1バイト書き込み、1バイト移動します
file_bin_seek(fileid,pos) ファイルの先頭からposバイトの位置まで移動します(先頭は0)
file_bin_size(fileid) ファイルのサイズを取得します
file_bin_close(fileid) ファイルを閉じます

535 名前:名前は開発中のものです。 mailto:sage [2007/11/04(日) 03:55:29 ID:7Uhxdtas]
こういうのすごいありがたいわー



536 名前:名前は開発中のものです。 mailto:sage [2007/11/06(火) 01:19:01 ID:IQqW+3zu]
ニコニコアクションゲーム うpってくれねぇかなぁ

537 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 00:08:08 ID:mZ/mosz1]
kyara

538 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 00:10:02 ID:mZ/mosz1]
ごめんなさい。 間違って送信してしまいました。

質問です。
ヘルスメーターをキャラクターの頭の上に表示したいんですが、
Drawイベントにセットしたら、キャラクターのスプライトが
消えてしまうのです。

キャラクターを含め、深度?の設定は何も弄っていません。
どうしたらいいのでしょうか。

539 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 01:24:51 ID:k+N2ubak]
>>538
drawイベントになにかアクションを置いてしまうと、設定されてるスプライトも描かなくなってしまうんだよね。
この仕様はおそらく、スコアやライフを自前で描くオブジェクトを用意したいときに、
エディタ中でルームに配置するときの識別アイコンとしてスプライトを使用することを視野に入れていると思う。
んなもんで、スプライトを表示したければ自前でやらなければなりませぬ。
drawイベントの一番上にでもオブジェクトに設定しているスプライトを描くよう、描画アクションを追加してください。

540 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 10:27:56 ID:lUo/Ckqn]
砲台を常に自キャラの方向に向けるのってどうやったらいいのでしょうか
stepイベントとset varを使うような気がするのですが…

541 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 22:06:45 ID:mZ/mosz1]
>>539
ありがとうございます。

スプライトを表示することができるようになったのですが、
イベント左キーでキャラクターを左向き、
イベント右キーで右向きに向くようアクションを設置していたのですが、
ずっと、drawアクションで設置したアクションのスプライトが
表示されつづけて変化しません。

自分は根本的に何か勘違いしているのでしょうか。

542 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 22:09:58 ID:HXVYqugh]
>>540
角度を求めるアクションがないし、自前でやろうとしても三角関数の知識がない無理だし、以下の手順で。

手順1.
Scriptリソース(advanced mode じゃないと見えないから注意)にgetDegree という名前でスクリプトを追加する。
そして以下の2行をコピペ。
// argument0 のインスタンスから見た argument1 のインスタンスの存在する角度を計算する
return radtodeg(arctan2(-(argument1.y-argument0.y),(argument1.x-argument0.x)));

手順2.
砲台のオブジェクトのステップイベントで、自キャラ(ここではobj_myshipというオブジェクト名)までの方向を示す
変数(ここではdirとする)にVarアクションで次のように設定する。
variable: dir
value: getDegree(id, obj_myship)

以上で-180°〜180°(0°で画面右方向)の数値が得られるので、それをどうにか処理してください。

543 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 22:20:34 ID:HXVYqugh]
>>541
表示を変えたいなら、draw spriteなアクションだと無理。コードで書くしかないかも。
以下に例を示すので適当に読み替えて試してみて下さい。
例:
表示するスプライト番号を記憶する変数drawSpr(名前は何でもよい)を以下のように使用する。
[createイベント]
Varアクションを追加して
variable : drawSpr
value : デフォルトのスプライト
[右入力イベント]
Varアクションを追加して
variable : drawSpr
value : 右向きのスプライト
[左入力イベント]
Varアクションを追加して
variable : drawSpr
value : 左向きのスプライト
[drawイベント]
codeアクションを追加して
draw_sprite(x,y,-1,drawSpr); //アニメーションするなら3つめの変数は左のように-1を指定する。0以上を指定すると固定される。

544 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 22:21:53 ID:HXVYqugh]
ごめ、訂正。↑の最終行は「3つめの変数は」ではなく「3つめの引数は」です。

545 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 22:27:00 ID:HXVYqugh]
ほんとにごめん、訂正その2 orz
>>543の例だと表示はいいかもしれないが、当たり判定とかまずいな。
変数名はdrawSpr ではなく、 sprite_index としてください。



546 名前:名前は開発中のものです。 mailto:sage [2007/11/07(水) 22:45:10 ID:mZ/mosz1]
>>545
!!!
うごきました。 狙った通りの動きをしてくれました。
ありがとうございます。 コードってすごいですね。

splite_index で動作しました。


547 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 00:01:11 ID:d2+xWEQm]
>>542
つpoint_direction

548 名前:542 mailto:sage [2007/11/08(木) 00:13:09 ID:1Yl9ePE9]
>>547
すっかり忘れてますた。。。吊ってキマツ....
λ.................

549 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 00:28:00 ID:/npJWupm]
初心者です。
弾があたったらHPを減らすようにしたいのですがどうしたらいいのですか?

550 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 09:51:24 ID:/npJWupm]
すいません解決しました。
ヘルスメーターを複数設置することってできますか?

551 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 12:51:44 ID:n3szi+FF]
>>550
まずは聞く前に>>1の情報サイトを見ることから始めないか?

552 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 18:55:03 ID:lBo37aAD]
質問です。

コードをうつ内蔵のエディターで、「Ok,Save Changes」のボタンのショートカットキーか
他のエディターを使用する等はないでしょうか。

553 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 20:46:09 ID:nEyNxx0n]
内臓のコードエディタのウィンドウを閉じる動作をショートカットキーでやりたいって意味なら、無理かも…。
外部のテキストエディタを指定することは可能です。
FileメニューからPreferance を開くと、Script&code とあるので、
その一番下のところに外部エディタを指定するところがあります。

554 名前:名前は開発中のものです。 mailto:sage [2007/11/08(木) 20:57:31 ID:lBo37aAD]
>>553
ありがとうございます。できました。
しかし、外部エディタを使うとgamemaker自体が閉じるんですね。
外部エディタを終了すると、gamemakerが戻ってきますが。

555 名前:名前は開発中のものです。 mailto:sage [2007/11/09(金) 01:24:06 ID:jfoeydIJ]
ファイルから文字列を取得する方法は上記のでてたやり方でわかったんですが、
それらを変数として扱うやりかたがまだわかりません。

kitai001.txt
attack=50
move=5
pow=3

という内容で機体データを読み込んだ時に
変数として扱いたいんです。
どうすればいいのでしょうか。



556 名前:名前は開発中のものです。 mailto:sage [2007/11/09(金) 02:01:52 ID:6eGYZdLF]
>>555
一番簡単なのは、execute_file(fname)、もしくはexecute_string(string)かなぁ。
指定するテキストファイルや文字列がGMLの文法にのっとってることが前提だけど。
例に出ている

attack=50
move=5
pow=3

とかなら全然OK。変数を代入したいオブジェクトでexecute_file(fname)を使うと一気に代入されるはず。
キャラ毎にファイルを作っておいて、キャラ毎に実行してみるようにしてみては?
ついでに言うと、execute系の関数は実行時にコード変換されるから、処理が重い(と予想される)。
今回のような初期化処理に利用するぐらいにしたほうが良い。

もちろん、文字列を扱う関数を駆使してもできるけど、かなり面倒かな…。

557 名前:名前は開発中のものです。 mailto:sage [2007/11/09(金) 02:14:59 ID:UPA3QoAL]
敵が味方に向かってくるようにはできますか?
調べてもわからないので教えてくれるとありがたいです。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<345KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef