【2D】ゲーム作成ツー ..
[2ch|▼Menu]
355:名前は開発中のものです。
07/04/12 00:54:45 QrBMbbB1
>>352>>354
見れるようになってますね。お騒がせしました
>>352
GML最初のうちは短いコードで慣れていくのもいいし
書かなくともヘルプファイル見るだけでも結構動きの
構想とかしやすくなると思うのでヘルプは目を通して
おいたほうがいいよ
Game Maker 言語 (GML)のゲーム動作〜リソースの
項目は読んでおいたほうが得です。ボリュームもそんなに多くないし


356:名前は開発中のものです。
07/04/12 22:27:46 Sbn3uWuO
>353
両方触ったことあるけど、
tonyuの方が使いにくかったかな。
変数の設定とかがややこしかった、

あとtonyuはけっこう重いので、凝ったゲーム作り出すとキツイ。
まぁGameMakerも50歩、100歩だけど。

英語で拒否反応でないならGameMaker、
でるならtonyuで良いんじゃないかな。

357:名前は開発中のものです。
07/04/12 23:18:34 mKQY5DpX
ライフ表示させても-1になっちゃうんだけど、
ライフポイントの設定ってどこでやるんだ?

358:名前は開発中のものです。
07/04/13 03:41:08 NNey5tvn
>>357
>>343がらみ?だとすると
livesは変数だからゲームループ用オブジェの生成イベントなどに
「Set the value of a variable」アクションで代入するか
一番最初のルームの「Creation code」ボタン押して
lives=10;
とか書いてみたら?

359:名前は開発中のものです。
07/04/14 21:57:31 jjaaUazu
>>358
うーん、前者はうまくいかないし後者は死んだりしても
ライフポイントが10のままになるなぁ。

とりあえず変な方法で自己解決しますた

360:名前は開発中のものです。
07/04/29 00:32:56 HfNWiMIn
アクションゲームでよくある、
敵にぶつかったら少しの間無敵ってのをやろうとしてるんだけど、
何故かその状態になったら地面にめりこんでいってしまう・・・
何故なんでしょうか?

361:名前は開発中のものです。
07/04/29 00:35:42 HaLkae7w
地面との当たり判定が消えてるからだと思うよ

362:名前は開発中のものです。
07/04/30 15:28:50 A4GmDhZw
スプライトを透明にした瞬間に、当たり判定がなくなってしまっているからかと思われる。
Maskを別に設定(オブジェクトのダイアログで設定できる)しておけば、
スプライトを透明にしても当たり判定がなくなることはない。

363:名前は開発中のものです。
07/04/30 17:44:34 lkMf0FqM
6と7ってどう違うの?使うスクリプト同じ?

364:名前は開発中のものです。
07/05/01 01:19:29 jv2UXUrh
>>363
5→6の時と違ってほぼ完全上位互換。6で作ったゲームもそのまんま動く。
その分見た目的には大きな進化はなくて、ダイアログ関係とか印刷とか
地味なところが強化されているってのが今のところの印象だな。

365:名前は開発中のものです。
07/05/03 04:06:18 RLRXPrc7
>>349ですが、前のステージでのキャラクターの状態によって、
次のステージでマリオ・スーパーマリオどちらかの状態で
始まるようにするにはどうしたらいいでしょうか?

同じステージを2つ作って、(最初の立ち位置が)マリオ用・スーパーマリオ用
に分けるとか考えてみたのですが、その分重くなりそうで…。

366:名前は開発中のものです。
07/05/03 12:37:46 fBZoJtsj
つ [オブジェクトのpersistentにチェック]

これをすれば、ルーム間でインスタンスが保持されるようになるよ。
そういうオブジェクトを1つ作っておくと、ルーム間での値のやり取りができるから便利。

367:名前は開発中のものです。
07/05/03 12:49:48 fBZoJtsj
あ、値のやり取りだけなら、別にグローバル変数でもいいのか。失礼。

368:名前は開発中のものです。
07/05/14 16:47:04 wDJv4xoP
GM6ってもう今はDLできない?

369:名前は開発中のものです。
07/05/14 22:52:19 6E+INFL2
URLリンク(www.gamemaker.nl)

370:名前は開発中のものです。
07/06/13 20:10:00 obp421sd
ツクールに不満を感じた俺
とりあえず今からDLだぜ

371:名前は開発中のものです。
07/07/12 07:50:07 qy2/B/jA
今月始めぐらいからチュートリアルにらみながらゲーム作ってる
が、Game Maker Japanの表示が妙に重くて、ページを切り替えるたびにやきもきしてる
現在8時前だけど状態は変わらず・・・うーむ。


372:名前は開発中のものです。
07/07/13 00:29:18 OaGbqBn6
気合で乗り切る

373:名前は開発中のものです。
07/07/18 06:22:52 UXcd6qfL
ロックマンを見習いつつ横スクロールアクションを作ってみてるんだけど
画面左上に常にライフゲージを表示しようとしてるものの、キャラが
横に移動して画面がスクロールするとゲージが置いてけぼりになってしまう
どうにかうまいこと常に画面左上に表示ってできないかな?

374:名前は開発中のものです。
07/07/19 01:44:05 tSFqaNoK
>>373
座標をビュー相対で指定してやればいい
x1: view_xview[0] + 10
y1: view_yview[0] + 20
x2: view_xview[0] + 110
y2: view_yview[0] + 30
ってな感じで。

375:名前は開発中のものです。
07/07/19 09:09:31 nvp/X0pz
>>374
返答有難う!ちゃんとスレ見てくれてる人がいたのがまず嬉しい。
で、教えてもらった方法で記述してテストしてみたら、エラーがでてしまった
翻訳ページで翻訳してみたら、変数を定義していない?みたいな感じだった
おそらくview関連の変数を指定する場合準備が必要なのかもしれない・・・
が俺は変数関連の知識に乏しいので断念した。

他の方法を探してみたら、wikiの作品まとめのページにあった
「ふぁんたじぃさんミニステージ」で俺のやりたかったことをやってくれてたので
拝借して構成を覗いてみた。そうしたらルームのビューを二つ指定するという
至極簡単な方法で解決していたので驚いた。今それを真似て成功したところ。

>>374のアドバイスを参考に出来なかったのは非常に申し訳ないが
今後もしばしば悩みどころが出てくると思うので、自力で解決できなかった時は
またアドバイスをお願いしたい。
ちなみにGMのバージョンは5.3Aでやってる。(これも最初に言わなかったのは申し訳ない)

376:名前は開発中のものです。
07/07/19 20:07:07 xOA1USa+
作成途中でもうpするとこのスレも盛り上がるよ
ソース公開したくなければ実効ファイルにしてうp

377:名前は開発中のものです。
07/07/19 23:32:25 tSFqaNoK
>>375
GM5だったらこうだな。
view_xview → view_left
view_yview → view_top
view_wview → view_width
view_hview → view_height
5と6以降ではけっこう違いがあるので
気をつけた方がいいかもね。

378:名前は開発中のものです。
07/07/22 10:28:04 WAhC1ZLe
GM7って、必要スペックが6よりも高いみたいだ。
最低ビデオメモリも32MB必要だし。
軽さを重視するなら5.3Aにするべきかな……。

379:名前は開発中のものです。
07/08/14 00:03:24 9wyA8dRN
最近GM5でロッ○マンを作っている者です。
ジョイパッド使用のゲームを作りたいのですが、ジョイスティックで
Key release みたいなイベントの使い方って出来ないのでしょうか。
良かったら教えて下さい。

380:名前は開発中のものです。
07/08/14 00:26:20 12cRFs0g
最近ゲーム作りを始めたのですが
中間地点を通った後以降の死亡判定後は中間地点から
始まるようにするにはどうすれば良いのでしょうか?
分かる方是非教えて下さい。

381:sage
07/08/16 13:34:33 lv13P6Ug
>>379
>>160>>161に同様の質問、返答があるのでそちらを
参考に組んでみてはいかがかと・・

382:381
07/08/16 13:47:27 lv13P6Ug
あう あげちまった・・・逝ってくる

383:名前は開発中のものです。
07/08/16 14:43:31 lv13P6Ug
>>380
その場復活じゃなくて、戻り復活ってやつですよね?
作りこみの仕方でやり方変わると思う。例えばシューティングの様な強制スクロールだと時間軸メインで
考えやすいのでタイムラインを使用する選択が思いつくし、
ロッ○マンのような任意スクロールだと時間軸じゃなくてルームの位置で判断させるんだと思うからスプライトを
非表示にしたオブジェクトをルームに配置し、自キャラと衝突判定させるやり方をするとか・・
自キャラのふるまいの仕様とかも関係してる場合もあるし、なんとも言えないんだけど
自分は前者のタイムラインを使った戻り復活やったことあるので一応書いてみます。
参考にならないかもですが・・・


384:名前は開発中のものです。
07/08/16 15:30:09 lv13P6Ug
>>383のつづき
当方gm6.2
1,自キャラオブジェクト(ここではmycharaとしておきます)に復活ポイントを保存する変数(ここでは例としてres_flとしておきます)を登録してやって初期値0を代入する
 (roomのCreationCodeに mychara.res_fl=0と入力)
2,死亡判定処理の一番最後に「Restart the current room」アクションを置く
3,敵の出現するパターンを登録したタイムラインに復活ポイントの時間に相当するステップへres_flに1とか2とか任意の値を再代入する。
4,3のタイムラインの一番最初のステップへswitch文を使ってres_flにて分岐判断させ、timeline_positionを使って復活ポイントへ飛ばしてやる。




385:名前は開発中のものです。
07/08/16 15:47:41 lv13P6Ug
>>383のつづき2
4000,8000ステップに復活ポイントがある場合以下の様になる
switch(mychara.res_fl)
{
case 0:
break;
case 1:
self.timeline_position = 4000;
break;
case 2:
self.timeline_position = 8000;
break;
}
こんな感じで、初めてこのルームにきたときはres_flは0なのでcase 0:を通りbreakするのでタイムラインは今のステップのまま続行される。
4000ステップを超えた後に死亡判定が立てばカレントルームがリスタートするが4000ステップでres_flに1が代入されているのでcase 1:を通り
4000ステップまで一気にジャンプする8000ステップも同じ・・・と自分の場合こんな風にやってみました。参考になるかな^^?

386:名前は開発中のものです。
07/08/16 17:02:09 lv13P6Ug
>>383の補足
上の例は自キャラであるmychara死亡判定時、自キャラに対しdestroy the instance(インスタンス破棄)はせず
やられた用のスプライトを差し替えをしてライフを1つ減らしています。ですのでres_flは初期値にリセットされません。
またif文を用いて
ライフの数が0以上なら「Restart the current room」、
0未満になれば「Restart the game」する様、分岐させています。

387:名前は開発中のものです。
07/08/21 03:17:21 Y9/E+LWQ
>>381
返答ありがとうございました。もちろん読ませて頂いたんですけど
これだと十字キーではできないかんじですよね?スライディングが
したくて…><

388:名前は開発中のものです。
07/08/22 22:29:28 zLT3+18j
>>387
>>161のGMJリンク先はジョイスティックのボタンだったんだ。すまそ、
>>161のリンク先の書いてる内容が理解できてらっしゃるのなら
ボタンの状態を調べるjoystick_chech_button()関数代わりに
十字キーの状態を調べる関数joystick_xpos()またはjoystick_ypos()を使えばいいかと・・・
スライディングだからjoystick_xpos()だと思う。
この関数、十字キーで右に入力すると”1”を、左に入力すると”-1”を、横方向の入力がない場合は”0”を出力します。
それから>>182>>185>>187の書き込みにあるようにゲームパッドによっては中立位置”0”を厳密に返さないもの(0.0021とかになる)があるという
不具合もわかっているのでround()関数を使ってjoystick_xpos()関数を丸めてから使うといいです。
しかし老婆心ながらリリースするごっとにスライディングするのはどうかと・・・まぁそこらへんは考えてるとはおもうけどね・・・

389:388
07/08/22 22:42:15 zLT3+18j
× joystick_chech_button()関数代わりに
○ joystick_check_button()関数の代わりに
joystick_ypos()は別にいらんかったか・・・
誤字脱字多くてすみません

390:388
07/08/23 00:12:24 bkzzA+nn
>>387
過去に同じような内容の書き込みがあったなとあまりよく読んでなくて正直すまなかったです。
とりあえず自分が思うところは>>388のとおりです

391:387
07/08/23 04:22:24 KyDjC5ZC
>>390
ありがとうございました。正直こんなに親切に回答していただけるとは思っていなかったので…。
心から感謝します!さぁ、これでがんばるぞ!

392:名前は開発中のものです。
07/08/23 18:15:25 ARupBfNU
あまりプログラムについて関係ない話になって恐縮ですが・・・

wikiなどから他の方々の作品を参考にさせていただいているのですが、
皆さん画面サイズ小さめで作られているように見受けられました
自分は現在640x480のサイズでアクションゲームを作成しているのですが、
これだと環境次第で処理が重くなったりするのでしょうか・・・?

393:名前は開発中のものです。
07/09/08 18:44:33 4uM7iYSL
あうあうあうぁー・・・・
なんでジョイパッドにはpress/releaseが用意されてないんだろう・・
GMLで出来るのも知ってるし、やってるけど、
press/releaseイベントを用意しない理由が良くわからない。

394:名前は開発中のものです。
07/09/08 19:07:46 85eGhnYf
>>392
亀レスだけど現時代のロースペックPCならば
そのサイズでいいんじゃないかな

395:名前は開発中のものです。
07/09/09 12:49:53 UoCGhB6S
↑や→でその方向にキャラクターを動かせるのですが
斜めに動かしたいとき↑→同時押しに設定するのは可能ですか?

396:名前は開発中のものです。
07/09/09 22:16:05 /p7HxcHm
>>395
「可能ですか?」と聞かれたら答えは「可能です」だけど、
「具体的にどうすればいいの?」ってのならその2行じゃ答えにくいです。
「現状の段階でどのイベントでどのアクションを使って動かしてる」とか
「GMLは使えるよ〜」などの追加情報がほしいところ・・
でなければ作成途中ファイルをゲムデヴにうpするなりしてちょ・・・・
とかいいつつGMLが使えるなら、前スレ>>758に移動距離補正のGMLを
載せたサンプルファイルがあるから参考にしてみればいいと思うよ
(過去ログURLは>>50にあり)

397:名前は開発中のものです。
07/09/09 22:31:05 hOxeF4wt
移動のみに着目するなら難しいことを考えずに
「↑入力で上に移動」「→入力で右に移動」と設定すれば
同時に入力すると斜めに動くと思う

398:396
07/09/09 23:25:01 /p7HxcHm
>>397
自分も最初そういうふうに思ったんだけど
>>↑や→でその方向にキャラクターを動かせる
とあったのでPressイベントで書いてないのかも・・とか思ったんだ。
長ったらしかったかな?

399:名前は開発中のものです。
07/09/11 19:05:04 Gh8tZ+fJ
ver5とか6とか7とかみんな言ってるけど、
どれだけ違うのこれ、初心者は5?
英語読めれば初めてでもそれ以降で可?

400:名前は開発中のものです。
07/09/11 22:21:20 jdaCXeMV
まあ、レジストして使うつもりなら基本的には新しい方がいい

5を使うメリットとしては
・動作条件がゆるい→多くの人に遊んでもらえる(可能性がある)
・日本語化できる
・日本語をそのまま描画できる

一方、6以降だと最大の魅力はスプライトの回転ができること。
他にも半透明機能がふんだんに使える、組み込みのエフェクトなど
グラフィック面が大幅に強化されている。
ただし追加機能のほとんどはレジストが必要。
ちなみに6と7は、普通にゲーム作る分にはほとんど差はないかな

このへん天秤にかけて選ぶといいと思うのだが
5って今レジストできたっけ?

401:名前は開発中のものです。
07/09/12 00:29:19 fg25ornc
6を購入したときは、YOU!こいつは5も使えるKEYだぜHAHAHAって書いてあった。

402:399
07/09/12 01:51:07 r4gQgCh/
>>400
情報ありがとう。
それなら「とりあえず」将来性?もありそうな7を使うことにします。
ぐるぐる回るのは絶対使う気がしますしね。

>>401
よっぽど6の動作に自信がなかったんでしょうか。

初めてですが適当に作ってみました。
適当って言うか、投げやりです。ニコ動に上げてみた。
URLリンク(www.nicovideo.jp)

遊べるレベルでは、無い。

403:名前は開発中のものです。
07/09/12 02:27:03 wCm8h5Qq
>>402
是非とも本家を超える難易度で完成させてくれ。

404:名前は開発中のものです。
07/09/12 10:07:21 qUDFwcmG
Ver6は変数が6、7桁までの数値しか扱えないってのもネックじゃないかな。
日本語描画なんて絶対に必要だろうし、VRAMが32MBともなると、
動かないPCがかなり出てくるんじゃないかと。

405:名前は開発中のものです。
07/09/13 07:32:54 QTqHCpBm
強制横スクロールってのはどうやればいいんですかね
キャラが画面からはみ出ないように

406:名前は開発中のものです。
07/09/14 23:09:41 yqNW6zY+
>>405
オブジェクトにビューを追従させるかわりに自分で動かす。
たとえばキャラクタのStepイベントにこんな風に書いておく。

view_xview[0] += 2;

キャラクタがはみ出さないようにするのはこんな感じで。
(スプライトのサイズとか計算に入れて調整した方が
いいかもしれないけど)

x = min(max(x, view_xview[0]), view_xview[0] + view_wview[0]);
y = min(max(y, view_yview[0]), view_yview[0] + view_hview[0]);

GM5の場合は変数名が違うので、>377を参考に書き換えてくれ。

407:名前は開発中のものです。
07/09/16 02:26:50 Jr4lZJq+
出来ました。ありがとうございます

それとマップの最後のほうでボス等が現れたとき
画面のスクロールを止めたいのですがそれはどうすればいいのでしょうか。

408:名前は開発中のものです。
07/09/16 22:57:11 KiAjhsb3
予めボスのところに見えないオブジェクトを置いて、
それが画面内に入ったらビューのスクロールを止めるようにすればよいかと。

409:名前は開発中のものです。
07/09/17 02:33:49 w06cRgAN
ちょっと関係ない質問ですまないです
>>402氏の様な録画はどういった方法がお勧めですか?
できれば音付きで

410:名前は開発中のものです。
07/09/17 08:21:42 lhifefbO
ゲームの録画はfrapsを使うな。
無料のソフトもあるけど、それだとコマ落ちしてしまう。

411:名前は開発中のものです。
07/09/17 09:15:55 xMFEKfRa
使うなよと言っているのか俺はこれを使っているよと言っているのか

412:名前は開発中のものです。
07/09/17 09:20:05 fcLNcExh
WMEで十分

413:名前は開発中のものです。
07/09/17 10:23:54 JW6xQlOz
GameMakerって32x32のスプライトをだいたい何個くらいまで出しても処理落ちしませんか?

414:名前は開発中のものです。
07/09/18 19:52:17 3LUcBFIL
URLリンク(gamemaker.main.jp)

これの部屋を広げて、ボールを敷き詰めてみたけど処理落ちしなかった。
でも、人によって環境違うから、自分で試してみた方がいいよ。

415:名前は開発中のものです。
07/09/18 22:44:37 cbpWAXQe
グラディウスのようにスピードを何段階かあげるようにしたいのですがどうすればいいのでしょう。
普段はキーを押したときjump to given positionでその方向に5程度動かしているのですが

特定のキーを押したら速度が1.5倍になって、もう一度押したら初期状態の2倍になって…という感じで

416:名前は開発中のものです。
07/09/18 23:33:40 N5uJH6ZI
変数を使えば良いと思うよ
jump to given position のところを 速度を表す変数 "spd" (名前は適当でよい) とかにして、
Key Press イベントで Set the value of a variable アクション( 四角でVARと書いてあるアイコン)を加えて、
variable のところに spd 、 value のところに spd+5 とかすると、押されるたびに速度が +5 されていくようになる

417:名前は開発中のものです。
07/09/19 00:24:58 K3MABk9U
>>415こんなのでどう?詳細はヘルプorマニュアル参照の事
@まず変数
 ・現状のスピードを覚えとく変数(説明のため仮にNow_speedとする)
 ・今が何段階なのかを覚えとく変数(仮にspeed_selectとする)
を用意する。これはCreateイベントにて[Set the value of variable]で初期値を代入すればおk
A[jump to given position]のx:y:の"5"といれているとこを"Now_speed"に書き換える
BkeyPressイベントで[If a variable has a value]でspeed_selectの値をチェックし[Set the value of variable]で
Now_speedの値をその時の段階数speed_selectに応じたスピード値に書き換えてやるとともにspeed_selectも
[Set the value of variable]で次の段階数へ更新してやる。
(2つの[Set the value of variable]は[Start of a block]と[End of a block]ではさむ事をお忘れなく)

これでキーを押すごとにスピードが変化する
段数を多くすると必然的にBの[If a variable has a value]と[If a variable has a value]の数が多くなっていくから
GML使えるならswitch文を使う方がスマート


418:417
07/09/19 00:30:17 K3MABk9U
うは 先答者いたw

419:名前は開発中のものです。
07/09/19 07:42:02 PrEtAf1p
>>416-417
ありがとうございます
変数は一応使っていたのですが速度を変数にするのは気づきませんでした

420:名前は開発中のものです。
07/09/20 21:56:13 4DzNB1VD
横から視点のゲーム作ろうとしてるんだが乗れる床が作れない
ジャンプしたら着地したときに少し滑るって動きをさせてるんだが普通の横移動で突っかかったようになる
バージョンは7GMLなんて聞いたことない過去ログは読んでない
アドバイスくれ

421:名前は開発中のものです。
07/09/20 22:31:17 5F1p/CW6
度々すみません
強制スクロールにすると画面下のアイコンや上に表示したスコアがついてこず画面外に取り残されてしまいます
現在のビューにアイコンやスコア等を固定するにはどうしたらよいのでしょうか

422:名前は開発中のものです。
07/09/21 00:11:25 FZFc4C4q
>>420
引っかかる現象は落下処理に問題がある場合が多い気がする。
コリジョン(めり込み)状態だと横に移動するときに引っかかるよ。いったん床にコリジョンしたら、
『めり込してないが、接している状態にする』処理と、
『床に接している状態では落下しない』処理を
きちんと為されているか、見直してみて。
条件やタイミングによっては抜けてしまっているとか、結構アリガチ(俺だけかなorz)

>>421
スコアの表示位置をビューの相対座標にしてみて。横スクならviewのx座標、縦スクならviewのy座標斜めならどちらとも)

423:422
07/09/21 00:12:19 FZFc4C4q
すまん、途中で送信してしまった、
>>422
ビューのx座標、y座標を スコアの表示位置に加えてみて。

424:名前は開発中のものです。
07/09/21 07:17:49 Md866hct
レジストしていないgamemakerで作ったゲームは
配布しても、大丈夫なんでしたっけ?

425:名前は開発中のものです。
07/09/21 07:51:14 7psMFQgC
>>423
ビューの相対位置にするにはどこを設定すればいいのでしょうか。
それと画面下に能力アイコンを表示しておきたいのですがそちらも流れる画面に固定するのは可能でしょうか

426:422
07/09/21 11:07:48 Zb+pDnU8
>>424
無料配布、販売もOKだよ。
でも販売はもちろん無料配布にせよ、画像とか音の素材は自力で用意するか、素材の作者が使用許可しているものでないと駄目っす。

>>425
直接相対にさせる設定は無いよ。大げさに言えば、そういうロジックを自力で組むということ。
アイコン表示もアイコン表示も同じやり方で対処可能だよ。
カンタンなのは、ステップごとに強制スクロールさせている移動量を x座標、 y座標 に加えていくようにする方法かもね。

でも、加えていくやり方がイマイチ面倒なら、
(理由のひとつに、中ボスとかで途中で強制スクロールを停止させる場合、その都度加えるのを止めなければならない。個人的に面倒。)
x = 画面に表示したい座標 + view_xview[0]
y = 画面に表示したい座標 + view_yview[0]
とかステップイベントで書いておくと、常にview画面に対してフィットする。

基本的にGameMakerは ルームの座標で処理しているので、
[ルーム座標系による座標] = [画面の左上を0,0としたときの座標]+(横ならview_xview[0] 縦ならview_yview[0])
という式が成立するはず。よくわからんかったら、色々やってみて理解を深めてください。
長い説明ですまんです。

427:名前は開発中のものです。
07/09/22 00:59:29 GELRMyyp
てっきり、レジストしてないと配布してはいけないと
思い込んでいました。

428:名前は開発中のものです。
07/09/22 10:45:04 PfhgUac3
自キャラの真上に分身のようなものを出して自キャラと同じ動きをさせるにはどうしたらいいでしょうか。

429:名前は開発中のものです。
07/09/22 12:48:31 597IuagT
>>428
分身となるオブジェクトのSTEPイベントにJump to position アクションで以下のように設定してみては。 

(自キャラのオブジェクト名をmyshipとします)
・x に myship.x とする。(myship と x とのあいだにピリオド( . ) を忘れずに!)
・y に myship.y - [自キャラオブジェクトの高さ幅]

xの値や、yのマイナス幅とかだけど、これはキャラの原点(origin)や画像のサイズに依存するんで
自分なりにアレンジして設定してみて。

430:名前は開発中のものです。
07/09/23 14:06:15 DKctpgDf
>>406のやり方だと画面上と左にははみ出ないのですが下にはみ出てしまいます。
これはどうすればいいのでしょう。


431:名前は開発中のものです。
07/09/23 16:53:43 x9nNhXjf
現在STGを作っており、自機を追尾するミサイルのような敵を
作りたいのですが、やり方がわかりません
どうすればいいのでしょう、ちなみにGMLはわかりません

432:名前は開発中のものです。
07/09/23 17:07:20 aQRdOqe9
>>430
キャラ画像のはみ出方に注意しないといけないよ。スプライトのOriginによってはみ出方が違うけれど。
Originは初期設定だと、スプライトの左上角の位置で座標管理されているから、
強制スクロールで右や下にはみ出ることになるよ。

たとえば、スプライトのOrigin(原点)が左上角で、縦幅48 横幅32 の場合、
>>406の式を以下のように変えればいけると思う。

x = min(max(x, view_xview[0]), view_xview[0] + view_wview[0] - 32);
y = min(max(y, view_yview[0]), view_yview[0] + view_hview[0] - 48);

>>431
Move towards point アクション(矢印と点があるアイコン)をステップイベントに追加して、

(自機オブジェクト名をmyshipとした例。>>429同様 myship と x との間にピリオドを忘れずに)
x = myship.x
y = myship.y
speed 適当な数値

としてみては。動きに不満があるかもしれないけどね・・・。

433:名前は開発中のものです。
07/09/23 18:06:04 x9nNhXjf
>>432
成功しました、ご指導ありがとうございました

434:名前は開発中のものです。
07/09/24 14:43:07 rIfQxbjS
ウィンドウキャプションに文字を打つと後ろにスコアが表示されてしまいます。
スコアを表示させない方法はありますか?

435:名前は開発中のものです。
07/09/24 19:00:34 wo/XJGT8
スコアキャプション アクション (ウィンドウっぽいアイコンでSLHと書かれているやつ)
で、show score の部分を don't show に変更しよう。

同様のことをコード(GML)で記述するならば、
score_caption = false;
でOK。

いづれも、最初のイベントのほうでやれば良いと思うよ。

436:435
07/09/24 22:06:25 Avl9+fei
>>435での訂正。
GMLでの記述が間違っています。正しくは

show_score = false;

でした。また、score_caption という変数名は無く正しくは caption_score です。
caption_score は、キャプション部分で点数の直前に表示する文字列(デフォルトで Score:) を設定する変数のようです。
混乱させてごめんなさい。

437:名前は開発中のものです。
07/09/25 14:18:30 juBklLfh
ボスキャラなどにひたすら上下に往復する動きをつけたいのですが何を設定すればいいのでしょう
パスの使い方はいまひとつわかりません。

438:名前は開発中のものです。
07/09/25 23:10:07 wgthl9NZ
>>437
アラームイベント+アラームアクションを使ってみましょう。

-----
手順1
   ボスオブジェクトのクリエイトイベントに、VARアクションを追加、
   valiable に updown という文字列(変数名)を、value に 1 を設定する。
手順2
   さらに、Set Alarm アクションを追加。number of steps に 1、Alarm no に Alarm0 を選択しておく。
手順3
   ボスオブジェクトに イベント Alarm0 を追加する。
手順4
   ボスのAlarm0 イベントで、Move fixed アクション(赤く八方に矢印が出てるアイコン)を追加。
   下を選択、speedには [適当な数値]*updown と設定する。
手順5
   続けて、VARアクションで variable に updown、value に -updown と設定する。
手順6
   さらに続けて、Set Alarm アクションを追加。number of steps に 60ぐらいを設定。
   Alarm no に Alarm0 を選択しておく。
-----

以上で、一定間隔で定速で上下運動するようになると思います。間隔を調節したければ、手順6 で設定した数値をいじってみてください。
単純な動きならこのようにアラームでも対処できますが、複雑な動きにしたければタイムラインやパスを扱う必要があるかと思います。

439:名前は開発中のものです。
07/09/28 22:00:48 +Qz3cTwT
>>422
遅くなってスマンがサクンス
Precise collision checkingってとこのチェックを外したら解決した
根本的解決にはなってないかもしれんが何とかなったww

もひとつ聞きたいんだが、gamemakerを使う上であればいいスキルってなにがある?

440:名前は開発中のものです。
07/09/29 01:28:10 OUsPaiyV
>>439
もしかしたら、キャラアニメのフレーム間で地面と接する位置が一致してなかったのかもね。
Precise collision checking がオンだと、キャラのドット絵自体が当たり判定になるから…。
チェックを外すと ドット絵に依らず Bounding Box が当たり判定となります。

GameMakerを使う上でのスキル、とは漠然とした質問(汗
まぁドット絵と音楽がある程度自作できると、楽しいかもね。(俺は満足に出来ん…orz)
GameMakerで色々したければ、GMLはやったほうが良いよ。ソースの見通しもよくなるし。
一番良い練習は、自分で作ってみたゲームのアクションをなるべくGMLで置き換えてみる作業かな。
また、Wikiにあがってるもの以外にも海外のサンプルとか漁って、
ソースを読むことが出来ればなおよいかと。(若干の英語力が必要)

441:名前は開発中のものです。
07/09/29 14:45:12 4bes+mi5
坂、というか斜面へのコリジョンやりたいんだけど
GameMakerってそういうの簡単に出来る?
これって基本はタイルベースでのマップ管理だよね?線分のリストとか逆に面倒そうだし

しょぼいサンプルじゃなくて、滑らかに坂を登ってそのまま平地を進む
みたいなの作れるレベルの人はいますか??

442:名前は開発中のものです。
07/09/29 19:23:42 9lJHmvQD
>>440
ドット絵とか音楽か・・・ちょっと本屋でいろいろ探してみますね
GMLも頑張ってみるw
英語力は辞書で補うwwwwwww

443:名前は開発中のものです。
07/09/29 20:01:59 F32aXzae
背景のちょっとした部分を動かしたりしたいのですが背景画像はアニメーションにはできないのですか?


444:名前は開発中のものです。
07/09/30 01:17:15 OYPKWvpr
>>441
こんな感じでいいかい?かなり粗い作りだけど。(バージョン 7.0)
URLリンク(gamdev.org)
スペースキーでボールが動くよ。
Precise collision checking に頼ったやり方だけどね。GMならではのやり方ともいえるんじゃないかなぁ。
ただ、Precise ... なコリジョンだと、実質タイルベースから開放される反面、融通の利かない場面もでてくるし、処理も重くなると予想されるね。
参考になれば。

>>443
背景画像は基本的にアニメーション出来ないよ。動かしたい部分にオブジェクトを配置するのが簡単な解決方法です。
スプライトによるアニメがどうしてもいやなら、動かしたい部分をタイルチップであらわして、
タイル管理オブジェクトを用意するなりして、そこから命令を出してタイルチップを定期的に変更して、アニメーションを表現する方法もあるにはあるけど、
結構手間がかかりそうな割りに、前者の方法に比べてメリットがあまり見出せません…。

445:444
07/09/30 08:23:59 J186ada5
度々ごめん。上で挙げたサンプルで、多少ギザついていた問題を修正した。
URLリンク(gamdev.org)




446:名前は開発中のものです。
07/10/01 02:57:41 uYTipwhK
>>444-445
おおー ありがとうございます
早速参考にさせてもらいます

これって本家や日本フォーラムでも話題にならないんですかね?
みんな矩形のカクカクしたマップで妥協してるのかな

447:名前は開発中のものです。
07/10/01 10:39:32 /4FfCvcD
てか最新版の日本語訳キボン

448:名前は開発中のものです。
07/10/01 13:21:12 m2qQgTFJ
ここにおられる人はゲーム作るのに数学は出来た方が有利だと思いますか?
僕は数学が苦手で2次方程式がようやく解けるくらいです。

449:名前は開発中のものです。
07/10/01 15:33:00 aKVg/NXF
>>448
出来なければ無理、というほどではないと思うけどある程度
数学の基礎知識はあったほうが有利だと思う。コマンドの幅が広がるはず。
あとはこのスレでよく言われてるGML、興味があれば勉強してみるといいかも。

勿論単純な作りのミニゲームとかをつくるならそういったことは気にせずに
直感的に組んでいっていいとおもうよ。それがGameMakerの長所でもあるしね。

450:名前は開発中のものです。
07/10/01 21:53:37 CZos6bFb
GameMakerってネット対戦できるものとか作れる?

451:名前は開発中のものです。
07/10/03 00:54:58 EFi7sI/b
バックグラウンドを途中で差し替えることは可能ですか?

452:名前は開発中のものです。
07/10/05 01:56:10 4xeppq1Q
>>450
できると思われ。公式のチュートリアルに、チャットとPongゲームのサンプルがあります。
ソースのみなので、実行するには GameMaker 7.0 Pro が必要になるけど…。
ダウンロード先 :
URLリンク(www.yoyogames.com)

>>451
背景画像は、background_index[0..7] という変数で設定されています。
ちなみに、0..7 は 0〜7 までのいずれかの数値がはいる、ということ。(配列)
また、背景は 0〜7番の8段階のレイヤで管理されているんで、最大8枚の背景を重ね合わせることができます。
たとえば、background1 という背景画像がリソースに登録されているとして、
背景レイヤ0番の画像をこれに変更したいときは、適当なイベント中に VARアクションを追加し、
 variable に background_index[0]
 value に background1
とすれば変更が可能です。

453:名前は開発中のものです。
07/10/05 03:26:55 wSCRnqHh
というかライセンスやらが絡んで日本語化が難しいんなら
メニューやらを日本語訳したテキストを製作者に渡せばいいんじゃねーの?

454:名前は開発中のものです。
07/10/05 17:34:54 g6B1FYU5
>>452
ありがとな

455:名前は開発中のものです。
07/10/05 21:13:00 hQr7IoXo
GM7でmbText 1.4.0とjFont Maker 2.2.0を使って日本語表示しようとするとエラーでるんですけどできないんですか?

456:名前は開発中のものです。
07/10/05 23:14:26 2NkJ/cbT
>>455
エラーの情報を詳しく書いてほしいです…。
どんなタイミングでどんなエラーがでたのか書かないと、何もわからんです。
あなたのPCでエラーが起きた現場を見た人はネット上にはいない。
少なくとも私の環境では GM7 Lite でも表示できましたが…。

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

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

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

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

460:名前は開発中のものです。
07/10/05 23:48:54 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:名前は開発中のものです。
07/10/05 23:52:58 2NkJ/cbT
訂正 : User Interfection でなくて、 User Interaction です…
誤字が多くてすまんです

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

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

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

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

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

465:名前は開発中のものです。
07/10/08 16:48:44 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:名前は開発中のものです。
07/10/08 17:34:48 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)
URLリンク(gamdev.org)
F1 キーで簡単な説明でます。


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

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

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

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

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

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

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

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

474:473
07/10/10 20:49:07 clWDHbW4
考えてみたら2D作成用だし無理ですよね、
自己解決です、ありがとうございました

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

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

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

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

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

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

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

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

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

480:名前は開発中のものです。
07/10/16 08:31:52 KDtruK3Z
これランゲージファイル対応してないの?

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

482:名前は開発中のものです。
07/10/18 11:13:19 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
07/10/18 11:16:42 zjjlkNBl
細かく誤字がある・・・まぁわかるかと・・・

484:482
07/10/18 11:43:05 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
07/10/18 12:01:37 zjjlkNBl
今日ズタボロだす
横の場合はx座標ではなくy座標でした・・・・・
本当にごめんなさい

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

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

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

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

489:名前は開発中のものです。
07/10/18 20:40:28 vfcbVUIf
面倒がってる奴に教える意味有るのか?

490:名前は開発中のものです。
07/10/18 21:42:24 6eGl9S9Q
過疎よかいいじゃないか


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5331日前に更新/345 KB
担当:undef