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


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

■略歴

  • 2004/06/13に発足。当時のバージョンは5.3Aだった。
  • 2004/10/02にバージョン6.0がリリース。
    542 : 名前は開発中のものです。 : 04/10/02 21:56:34 ID:qGLWp7UM
    Game Maker version 6.0 (4.0 MB)

    キタ━━━━━━(゜∀゜)━━━━━━ !!

  • 2005/05/30にバージョン6.1がリリース。
    919 : よこしまなMr.0 : 2005/05/30(月) 08:01:01 ID:OG8RHfzw
    皆さんお疲れ様です。
    Game Maker 6.1正式リリース きました。

GameMaker全般

日本語マニュアル

40 : 名前は開発中のものです。 : 04/06/24 22:31 ID:d8+DWs9S
日本語化と説明書まだー?

42 : よこしまなMr.0 : 04/06/25 01:21 ID:Cw7QwuKW
>>40
日本語マニュアル
ttp://www.1me.jp/users/files/filedownload.asp?fileid=6122.71796565744
にわかりやすい説明があるので、しばらくはそちらを。
操作画面の説明ページを作ったとしても、内容は日本語マニュアルとあまり変わらないと思います。

※ファイル消失。旧公式ページ5.0のヘルプ(Wordドキュメント)があります。

これって日本語化できないの?

  • バージョン 5.3A
    36 : 名前は開発中のものです。 : 04/06/24 13:37 ID:3SLeD74h
    メニューバーを日本語化してGame Makerを開くと、
    「This is not the original file. Application will be closed.」
    というエラーが出て、開けません。

    37 : よこしまなMr.0 : 04/06/24 14:46 ID:XtJH+LnR
    >>36
    起動時にチェックサムをとっているようなので、
    可能な部分だけ日本語化する という方向でいくことにします。
    あとは>>33の「2. スクリーンショットを...」があればたぶん大丈夫でしょう

    71 : 名前は開発中のものです。 : 04/06/30 08:00 ID:2TXWzAjg
    日本語化挑戦してるんだけど
    ファイルサイズが変わるとチェックが入って
    起動しなくなるのは回避できないのか?

    72 : よこしまなMr.0 : 04/06/30 16:01 ID:aiVjY/sY
    >>69
    Cで一からコーディングするよりはるかに簡単です

    >>70
    せめて数時間使ってみてから書き込んでください。

    >>71
    チェックサム部分のコードを改造したりするのはライセンス違反になるので、成功したとしても配布はできません^^;

    今日中に、メインメニュー以外はほとんど日本語化済みのパッチを配布する予定です。

    74 : よこしまなMr.0 : 04/06/30 20:46 ID:aiVjY/sY
    ■GameMaker 5.3A用 日本語化パッチ 第1版
    ttp://gamemaker.jog.buttobi.net/dl/jp_gamemaker.zip

    ( ´ー`)フゥー...

    278 : よこしまなMr.0 : 04/08/27 00:19 ID:xCf144Ay
    >>275
    日本語化パッチ(第1版)作成中に、書き換えるとエラーが発生したのは以下の3点です。
    ・メインメニュー
    ・画面左TreeView [Sprites][Sounds]... の右クリックメニュー
    ・アクションライブラリ
    これはおそらく、ソフトウェアが不正にクラックされるのを防ぐためだと思われます。
    しかし、これを詳しい人が解析して無理に日本語化しようとすると、GameMakerのライセンスに違反してしまいます。

    この問題をクリアするにはやはり、GameMaker作者さんに相談するしかないようです。

    632 : 名前は開発中のものです。 : 04/10/22 02:04:49 ID:5MEoT4Js
    バージョンが間違いなく5.3Aなのに
    日本語パッチが正常終了した後に
    「一致しません」とのメッセージが・・・なんで_| ̄|○

    634 : よこしまなMr.0 : 04/10/22 23:08:41 ID:Dr9NFoBj
    >>632
    情報ありがとうございます。
    「Game Maker 5.3A用 日本語化パッチ 第2版」 http://gamemaker.main.jp/modules/mydownloads/
    正常終了したあとにエラーメッセージが表示されてしまう問題を修正しました。

    どうやら、6.0がリリースされた後から配布されている5.3Aでパッチを適用したときに発生する問題のようです。

  • バージョン 6.x
    544 : 名前は開発中のものです。 : 04/10/02 22:10:24 ID:qGLWp7UM
           ☆ チン        ハラヘッタ〜
                         ハラヘッタ〜
     ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      ヽ ___\(\・∀・)< 日本語化パッチまだぁ〜?
          \_/⊂ ⊂_)_ \____________
        / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
       |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
       |  芸 夢 銘 菓   .|/

    550 : よこしまなMr.0 : 04/10/03 16:38:10 ID:G+fBjagw
    >>549
    こんなかんじでぐるぐるぐるっと
    ttp://gamdev.org/up/img/1464.zip

    GM6.0の日本語化パッチについて:
    6.1とかにバージョンアップするとまた作り直しになってしまうのでしばらくは作れません。
    むしろ11月〜2月まで個人的にたいへん忙しい時期なので私は作れないと思います
    どなたか5.3Aの日本語化パッチあたりを参考にして作成していただけると助かるのですが…

    しばらくはhttp://gamemaker.main.jp/modules/articles/あたりをGM6向けに編集していく予定です。


    553 : 名前は開発中のものです。 : 04/10/03 17:17:33 ID:6xTDx49b
    6.0のstringリソースは暗号化されてるっぽぃ・・・・・漏れにはムリ('A`)

    560 : よこしまなMr.0 : 04/10/03 19:57:13 ID:G+fBjagw
    >>553
    こりゃMark Overmars氏に問い合わせるしかないですね。。

    って・・(;゜ロ゜)ああ!!
    Due to the many users in different countries I also plan on adapting the program such that it becomes more easy to translate it.
    (Some facts http://www.gamemaker.nl/facts.html より)

    キタ━━━━━━≡゜∀゜)≡゜∀゜)≡゜∀゜)≡゜∀゜)≡゜∀゜)━━━━━━!!!

    566 : よこしまなMr.0 : 04/10/03 22:55:07 ID:G+fBjagw
    >>560の補足:(http://www.gamemaker.nl/facts.htmlより - 違訳しまくり。)
    How will it continue?
    (このあとどう続くかって?)
    Well, I will work on version 6.1 but I am giving more priority to creating additional tutorials for Game Maker.
    (まぁ・・・GM6.1の開発を続けるつもりだけど、新しいチュートリアル作成のほうを優先しているんだ。)
    The current version is very powerful but people often have trouble finding all the possibilities.
    (新バージョンはとってもパワフルだけど、新機能を理解するのにみんな困りがち。)
    So I plan to provide more help there.
    (だからもっとヘルプを提供しようと計画しているところさ。)
    Due to the many users in different countries
    (海外の多くのユーザのために)
    I also plan on adapting the program such that it becomes more easy to translate it.
    (プログラムを、より翻訳しやすくなるように修正する ようなことも計画しているよ。)

    >>563
    Readme01〜04.txtに、フリーウェアには使用してもよいと書いてあります。

    712 : 名無しさん : 04/12/22 21:08:48 ID:HNQ9pf6e
    メニューバーまで日本語化できる!!(かも)なソフトです。
    http://www.forest.impress.co.jp/lib/sys/wincust/otherextn/ewordchanger.html
    (フリーでも使用可能)

EXEファイル生成したら、結構容量でかくなる

143 : 名前は開発中のものです。 : 04/07/12 00:05 ID:flrkr92M
EXEファイル生成したら、結構容量でかくなるな…

144 : 名前は開発中のものです。 : 04/07/12 00:09 ID:m2Go/Kix
それはオレも思った
UPX使うといい感じ
1.4メガから500kになった、マジオススメ

298 : 名前は開発中のものです。 : 04/09/06 18:11 ID:O2ppPcZ1
exeにするとものすごくサイズがでかいんだが、小さくできないのかこれ?

299 : 名前は開発中のものです。 : 04/09/06 18:42 ID:a1xy8CC1
一応UPXが使える

300 : 名前は開発中のものです。 : 04/09/06 19:04 ID:O2ppPcZ1
UPX使うとexeが開けなくならない?

301 : 名前は開発中のものです。 : 04/09/06 19:12 ID:a1xy8CC1
できるのとできないのがある
どうすればダメになるのかはわからない
付属サンプル試してみた
×1945.gmd
○hit the ball.gmd
○pacman.gmd
○street race.gmd

GM5で作ったゲームはGM6に拡張子かえればできるんすか?

665 : 名前は開発中のものです。 : 04/11/23 11:46:17 ID:zRrQbYXg
GM5で作ったゲームはGM6に拡張子かえればできるんすか?


667 : 名前は開発中のものです。 : 04/11/23 13:30:04 ID:0Xmb1bTq
>>665
GM5で作ったゲームはGM6でそのまま読み込める。
File -> Open
ファイルの種類:Old Game Maker files

拡張子をGM6に変えても読み込めるし問題なさそうだけどどうなんだろ。

ランキングにレジストリは使用している?

726 : 名前は開発中のものです。 : 04/12/31 15:58:35 ID:+h1m5sEs
突然質問です。
ランキングにレジストリは使用しているのでしょうか?

728 : 名前は開発中のものです。 : 04/12/31 18:49:22 ID:mnLurk2P
ハイスコアテーブルのことかな?
HKEY_CURRENT_USER\Software\Game Maker\Scores
に記録されるようです。

エディタ操作

サンプルのパックマンみたいにスプライトをフォルダにまとめるのはどうすればいいんですか

157 : 56 : 04/07/14 22:57 ID:Duq3GTEP
サンプルのパックマンみたいにスプライトをフォルダにまとめるのはどうすればいいんですか?

158 : よこしまなMr.0 : 04/07/14 23:23 ID:4UUeZf2D
>>157
画面左の[Sprites]を右クリック→[Add Group]でフォルダを追加できます。
あとは任意の項目をそのフォルダにドラッグ&ドロップしてください

roomsのsettingタブで出るメニューの中にcreation codeのボタンが無いのですが…

515 : 名前は開発中のものです。 : 04/09/30 23:35:04 ID:rzN5A9RV
roomsのsettingタブで出るメニューの中にcreation codeのボタンが無いのですが…
GM6RCを使用

眼科逝ったほうがいいですか?

517 : 名前は開発中のものです。 : 04/10/01 00:19:45 ID:6xDkdUOm
>>515
アドバンスモードに汁。メニューの[File]>>[Advanced Mode]にチェック
いろんなアプリで見かけるのだが、こういう、上級者用といいながら機能を隠すモードってなぜあるのだろう。
余計、初心者を困らせることになると思うのだが。

タイルを連続的に配置

597 : 名前は開発中のものです。 : 04/10/10 22:32:57 ID:p0paNGLH
シフト押しながらドラッグすると
タイルが連続的に置けることを知らず
カチカチやって「不便だ!」とかイライラしてた俺はアホですか・・・ors

598 : 名前は開発中のものです。 : 04/10/10 23:07:13 ID:u70ormaw
バッググラウンドもそうだけど、オブジェクト配置でも同じ操作でできるよ。
さらに、ctrl押しながら配置したやつをドラッグすると動かせるようになります。


EXE形式にするには?

825 : 名前は開発中のものです。 : 05/03/06 18:04:39 ID:am2JgNGr
EXE形式にするにはどうしたらいいのですか?

826 : 名前は開発中のものです。 : 05/03/06 18:17:54 ID:Lc/GMt6Z
File メニューにある、Create Executable を選択。

基本

弾を発射するには

105 : 名前は開発中のものです。 : 04/07/05 22:05 ID:sNmJTFhE
弾を発射するアクションてどうやればいいんですか?
 □ =====〇
 ズドン!!

109 : 名前は開発中のものです。 : 04/07/05 23:32 ID:LZQQVRIy
>>105
自機オブジェクトのオブジェクト設定でpressイベントを作って
main1のCreate an instance of an objectアクションを置く
xとyを[自機のobject名].x、(自機のobject名).yと設定する
ここまででキーを押したら弾が表示される

弾オブジェクトでステップ毎イベントを追加
Start moving in a directionアクションを追加
方向を右、速度を8にする
ここまでで出てきた弾が右へ移動する

以上です。

http://gamdev.org/up/img/808.zip

110 : よこしまなMr.0 : 04/07/05 23:41 ID:fvLWDxGq
>>108
わかりやすく、良いサンプル乙です!

>>109
ていねいな説明乙です!

>>105
作ってみました。ちょっとだけ音が出ます。
ttp://gamdev.org/up/img/809.zip

変数を代入するアクションを教えてください

195 : 123 : 04/08/05 18:36 ID:FnvDM6v9
>>188
詳しく教えていただいてありがとうございます。
やり方はわかったのですが、変数に代入はどのイベントですか?
試してみてもうまくいかないんです。
教えてください。
>>189
期待しています。がんばってください。


196 : 169 : 04/08/05 18:53 ID:I8VKxbcv
>195

>変数の代入
code > set the value of a variable

ゲームの途中でFPSを上げたり、下げたりするのは可能?

257 : 名前は開発中のものです。 : 04/08/22 09:59 ID:7xI2VZhB
>>256
なるほど、そういう感じでやっていけばいいんすね。

そういえば、ゲームの途中でFPSを上げたり、下げたりするのは可能?

258 : 名前は開発中のものです。 : 04/08/22 13:58 ID:z3NsOpK9
>>257
変数 room_speed で変更可能。

敵を画面外からランダムに出現ってのはどうやればいいのでしょうか?

281 : 名前は開発中のものです。 : 04/08/27 14:34 ID:l3T/QA0P
敵を画面外からランダムに出現ってのはどうやればいいのでしょうか?

282 : 名前は開発中のものです。 : 04/08/27 14:48 ID:so1l0Kqp
>>281
敵をランダムに生成するオブジェクトを別に用意すればいい。
Exampleフォルダにある1945.gmdの、controller_enemyオブジェクトを参考に。

オブジェクトの真ん中から弾を発射したい

470 : 名前は開発中のものです。 : 04/09/27 19:37:24 ID:uh/cotsH
オブジェクトから玉を発射したいんですが、オブジェクトの真ん中から
発射されません・・・どうしたらいいでしょうか?

471 : 名前は開発中のものです。 : 04/09/27 20:09:57 ID:TD3B6E1U
>>470
1.スプライト生成する位置を修正する
2.スプライト設定から基点をオブジェクトの中央になるように設定する

ゲームオプションの「<Esc>でゲーム終了」のチェックをはずすと×ボタンやAlt+F4でも終了できなくなってしまう

686 : 名前は開発中のものです。 : 04/12/10 21:21:07 ID:XdpKd2Ps
ゲームオプションの「<Esc>でゲーム終了」のチェックをはずすと
×ボタンやAlt+F4でも終了できなくなってしまいます。
Alt+F4の方はキーイベントで処理すればいいのですが、×ボタンはどうにもならず……
通常の終了方法は残して、Escキーだけ封じることはできないんでしょうか。

688 : よこしまなMr.0 : 04/12/10 23:59:55 ID:DM7RfDhp
>>686
「<Esc>でゲーム終了」をOFF、「ウィンドウキャプションのシステムボタンを表示しない」をONにし、
ユーザに対して終了方法を明示しておく(例えばクリックすると終了確認メッセージが表示されるボタンのようなオブジェクトを設置しておく)のがベストだと思います。

[×]ボタンを有効にして[Esc]だけ封じることはできないようです。
別アプリからウィンドウのサブクラス化を行って処理すればできないこともないですが・・・

イベントのアニメーションエンドの使い方がわかりません

785 : 名前は開発中のものです。 : 05/02/06 08:04:31 ID:1EqPpoOm
イベントのアニメーションエンドの使い方がわかりません
X枚目が表示されたらアニメーションを終える。としたい時
アクションの項には何をいれたらいいんでしょうか

786 : 名前は開発中のものです。 : 05/02/06 08:44:06 ID:6RB0HDMP
アニメーションエンドイベントは、スプライトの最終サブイメージが表示されたあとに呼ばれる。
爆発エフェクトなどで、
「爆発オブジェクト発生」→「アニメーションエンドイベントで破棄」
といった使い方が一般的か。

スプライトアニメーションの途中で何らかの処理をしたい場合、
ステップイベント内で条件をつければよいかと思われる。
オブジェクトの表示されているスプライト番号は、変数"image_index"(最初:0〜)で参照できる。
以下は、最初から4枚目のイメージが表示されたときに破棄する例。
------------
Step Event:
execute code:
if (image_index == 3) then {
      instance_destroy() ;
}
------------

788 : 名前は開発中のものです。 : 05/02/06 14:20:39 ID:+4VgMuPT
>>785
アニメーションをループさせずに一周で止めたいという意味なら、
Animation Endイベントで

image_singe = image_number - 1;

とする。(アクションでやるなら Set Variable を使う)
ただしGM6だとimage_singleは廃止されているので、

image_index = image_number - 1;
image_speed = 0;

に置き換える必要あり。

変数の使い方

エネミー(というか敵・・・)が全滅したら次のステージへ

111 : 名前は開発中のものです。 : 04/07/06 00:24 ID:6uNURFZC
>>109
ありがとうございました。
あと、もう1つ質問ですが「エネミー(というか敵・・・)が全滅したら
次のステージへ」というアクションはどうすればいいのですか?

112 : 名前は開発中のものです。 : 04/07/06 00:37 ID:jdFHNfg9
エネミーが消えたら変数に+1していって条件にあえばクリアとか

なんかややこしいな。誰かもっと単純な命令キボン

113 : よこしまなMr.0 : 04/07/06 01:13 ID:eLMKFF1M
一例として、

(1)画面には表示されない透明なオブジェクトを配置
(2)そのオブジェクトの「ステップ毎」イベントで
(3)アクション-controlタブの「If the number of instances is a value」アクションを用いて敵インスタンスの数をチェック

してあげれば良いかと思います。このように、
(Visibleのチェックをはずした)透明なオブジェクトを利用してゲームの細かな処理をしてあげると便利です。

向いた方向に弾を撃つというのができません。

187 : 123 : 04/08/04 23:21 ID:HsKSH3U9
質問ばっかりですみません。
キャラの移動などは皆さんのご協力によってできたんですが、
左を向いたときには左に玉を撃つというのができません。
普通では弾が右に出るという設定なのですが、左を向いたときは何々という設定はできませんでしょうか?
教えてください。

188 : 名前は開発中のものです。 : 04/08/04 23:42 ID:ldt/F9bk
向いている方向を記録する変数を使ってみてはどうかな?
たとえば、dirという変数を用意して、
左を押したときに-1、右を押したときに+1を代入しておく。
弾を打つときに、dirの数値で条件分岐させればよい。
つまり、dirが-1のときは左へ、+1のときは右へ飛ばせばいいかと。
もっとスマートな解決方法があるかもしれんが、上記の方法でもできると思う。


弾を10発撃ったらリロードしなくてはいけないようにするにはどうすればいいのでしょうか

253 : 名前は開発中のものです。 : 04/08/21 16:13 ID:H/jVzOFo
シューティングゲームとかで弾を10発撃ったらリロードしなくてはいけないように
するにはどうすればいいのでしょうか?

254 : 名前は開発中のものです。 : 04/08/21 23:43 ID:lXNfNtUc
変数を使う

255 : 名前は開発中のものです。 : 04/08/21 23:54 ID:H/jVzOFo
>>254
う〜んどうも。マニュアルを読んでみます。

256 : 名前は開発中のものです。 : 04/08/22 09:21 ID:Dw8JbIGp
弾を撃つごとに変数に+1していき10になったら止めるようにすればいいよ

bullet+1
If bullet is equal 10

みたいなかんじで

257 : 名前は開発中のものです。 : 04/08/22 09:59 ID:7xI2VZhB
>>256
なるほど、そういう感じでやっていけばいいんすね。

そういえば、ゲームの途中でFPSを上げたり、下げたりするのは可能?

オブジェクトのxとy座標を変数に代入するには

478 : 名前は開発中のものです。 : 04/09/27 23:14:06 ID:gchtCPGK
オブジェクトのxとy座標を変数に代入するにはどうすればいいんでしょうか?

479 : 名前は開発中のものです。 : 04/09/27 23:26:51 ID:s7CAKkdP
>>478
変数=(オブジェクト名).x

例)
hx=object0.x
hy=object0.y

■変数の宣言
値を代入した時点でその変数を使える
代入せずにたとえばhx=hx+1とやるとまずい
通常はCreate( http://gm5doc.bufsiz.jp/gmaker_japan_html_7d91f976.jpg )でする

■変数の代入
Execute a piece of code( http://gm5doc.bufsiz.jp/gmaker_japan_html_755f1a24.jpg ) でGMLを記述するか
Set the value of a variable( http://gm5doc.bufsiz.jp/gmaker_japan_html_75d8481c.jpg ) を使う

■オブジェクトを制御するための変数
マニュアルの「12.8式と変数の使用」に書いてあります。

モードごとにハイスコアを記録するようにしたい

981 : 名前は開発中のものです。 : 2005/07/09(土) 20:09:53 ID:Ol9xRVgV
一つのゲームに複数のモードを作って、
モードごとにハイスコアを記録するようにしたいのですが、
何か方法はありますか?

982 : 名前は開発中のものです。 : 2005/07/09(土) 21:04:04 ID:rnF/jp1y
>>981
自分でスコア格納する配列を定義しちゃえばいいんじゃないの?

983 : 名前は開発中のものです。 : 2005/07/09(土) 23:45:44 ID:Zu6lCQdN
>>981
モードごとに別々に記録すれば?

オブジェクト/インスタンス

あるオブジェクトを消したら他のすべての同一オブジェクトも消えてしまいます

47 : 名前は開発中のものです。 : 04/06/26 11:03 ID:E8dP1o8N
あるオブジェクトを数個設置して、
キャラクターが触れたら消えるようにしたんですが、
触れた時に他のすべての同一オブジェクトも消えてしまいます。

触れたものだけ消えるようにするにはどうすればいいんでしょうか。

48 : よこしまなMr.0 : 04/06/26 18:12 ID:mMsO/gvF
>>47
キャラのオブジェクトで、相手側とのCollisionイベントをつくり、
アクションのmain1にある「Destroy the Instance」をドラッグアンドドロップ。
出てきた画面でApplies toを「Other」設定すればできると思います。

Applies toを特定のオブジェクトに設定してしまうと同じオブジェクトは全て消えてしまいます

オブジェクトをランダムな方向に動かしたい

450 : 名前は開発中のものです。 : 04/09/26 00:50:47 ID:BUUuA1lI
オブジェクトがランダムな方向(0,90,180,270)に
一定の距離動き、それを繰り返すという処理が分かりません。
誰かアドバイスをください。

477 : 名前は開発中のものです。 : 04/09/27 22:57:31 ID:s7CAKkdP
randomの訳間違ってませんか?
「random(10)で10未満」となってますが「10以下」だと思います。

>>450
移動した回数を数える
一定回数移動したら方向を変える
http://gamdev.org/up/img/1400.lzh

キーボードとジョイパッドで同じ処理を書くのは面倒です

482 : 名前は開発中のものです。 : 04/09/27 23:58:54 ID:+ENDXnf4
ジョイパッドに対応させるときキーボードとジョイパッドで同じ処理を書くのは面倒です
なにかうまく手を抜く方法ないですか?

483 : 名前は開発中のものです。 : 04/09/28 00:13:18 ID:bCgpXzkX
マニュアルの「Chapter 31GML: ユーザーとのやり取り」を参考にがんばって調べてみて下さい。
GML使用なのでプログラム書いたことがないと分かり難いかもしれませんが・・・
GameMakerマニュアルはゲムデヴwikiにあります
http://gamdev.org/w/?GameMaker

マウスカーソルがある方向にキャラクターが向くようにしたい

549 : 名前は開発中のものです。 : 04/10/03 15:00:27 ID:oTkm4Dvj
マウスカーソルがある方向にキャラクターが向くようにできませんか?

550 : よこしまなMr.0 : 04/10/03 16:38:10 ID:G+fBjagw
>>549
こんなかんじでぐるぐるぐるっと
ttp://gamdev.org/up/img/1464.zip

GM6.0の日本語化パッチについて:
6.1とかにバージョンアップするとまた作り直しになってしまうのでしばらくは作れません。
むしろ11月〜2月まで個人的にたいへん忙しい時期なので私は作れないと思います
どなたか5.3Aの日本語化パッチあたりを参考にして作成していただけると助かるのですが…

しばらくはhttp://gamemaker.main.jp/modules/articles/あたりをGM6向けに編集していく予定です。


コリジョン

上からキャラクターが乗れるブロックはどうやって作れるのでしょうか?

123 : 名前は開発中のものです。 : 04/07/07 21:50 ID:zaTzeIKQ
すいません。上からキャラクターが乗れるブロックはどうやって作れるのでしょうか?
スーパーマリオ風のゲームを作ろうとしているのですが、まだシステムの段階です。
教えてください。

124 : 名前は開発中のものです。 : 04/07/07 23:15 ID:CMLCCbFa
>>123
アプローチの仕方がいくつかあるので、
もうちょっと(失敗している状況などを)具体的に書いてくれると答えも得られやすいと思いますが・・・

ヒントというか方針を少し。
下にブロックがあるかどうか判定し、無ければ落下、
あれば垂直方向の移動をなしにすればいいので、
使えそうな条件はControlにある
[If there is an object at the position] (あるポジションに指定オブジェクトがあるかどうか返す)
か、
[If a position is collision free]
 (自オブジェクトがそのポジションに置いたとき、(solidだけか、全部かを)指定したオブジェクトに干渉しないかどうか返す)
を使うと対処できるかと思います。
もしブロックがあるときは、hspeedを0にするなど、落下処理を無効にしてください。

125 : 124 : 04/07/07 23:18 ID:CMLCCbFa
訂正、最後の行はhspeedじゃなくてvspeedでした

126 : 91 : 04/07/08 04:35 ID:ud9dj4Ng
>>123
参考になるかわからないが、スーパーマリオ風との事で
以前にうpしたやつをさらに修正してうpしました

http://gamdev.org/up/img/819.zip
タイトル画面も追加

#公式サイトに掲載するならこちらをお願いしますー

壁に当たるとめりこんでしまう

242 : 名前は開発中のものです。 : 04/08/18 22:47 ID:VhnsqTlp
http://gamdev.org/up/img/1068.zip

なかなか面白いステージが思い浮かばないです
今判明している不具合?は主人公が右側から壁に当たるとめりこんでしまって
上下にうまく動けなくなることくらいだと思います

243 : 名前は開発中のものです。 : 04/08/18 23:08 ID:/MHgAwuM
>>242
壁との衝突イベントに対するアクションを
Start〜directionからSet〜motionに変えてみるといい。

244 : 名前は開発中のものです。 : 04/08/18 23:36 ID:VhnsqTlp
>>243
アドバイスどうもありがとうございます。
やってみましたがやはり右側から当たった場合のみめりこんでしまうようです。
とりあえずもっと色々といじって頑張ってみます

245 : 名前は開発中のものです。 : 04/08/19 00:45 ID:YVWzyl5r
>>244
ごめん、勘違いだった。ハズイ。
とりあえず<Left>のIf〜の値を16に変えたら引っかからなくなった。
なんでなのかはわからない。ごめん。

246 : 名前は開発中のものです。 : 04/08/19 01:03 ID:WkKQxlq+
>>242
左向いて壁に当たるまで近づいた後に縦向きになっているので、
そのときすでにスプライトがめりこんでいるために引っかかっていると思われ。
これを解消するには、上下左右のスプライトで当たり判定範囲を全てそろえる必要がある。
例えば、スプイライトのところで『正確な当たり判定』のチェックを解除して、
適当な当たり判定範囲を設定するという解決法がある。

247 : 名前は開発中のものです。 : 04/08/19 01:04 ID:WkKQxlq+
4行目のスプイライトって何だorz スプライトのまちがい。

248 : 名前は開発中のものです。 : 04/08/19 01:05 ID:YVWzyl5r
あとスプライトの当たり判定の幅がが左右で違うのが壁にめり込む原因かもしれないかも。


249 : 名前は開発中のものです。 : 04/08/19 01:06 ID:YVWzyl5r
orzリロードしようぜ俺・・・スレ汚しスマソ

貫通する弾はどうやってつくればいいのですか?

322 : 名前は開発中のものです。 : 04/09/12 11:53:40 ID:mY77OTs2
貫通する弾はどうやってつくればいいのですか?
(貫通して後ろの敵にも当たる)

325 : 名前は開発中のものです。 : 04/09/12 23:02:14 ID:mY77OTs2
弾じゃなくて、当たるほう(つまり敵)に当たり判定をつける

以上

328 : 名前は開発中のものです。 : 04/09/13 00:47:54 ID:kLjTYWVL
だから、弾と敵が当たる判定を敵だけに持たせるんでしょ
わかんないほうがどうかと思うぞ

キャラが動かないんです・・どうすればいいでしょう?

343 : メトロイド(・∀・)イイ!! : 04/09/18 16:44:05 ID:R3YXU7+J
http://gamdev.org/up/img/1260.lzh
ほかの方が作ったゲームからほとんどはしょって作りました。
画像は、、、、ダサいですがもうちょっとましなのにはしようと思ってます
これを元にプレイヤー画像を作ってくれる方がいればうれしいんですが・・
では、本題に移ります。
ジャンプ中の移動はできるんですが、静止状態から動かないんです・・
どうすればいいでしょう?

352 : 名前は開発中のものです。 : 04/09/18 18:16:15 ID:tCpGm5iX
>>343
object1、stepイベント中でgravityを設定する条件文にバグ>relativeにチェック。

スプライトを持たないオブジェクトにコリジョンが発生しない

677 : 名前は開発中のものです。 : 04/12/01 00:43:16 ID:8KyRryrB
スプライトを持たないオブジェクトにコリジョンが発生しないのは
まあ言われてみれば当たり前なんだけど、
instance_activate_regionみたいな領域指定系の関数でも
スプライトのないオブジェクトは無視されるのか……
これで一日ハマっちまったよorz

キー・マウス・ゲームパッド入力

ゲームパッドの入力でイベント起こすにはどうすればいいんですか

213 : 名前は開発中のものです。 : 04/08/09 00:22 ID:36RVpHz+
弾幕STG作ってます!!
ゲームパッドの入力でイベント起こすには
どうすればいいんですか?

214 : 名前は開発中のものです。 : 04/08/09 00:38 ID:9rvZWgF5
マニュアルにジョイスティックのサポートってのがあったよ。

215 : 名前は開発中のものです。 : 04/08/09 00:42 ID:9rvZWgF5
オブジェクト設定→イベント追加→マウス→ジョイスティック みたい

216 : 213 : 04/08/09 02:36 ID:2Lfd1eu2
>215
ありがとうございます。

まさかマウスにあるとは…

マウスをクリックした方向に弾を撃つようにしたい

568 : 549 : 04/10/03 23:12:18 ID:oTkm4Dvj
追加の質問で悪いんですけど、
>マウスカーソルがある方向にキャラクターが向くようにできませんか?
でさらにマウスをクリックした方向に弾を撃つにはどうすればいいんでしょうか?
質問ばかりすみません。

570 : よこしまなMr.0 : 04/10/03 23:38:05 ID:G+fBjagw
>>568
ttp://gamdev.org/up/img/1471.zip
1.真ん中の矢印オブジェクト[obj_arrow]がクリックイベントを監視します。
2.クリックイベントを感知すると弾オブジェクト[obj_shot]を作成します。
3.作成された[obj_shot]は、自身のCreation(生成)イベントで、mouse_x, mouse_yへ飛んでいきます。

自機をマウスで動かしたい

789 : 名前は開発中のものです。 : 05/02/07 02:11:05 ID:3mzxYMNw
プログラムまったく分からんズブの初心者で厨な質問とは承知していますが
親切なエロイ人がいたら答えてください
自機をマウスで動かしたいでつ
実は質問をしつつもとりあえず>>85のブロック崩し(マウスで自機操作)の
マウスで棒を動かすアクションのスクリプト内のxを全てyに置き換えたスクリプト
ty = mouse_y-36;
if (ty>-2)&&(ty<436) {
y = ty;
}
を同じアクションの欄に貼り付けたら画面内を自機が自由に動けるようになったので
とりあえず確実なのはこのスクリプトを応用することというのは分かるのですが
出来れば(というかせっかくだから)自機操作くらいスクリプト無しでやりたい!
というかそれ以前にそもそも上のスクリプトの意味が分からんw
なんで直ぐにオブジェクトの位置をマウスの座標に代入しないで変数作るのですか?
この方法が最善で、GameMakerではGUIのみでは自機をマウス操作に出来ないというなら
あきらめますがもしスクリプト抜きで出来るなら教えてください
試しにやってみたのは
Mouse Leaveのイベントで
Move towards point(mouse_x,mouse_y)のアクション
(正確にはstart moving relative in the direction of position
(mouse_x,mouse_y) with speed 5)
これでマウスの座標を自機が追従して移動するはず!
と思ってオブジェクト配置して起動してみたら
なんかポインタをオブジェクトの上に置いて離したらあらぬ(しかし一定の)方向へ・・・orz
そもそもはオブジェクトの上にポインタ置かなきゃいけない時点で何かおかしいorz
左クリックで弾を出すとかのアクションは普通にGUIだけでやって出来たので
移動に関しても出来ると思うのですが……
一応解説書とかは一通り読んだつもりだけど書いてあったらスマソ

790 : 名前は開発中のものです。 : 05/02/07 06:38:35 ID:1+7BHQSV
>>789
ステップイベントで次のアイコンを追加してみ。
------------------------
"Jump to a given position"
x:mouse_x
y:mouse_y
relativeのチェックをはずす
------------------------
いろいろ混乱しているようなので解説。
このイベントは、オブジェクト上にマウスカーソルを当てた状態から、離れた状態になったときに呼ばれるイベントだ。
たとえば、Mouse Enterイベントと組み合わせて、WEBなどでよく見かける、
『ボタン上にマウスカーソルを当てるとハイライトし、離れると元に戻る』
といったああいう動作を実現するのに利用できる。
mouse_x、mouse_yはゲームウィンドウの左上を(0,0)としたときのマウスポインタの座標だ。
で、移動先の座標をrelative(相対)にすると、現在のオブジェクトの位置を(0,0)とした座標としてしまうので・・・
結果、常に右下に移動してしまうことになる。

読みにくいかもしれん、長文スマソ

791 : 名前は開発中のものです。 : 05/02/07 06:39:52 ID:1+7BHQSV
コピペでいろいろ編集してたら抜けてた・・・
解説の「このイベントは」の部分は、Mouse Leaveイベントのことです・・・

792 : 名前は開発中のものです。 : 05/02/07 10:55:03 ID:6IudCJxO
>>790
>>791
おおっ、丁寧な解説ありがとうございます!
とりあえずJump to a given positionでやってみたら自機が完全にマウスの座標と連動しますた 感動・・・!
ただ、自分の作りたいのはシューティングで、とにかく指定の座標に瞬間移動するJumpは難易度をむちゃくちゃ
下げてしまうので、ステップ毎にMove towards point(mouse_x,mouse_y)でrelativeのチェックを外してみると
速度付で追従してくれるようになりました(でもシューティングで言えばこれは入力遅延とも言うので・・・w)
が、そうした場合何かブルブル揺れています このやり方はやはりダメなのでしょうか?
それからもうひとつ、これはJump〜にせよMove〜にせよ浮上してしまう問題なのですが、
クリックして弾を撃つ挙動を自機オブジェクトの中で(Left Pressed)イベントで
Create instance of object (弾オブジェクト) at position (自機).x,(自機).y with speed 5 in direction 90
のように設定したら、自機動かすアクションを入れてなかったときは自機をクリックすることによって
弾が出ていたのですが、JumpやMoveでマウスに合わせて自機を動かすようにした後クリックしても
思うように弾が出ません。
原因は恐らくマウスカーソルが常にそれに対応して動くオブジェクトの上に置かれないから
(だからがんばって自機の動きを先読みして「ここだ!」ってときにクリックしたら弾が出るw)
だと思うんですが、だとしても対処法が分からないorz
特にブルブル震えてしまうMove方式ならまだしも、教えていただいたJump方式ならば
常に(mouse_x,mouse_y)が自機オブジェクトの(0,0)に当たる部分、
つまり本来クリックしてちゃんと反応する部分に存在しているはずなのに反応しないのは全く意味が分かりません
もしかしてスプライトの透過色部分には当たり判定無かったりしますか?
連続質問&読みづらい長文申し訳ありません

793 : 名前は開発中のものです。 : 05/02/07 14:43:36 ID:1+7BHQSV
なぜブルブル震えるか考えてみたか?
Move towards pointは、あくまでオブジェクトに進行方向と速度を与えているに過ぎないということだ。
略図を使って説明。
★:自機
□:マス目
▲:マウスポインタ
速度:5(1ステップで5マス進む)

状態1:★□▲□□□

この次のステップはどうなるかというと、進行方向は右、速度5だから、

状態2:□□▲□□★

となる。じゃあ次は?といえば、今度は進行方向は左なので、1の状態になる。
この繰り返しが、あのブルブル震える現象の正体。これをどう解決するか?
マウスポインタまでの距離が速度より大きい場合と小さい場合で処理を変えなければならないだろう。
速度より小さい場合のときに、速度5ではなく、マウスポインタまでの距離を移動させるようにすれば。。。
速度とか弄るより、この場合だけjump to a given positionを使うとよい感じか。
ただし、マウスポインタと自機がピッタリ重なったときに速度(speed)を0にしておかないと、無駄に動いてしまうぞ。

左クリックの問題は、Global Mouseの中の物を使うとよい(Global left buttonか?)
でないとおまいさんの指摘どおり、オブジェクト上にマウスポインタがあるときだけしか反応しない。
Left buttonイベントは、メニュー選択などのボタンアクション向けかと思われる。

文才無いからか、老婆心過ぎるのか、無駄に長いな。。。ウザカッタラキエマス。。。

794 : 789 : 05/02/07 15:56:39 ID:2lGFcnKA
>>793
キタ――――!!
解決しますた! 本当にありがとうございます!
ちゃんと動いて弾を撃ってます!
自機操作さえ何とかなったらあとはシューティングはテンプレや
初心者向けの製作チャートがいっぱいあるんで何とかうまくいけそうです
まともなのが出来たらサンプルをageようかと思います
本当にありがとうございました!


795 : 名前は開発中のものです。 : 05/02/07 19:11:34 ID:1+7BHQSV
>>794
無事解決できてなにより。
距離の判定は多分GML関数(point_distanceかな?)使わないと出来なかったんだが、出来てる様でよかった。
また余計なお世話かもしれないが、最後に一言。
スクリプトの記述はそんなに言うほど難しくない。
むしろ、アイコンでやりくりするほうが煩雑になったりする場合があるので、毛嫌いせず、挑戦してほしい。
基本的な文法の理解と、GMLをヘルプで調べるスキルさえあればいいんで・・・
(・∀・)ガンガレ!!

796 : 789 : 05/02/07 22:40:21 ID:SX23cWKX
>>794
申し訳ありません。。。
やっぱり「静止した!」と思ったら常時Jump〜アクションが優先されていただけでしたorz
距離の判定を全てQuestionアイコンで行っていまるのですがやはりGMLが必要なようです・・・
やはり、しばらくスクリプトを修行してきまつ
・・・と、まあ自機操作は漏れが勉強するとして、
それはそれとしてJump〜アクション(アイコンのみ)の自機移動による
STGを概要だけ作って見ようとしたところ・・・
http://gamdev.org/up/img/2331.lzh
うわあぁぁあぁああぁああせdrftgyふじこlp
問題点は列挙にいとまが無いですがorz、とりあえず解決方法がまったく見えてこないのは
・敵大杉弾大杉
 (ステップ毎にオブジェクト生成アクションをさせている事に原因があるような気がしますが、
  ステップ毎以外に常時敵を出現させたり、
  特定の条件下やランダムで弾を撃たせたりする方法が思い浮かばない)
ザコの挙動がおかしいのはアクションの数値を間違ってたりしてるというのは分かっているので
それは適当に直せば大丈夫なのですが、上二つがどうにも・・・
いつまでもただの長文質問ばっかりで少しはうpなどしてスレに貢献しようと思ったら
結局また長文質問を出してしまう有様・・・スマソ
左上のカタパルトからしか敵が出てこないのはこれを書いている間に解決しますたw
ザコを射出する座標を設定してなかったから全部(0,0)から出てたのね。。。orz
入力ミス&入力忘れ以外で何か他にアドバイスあればおながいします

797 : 名前は開発中のものです。 : 05/02/07 23:34:31 ID:1+7BHQSV
orz
>>793のヒント。
・条件文を使うのはやはりステップイベント
・条件に使うアイコンは8角形の奴で、中に?かVARと書いてある奴のどちらかを使う(どちらでも出来る)
・2点間の距離を得るのはpoint_distance(x1,y1,x2,y2)という関数。 点(x1,y1)と点(x2,y2)の距離を返す
・マウスポインタまでの距離がspeedより近い場合に、自機のspeedを0にするのを忘れずに
それ以外について。(2つと書いてあるが、出現数に関してだけかな)
『敵多すぎ=ステップごとに生成しているから』は当たりだ。
特にenemy2の弾撃ちは確実にステップごとに行われているため、ものすごい数が飛んできている。
一定の時間間隔で撃つには、alarmイベントを利用するとよい。
また、敵生成でも使っているランダムの条件をくわえて抑えるのも可。
カタパルトによる敵生成も、ステップごとに判定しているな。
1秒間30ステップがデフォルトなので、1秒間で考えると結構出現する計算になるんで、
弾と同じように一定間隔にするか、出現確率を下げてみてはどうか。
最後に、ここを参照しているか?イベントやアクションについて基本事項は抑えてあるので一読を。
GM6の情報だが、アイコンに関してはさほど変わってないので、参考になるはず。
GMJapan 非公式情報サイト
ttp://gamemaker.main.jp/index.php
いつもお世話になっております...>>よこしまさん

798 : 789 : 05/02/08 00:32:37 ID:h6GtyXnX
>>797
度々申し訳ありません
実は797様がダウンロードなさったのは一回細かいところを修正してうpしなおしたバージョンでして
それを書きこむのをすっかり忘れていたため内容が796のカキコと矛盾するものになってしまいました

ええと、GMLのpoint_distance(x1,y1,x2,y2)に関してはご紹介してくださったサイトを含め
勉強してみます。ありがとうございます! ただ、ヒントの上二つ
>・条件文を使うのはやはりステップイベント
>・条件に使うアイコンは8角形の奴で、中に?かVARと書いてある奴のどちらかを使う(どちらでも出来る)
自機オブジェクト(2種類ありますが)の中身見ていただければ分かるのですが、
一応If a variable has a valueクエスチョンでマウスと自機の位置関係に関して条件分岐っぽいものを
実装してはいます。jikiの場合は無条件下でマウス座標に対し所定速度のMoveアクションを行い、
通常速度分の距離以内にいるならJumpアクション、jiki2は無条件下でJumpアクション、
マウス座標と所定の距離より離れていたらその距離分のフレーム間速度でMoveアクションと
してはいるはずなのですが・・・何故か完全Jumpアクションでの挙動です
まあ、中身からも分かるとおりアイコンの数が大変なことになっているのでw GMLを修行することにしますが、
それでも上で論理的に何が間違っているのかよく分からないのが心に残ります・・・
とりあえず目標は見えてきたし、うだうだ言っててもウザイと思うので名無しに戻らせていただきます
ご教授ありがとうございました!

799 : 名前は開発中のものです。 : 05/02/08 05:05:43 ID:zk7JeCnz
>>798
もう直してるかもしれないけど、mouse_yと比較するのは jiki.x じゃなくて jiki.y ですね。
で、jikiについては最初の Jump to a given position を実行した時点で
jiki.x=mouse_x, jiki.y=mouse_y になります。
だからその後の条件判定にはひっかかりません。

jiki2については、たとえばx方向の条件について見ると
(1) jiki2.x-mouse_x が-6より小さい時は、最初のIfにひっかかる
(2) jiki2.x-mouse_x が-6〜6の時は、最初と2番目のIfにひっかかる
(3) jiki2.x-mouse_x が6より大きい時は、2番目のIfにひっかかる
ので、結局どんな場合でも Jump to a given position が実行されてしまいます。

この場合、座標に関する4つの条件が「すべて」成立した時だけ
Jump to〜 を実行すべきなので、and演算子(&&)を使って

If 条件1 && 条件2 && 条件3 && 条件4
Jump to a given position

のように一つの判定文にまとめます。まあ、すごく長い式になってしまうので、
ここまで来たら上で出てたpoint_distanceを使った方が楽ですが。

800 : よこしまなMr.0 : 05/02/08 06:48:20 ID:bYhSHMb8
>>789
>なんで直ぐにオブジェクトの位置をマウスの座標に代入しないで変数作るのですか?
mouse_yは各ステップごとに更新される変数... というわけではなく、「GML内で参照されるたびに更新される変数」ですので
mouse_xやmouse_yをせまいコード内で何度も記述するのは避けるべきだと思います。

ちなみにmouse_yをCとWin32APIで極端に書くと、
POINT point;
RECT rect;
int mouse_y = 0;
GetCursorPos(&point);
GetClientRect(hWndGM, &rect);
mouse_y = (point.y - rect.top);
たぶんこんなかんじなので、1秒間に何百回もmouse_yを参照すると重くなるかも... というわけです。

>>797
どもです。

ルーム

ゲーム開始時のルームがおかしくなってしまった

116 : 名前は開発中のものです。 : 04/07/06 20:13 ID:3D8ufYh0
自分で思っているルームがはじまらず、別のルームがSTAGE1と
なってはじまってしまいました。どうすれば改善できますか?

119 : よこしまなMr.0 : 04/07/06 21:48 ID:eLMKFF1M
>>114
ご紹介ありがとうございます。
非公式情報サイトのリンク集へ追加しておきます

>>116
例えば、メイン画面左のツリービューで
[Rooms]
|
ト[room2]
ト[room1]
ト[room3]
こうなっていたとしたら、2→1→3の順に実行されます。
ツリーの各アイテムを(ドラッグ&ドロップで)並び替えれば解決しますよ

>>118
壁と重なってしまうと動けなくなってしまうので、object7の設定でSolidをチェックした後、のびた君のobject7とのコリジョンイベントを、
(1)control-[If an expression is true]
expression: speed > 0
(2)code-[Set the value of a variable]
variable: speed
value: 0
こうすると大丈夫です


ルームから自機が出ないようにするには

869 : 名前は開発中のものです。 : 2005/05/17(火) 00:27:40 ID:2qtACK8+
ルームから自機が出ないようにするのはどうやるんですか?
色々やったけど、ルームの外枠部分に透明のブロックを置くしか出来ないんですけど。
コレだと全然話にならないので困ってます。

870 : 名前は開発中のものです。 : 2005/05/17(火) 00:53:39 ID:pjjVkKq6
863氏を真似てみる。
例:右矢印キーで右へ動かす場合に、ルームからはみ出るのを防ぐようにする処理。

[Keyboard Event for <right> key]
   [if x is smaller than room_width] ※変数room_widthでルーム幅が分かる。厳密にはオブジェクトの基点によるから、調整が必要。
              ┃
              ▲ Start of a block
              ┃
   [Jump to given position (4,0) relative]
              ┃
              ▼ End of a block


ビュー

強制スクロールで壁にぶつかると画面がガクガクブルブルする

91 : 名前は開発中のものです。 : 04/07/02 20:25 ID:MNtnRbWL
なんか楽しそうなので俺漏れも作ってみました。

http://gamdev.org/up/img/786.zip
強制横スクロールジャンプアクションゲーム

実行するといきなりゲーム開始なので気をつけてね。
始まると、プレーヤーであるウサギが自動的に右へ走りだします。
スペース押しっぱなしで溜めて、放すとジャンプ
溜めている時間が長いほど(上限はあるが)高くジャンプします。
人参を取って得点を稼いでください。
穴に落ちると死。一定距離進むと画面右に出ていって終り。
壁にぶつからずに走っていると地味に加速していきます。

壁にぶつかると画面がガクガクブルブルするのが
うまく対処できない…

93 : 86 : 04/07/02 22:16 ID:+z2c5Rek
うぅ、説明不足でスマソ。
目的:自機(矢印)を操作してチェッカーフラッグの立ってるゴールへ向かう
操作:
←→キー :回転
↑キー   :前進
SPACE  :ストップ
エネルギーが減っていきます。なくなるとゲームオーバー。
途中にある赤いボールを取るとある程度回復します。

うpされてるやつはバグ持ちで、ゴールするとScoreが強制的に1000点になってしまいます。
ゴールオブジェクトのスコアを1000にするところで、Relativeにチェック入れてください。

>>91さん
遊んでみました、スーパー○リオを彷彿とさせますね!
ガクブルの件について。当たり判定は問題なしですが、
Viewの扱いに問題があるみたいですね。
『Viewがスピード持ち(x方向に+3) → 一方、Viewは自機追従』
なので自機が壁にぶつかっていると、
Viewの位置は+3されるのに自機はそのままなので
自機追従しようとして戻る、、の繰り返しが起きています。

95 : 91 : 04/07/02 23:08 ID:MNtnRbWL
>>93
viewのスピードを-1にしてもガクガク(ryなので、
もっと別の方法を考えた方がいいのかな

>>94
本家サイトにあるオープンソースのゲームから拝借しました

96 : 91 : 04/07/02 23:32 ID:MNtnRbWL
何回もすまんがスクロール問題解決しました。

http://gamdev.org/up/img/789.zip
強制横スクロールjumpACTgame 修正


小窓でプレイするには(スクロールするには)?

518 : 名前は開発中のものです。 : 04/10/01 00:24:45 ID:izAMcC0Q
マリオ風アクションを作っているんですが、ステージのサイズが1200*320で、
テストプレイをするとウィンドウが1200*320のサイズで表示されます。
小窓でプレイするにはどうすればいいんですか?

519 : 名前は開発中のものです。 : 04/10/01 00:30:41 ID:6xDkdUOm
>>517 よく読み返してみると、なんか日本語変…orz

>>518
roomの項目で設定できるviewを使え。ここに晒されてるサンプルを見れば使い方はわかる。
>>517でも書いたが、この機能はアドバンスドモードにしてないと出ないから注意

View使用中に得点を常に左上に表示したい

837 : 名前は開発中のものです。 : 2005/03/31(木) 16:42:01 ID:MrBus2W4
うーむ、得点を常に左上に表示したいのですが、できません。
Viewでスクロールさせているので、
もうひとつのビューを使って得点表示オブジェクトを作ろうとすると、
左端の壁を、背景が覆う…orz

Draw the value of scoreで、
画面から見た座標指定はできないものですかね?

838 : 837 : 2005/03/31(木) 17:00:18 ID:MrBus2W4
ありゃ、公式にあるチュートリアルを見るのを忘れていました。
自己解決しました。失礼しました。

view_xview
view_yview ですね。

View0とView1を表示して、View1の方をライフ表示として使用したい

885 : 名前は開発中のものです。 : 2005/05/22(日) 13:09:39 ID:zUvPLpWB
View0とView1を表示して、
View1の方をライフ表示として使う場合、
View1の空白部分を透明にして、View0の部分を表示するってことデキマセヌカ?

887 : 名前は開発中のものです。 : 2005/05/22(日) 15:31:30 ID:Rn6lCv4G
>>885
それは出来ない。(6.1ならサーフェスをうまく使えば出来そうだけど)
というか、わざわざ透過するぐらいなら、
Draw系の関数でライフバーの部分を描画する専用オブジェクトを
用意したほうがいいと思う。

>>886
既出。一応出来るが、有料バージョンのみだ。ライセンス登録にUS20$かかる。

888 : 887 : 2005/05/22(日) 15:46:16 ID:Rn6lCv4G
>>885
うー、表現をよく考えてなかった。
その描画オブジェクトがView0を追尾するようにするなりして、View0の座標系で描画するって意味です。。。

889 : 名前は開発中のものです。 : 2005/05/22(日) 16:23:38 ID:zUvPLpWB
>>888
なるほど、
まだ始めたばかりだから、追尾させる方法ちょっと考えにくいが
試行錯誤してみまふ(・∀・)

回答アリガトウ

890 : 名前は開発中のものです。 : 2005/05/22(日) 20:23:10 ID:zUvPLpWB
やっとでけた
view_xview[0] 等の関数使うのに気づくまで頑張りマスタヨ

レジストしなくてもある程度できるけど、
結構制限されて厳しいネ
約2k円程度だから買ってみようかな


View関連の変数名が変わった

902 : 名前は開発中のものです。 : 2005/05/27(金) 09:21:55 ID:gPvtALIn
View関連の変数名が変わったからね。
ルーム内の描画領域座標とウィンドウ内の描画領域座標をはっきり区別するためかと思う。
5.3Aとの対比をリストアップ。

6.0      : 5.3A      
view_xview : view_left   View左端のルーム内座標
view_yview : view_top   View上端のルーム内座標
view_wview : view_width  Viewの横幅
view_hview : view_height  Viewの縦幅
view_xport : view_x     Viewを表示するためのウィンドウ上の左端座標
view_yport : view_y     Viewを表示するためのウィンドウ上の上端座標
view_wport : (該当なし)  Viewを表示する横幅
view_hport : (該当なし)  Viewを表示する縦幅

TIPS:
view_wviewとview_wport、また、view_hviewとview_hportを調整することで、
表示を伸縮させることが容易に出来る。(6.0以降のみ)

スプライト/文字表示など描画関係

スプライトの透過処理が変です。

222 : 名前は開発中のものです。 : 04/08/11 13:10 ID:3SGg5bgj
スプライトに画像を登録すると
変に透過処理がかかり、正しく登録されないときがあります。
パレットがおかしいのかと思いましたが、
正しく登録できるものと比べてもなんら問題はありません。

問題の解決方法がわかるかたは教えてください

223 : 名前は開発中のものです。 : 04/08/11 13:44 ID:ZfcJigYu
状況が良くわからんけど、透過(Transparent)にチェック入れてると、
常にスプライトの左下端の色が透過色として処理される。
よくやるミスは、アニメーションなどでどうしても左下のピクセルがキャラとかぶってしまう場合。
こういう場合は、はじめから最左列や最下行のラインを透明色で埋めておくと吉。
・・・こういうことじゃなかったら、わかんね。

224 : 名前は開発中のものです。 : 04/08/11 14:27 ID:3SGg5bgj
試しに左端の色を変えてみたら上手くいきました
ありがとうございます

歩くスプライトと普通に構えているスプライトを交互に表示するにはどうすればいいですか

264 : 名前は開発中のものです。 : 04/08/23 21:14 ID:5jh4lsh0
質問ですが、移動するとき>>260のみたいに歩くスプライトと普通に
構えているスプライトを交互に表示するにはどうすればいいですか?
だれか教えてください。

267 : 名前は開発中のものです。 : 04/08/23 22:25 ID:jffb9Svi
>>264
>>260のソースを見て勉強しましょう。

268 : 名前は開発中のものです。 : 04/08/24 00:16 ID:uXam+ITs
>>264
Sprites->スプライトを編集
でスプライトエディタを起動できる。

260 : 名前は開発中のものです。 : 04/08/22 16:39 ID:rBpoEKUq
アップするやつ微妙に間違えました。修正後バージョン
http://gamdev.org/up/img/1083.zip

現在のライフをわかるようにしたいんですが、やり方がわかりません。

431 : 名前は開発中のものです。 : 04/09/24 18:10:31 ID:PMc8y1EA
現在、ライフの表示をハートの画像を使って、その数で現在のライフを
わかるようにしたいんですが、やり方がわかりません。
Draw the lives as imageを使うのかなと思ってやってみたんですが
表示されなかったんです。どうすれば表示されるんでしょうか?

432 : 名前は開発中のものです。 : 04/09/24 18:35:16 ID:lOK//Ld1
>>431
考えられる原因は、Draw the lives as imageアイコンが
描画イベント(draw event)に配置されていないことが挙げられます。
描画機能は、描画イベント中に実行しなければなりません。
アイコンでクリーム色のものは大体描画機能ですので、これらは描画イベントで実行するようにしてください。


スプライトを回転させたい

465 : 名前は開発中のものです。 : 04/09/27 14:16:39 ID:9e3Ph5zs
これスプライト回転できないのかよ!

466 : 名前は開発中のものです。 : 04/09/27 15:05:21 ID:Euh+GHHe
>>465
次期バージョンでサポートされてるっぽい。ところで、おまいらbeta 3きましたよ。
もし、新機能試してる人いたら、報告してほすぃ・・・

468 : 名前は開発中のものです。 : 04/09/27 17:27:22 ID:EMsomWMW
sprite_rotate見つけたぁああああと思ったらレジスト版だけの機能だった_| ̄|○

マウスポインタを変更するためのスクリプト

538 : 名前は開発中のものです。 : 04/10/02 14:58:27 ID:CS4F20Ry
<マウスポインタを変更するためのスクリプト>
x = mouse_x - sprite_width;
y = mouse_y - sprite_height;
pen_color = make_color(200, 50, 20);
pen_size = 1;
brush_style = bs_hollow;
myRotation = (myRotation + myRotationSpeed) mod 360;
dx = cos(degtorad(myRotation));
dy = sin(degtorad(myRotation));
lineStartX = myLineStart * dx;
lineStartY = myLineStart * dy;
lineEndX = myLineEnd * dx;
lineEndY = myLineEnd * dy;
draw_circle(mouse_x, mouse_y, myRadius);
draw_line(mouse_x - lineEndX, mouse_y + lineEndY, mouse_x - lineStartX, mouse_y + lineStartY);
draw_line(mouse_x + lineEndX, mouse_y - lineEndY, mouse_x + lineStartX, mouse_y - lineStartY);
draw_line(mouse_x - lineEndY, mouse_y - lineEndX, mouse_x - lineStartY, mouse_y - lineStartX);
draw_line(mouse_x + lineEndY, mouse_y + lineEndX, mouse_x + lineStartY, mouse_y + lineStartX


539 : 名前は開発中のものです。 : 04/10/02 15:06:16 ID:CS4F20Ry
マウスポインタの変わりになるスプライトを指定したオブジェクトを作成する。
Create => piece of code に
myRotation = 0;
myRotationSpeed = 1;
myRadius = 15;
myLineStart = 3;
myLineEnd = 17;
mouseButtonPressed = false;
をいれる。

Draw => excute script で
>>538のスクリプトを指定する

roomに作成したオブジェクトを追加し、Game optionで「マウスカーソルを描画」の
チェックをはずす。

以上、日本語下手すみません。



体力ゲージなどを自作したい

720 : 名前は開発中のものです。 : 04/12/31 08:09:31 ID:SxYueGz2
質問です。
http://u.skr.jp/512/files/4497.gif
体力ゲージなどを作る場合、一直線の長方形のゲージであれば
DRAWの四角形を作るやつでx2もしくはy2に変数投入すれば作れますが、
上の画像のゲージA,Bのようなものの場合はどうすりゃいいんでしょうか?

721 : 名前は開発中のものです。 : 04/12/31 09:05:44 ID:/ccjRWCB
>>720
そういう場合、自分でスプライトを用意して表示しなければならないと思う。
draw_sprite_partというのが使えるっぽい。一応作ってみたよ (GM6.0)
ttp://fetish-onsen.com/cgi/upload/source3/No_0137.zip
(Gamdev落ちてた…)
斜めってるところの処理はご愛嬌で。
あそこの境界を斜めにするには、スプライトを用意するしかないのだろうか…?

722 : 名前は開発中のものです。 : 04/12/31 09:12:30 ID:/ccjRWCB
あ、最下行の意味は、1ドットずつ斜めの境界をずらして描いたスプライトを大量に…という意味。OTZ

723 : 名前は開発中のものです。 : 04/12/31 15:08:47 ID:2yvUKAmQ
>>721
GM使いではないので参考にならないかもしれないけど、
普通そういうゲージは、そのゲージの形に左から右へ流れるグラデーション状の
アルファマスクを作って、それを閾値として使う描画をします。
おそらくGMくらい高機能な2Dエンジンなら、アルファマスクを閾値として描画する
レンダリングモードがあるはずなんだけど、なかったらごめん。

724 : 名前は開発中のものです。 : 04/12/31 15:09:31 ID:2yvUKAmQ
× >>721
○ >>720

でしたすまんこ

Drawイベントを作りHP表示と残機表示をするとキャラが消える

734 : 名前は開発中のものです。 : 05/01/01 21:27:46 ID:op5u0tzK
質問ですが、Drawイベントを作りHP表示と残機表示を
すると時機が消えるのですが、どう対処すればいいでしょうか?

735 : 名前は開発中のものです。 : 05/01/01 21:34:59 ID:jlUl4PCO
オブジェクトにDrawイベントを入れてしまうと描画専用のオブジェクトになってしまうので、スプライトは表示されなくなります。
描画用のオブジェクトを新たに用意して、そちらにコードを入れるようにしてください。

GM6.0では、日本語表示は出来ないのでしょうか・・・?

807 : 名前は開発中のものです。 : 05/02/17 02:16:06 ID:DecmQgwT
GM6.0では、日本語表示は出来ないのでしょうか・・・?

私がやったことは以下のとおりです。
・フォントリソースに"MSゴシック"、Character Range をALLに設定したものを追加。
・以下の命令を持つオブジェクトを追加
Draw Event:
set the font for drawing text to font0 and align left
set the drawing color to 0
at position (0,0) draw text: "テスト"

以上を実行すると、"テスト"とは表示されず、文字化けしたようなものしか表示されません・・・
半角カナの文ならうまくいくのですが。2バイト文字は表示できないのかな・・・
余談ですが、
半角カナだけで日本文を表示すると懐かしいと感じるのは年寄りだからですか、そうですか。

808 : 名前は開発中のものです。 : 05/02/18 21:48:21 ID:sqW1Scv8
>>807
うちもだめですなー
てか、5.3で日本語表示が出来たことに、今気付きました。
日本語化のおかげ?
なんかいい方法ないもんかなー。
日本語をビットマップフォントに置き換えるスクリプト書くとか……面倒か

809 : 807 : 05/02/19 04:33:32 ID:MYybBstf
>>808
現状、画像を利用するしか解決できなさそうですね。
ver6.1ではローカライズに力を入れるみたいなんで、そのときに修正してもらえることを期待・・・

こちらでGM6.x以降で日本語表示をする方法が紹介されています。

5.3での日本語表示するには?

810 : 名前は開発中のものです。 : 05/02/19 16:10:38 ID:r5DvU9w7
5.3での日本語表示ってどうやるんですか?

811 : 名前は開発中のものです。 : 05/02/20 01:15:07 ID:k+cXeeL8
display a messageでも日本語表示されないね。
俺は仕方ないので、EDGHで画像作って表示させてるけど、激しく面倒・・・orz

>>810
Createイベント等で、「set the font for drawing text」日本語フォントを指定、
Drawイベント内で、「draw a text」で文章を表示させるだけだよ。
もしかしたら、日本語パッチを当ててないと表示されないかも・・・。

具体例

自キャラが動く足場に乗ったら一緒に動くようにしたい

417 : 名前は開発中のものです。 : 04/09/22 22:08:19 ID:meNQ+253
http://gamdev.org/up/img/1313.lzh
動く足場を作ってるんですが、足場はパスで動くんですが
乗ったときにじいさんが同時に動くようにするには
どうすればいいでしょうか?
じいさんが一緒に動かないので、足場から落ちてしまいます。

419 : アイディアがなくて鬱な人 : 04/09/23 02:28:55 ID:YT8HC4RO
>>417
それを実現するには、GameMakerをより理解していないと難しいでしょう。
使い始めの方だとつらいかもしれません。
修正ソースUPしますが、「何をどうしているのか」ということを理解してみてください。
これを理解して自分のものとなったとき、出来ることが格段に広がるでしょう。
一応解説テキスト付ですが、自分語なので読みにくいかもしれません'';
ttp://gamdev.org/up/img/1315.zip




420 : 名前は開発中のものです。 : 04/09/23 10:40:12 ID:4cnhW2GJ
>>419
すごいわかりやすい解説付で本当にありがとうございます。
といいつつ早速質問ですが、
collision_line(x1,y1,x2,y2,obj,prec,notme)
↑は線分(x1,y1)-(x2,y2)に"obj"に属するインスタンスがあるかどうか
調べるということですが、そのobjに属するインスタンスを追加することは可能でしょうか?
なぜそうしたいかというと、playerrがしゃがんでいるときも同様に、
移動する床にあわせて同時に動くようにしたいからです。

>>418
僕はGMはまったくの初心者でしたが、ほかの作品のソースを見ながら
していたところ、1日でキャラの移動ができるようになりました。
GMは本当に良ツールな予感がします。

421 : アイディアがなくて鬱な人 : 04/09/23 12:16:40 ID:SVEQI9hK
>>420
おそらくしゃがんだときに、土台と一緒に動かない症状が出ていると思います。
しかし考えてみてください。しゃがんだときに、オブジェクトは変化してますか?
そういう処理を明示的にしていない限り、オブジェクトは変化しません。
(変えているのは、sprite_indexです。オブジェクトを変化させるときは、ローカル変数object_indexを変えます。)
・・・原因は別にあります。爺のステップイベントの中をよーく見てください。
しゃがんだときに「ある処理」をしているために、土台とともに動くコードが無効化されてます。
そして、なぜ無効化されるのか、よく考えながら処理の流れを追ってください。そうすると、よりGameMakerの癖が見えてきます。

それとは別に、ご質問の件について。
これは、基本的には複数の"obj"の判定を一回の処理で行うことは出来ません。
ただ、objを変えながらcollision_line関数を何回も呼び出していくことで、問題は回避できます。
ただ、テクニックがありまして、”親オブジェクト(parent object)”の原理をうまく使えば出来るかもしれません。

422 : 名前は開発中のものです。 : 04/09/23 12:45:32 ID:3qe0d/6T
じじいがしゃがんだときのスプライトの当たり判定を変えたところ
しゃがんでいても土台と一緒に動くようになりました。
ありがとうございました。

敵のある一定範囲に近づいたらプレイヤーに近づいてきて、一定範囲から離れたら敵が止まるようにするには

690 : 名前は開発中のものです。 : 04/12/11 22:01:32 ID:Bbi1uzJ6
質問です。
1、敵のある一定範囲に近づいたらプレイヤーに近づいてきて、一定範囲から離れたら敵が止まるようにするにはどうしたらよいでしょうか?
2、敵から攻撃を受けたとき、攻撃と反対側にさがる。逆に自分が敵に攻撃したとき、敵が攻撃された側と逆側ににさがるにはどうしたらよいでしょうか?


691 : よこしまなMr.0 : 04/12/11 23:34:20 ID:XEtV9xL2
>>690
とりあえず1について↓
ttp://gamdev.org/up/img/2088.zip
obj_enemyのStepイベント→「point_distance(obj_player.x, obj_player.y, x, y) < 100」これは、敵からプレイヤーまでの距離が100未満になったときに真となります。
※point_distance(x1,y1, x2,y2) は、点(x1,y1)から点(x2,y2)までの距離を返す関数です。

2については攻撃の種類によって様々な場合が考えられるのでなんとも言えないですΣ(・ε・;)

693 : 名前は開発中のものです。 : 04/12/12 01:35:10 ID:4Ub2zkeV
あ、後2番は64前のゼルダの伝説みたいな感じの、見下ろし形の360度から攻撃が飛んでくるタイプです。わかりにくいですかね?

694 : よこしまなMr.0 : 04/12/12 03:25:22 ID:Vw7K9scj
>>693
ttp://gamemaker.main.jp/dlfiles/example2_20041212.zip (少しだけ音が出ます)
[obj_player]→[obj_bomに対するコリジョン・イベント]→[Jump to a given position]アクションを参照してください。
単純に、飛び道具が進んでいた方向へプレイヤーを押しやります。
other.hspeedは、衝突相手(すなわち 衝突したobj_bom)のx軸方向へのスピードです(other.vspeedはy軸方向)。

■Relativeにチェックが入っていることにも注目してください。
例えば、other.hspeed=1だった場合、(other.hspeed * 5) = 5がプレイヤーのx座標に加算されます(y座標も同様)。
ちなみに「*」は掛け算の記号です

Boid(鳥もどき)制御したい

717 : 名前は開発中のものです。 : 04/12/30 21:43:29 ID:Tg1dXFI6
へたれプログラマのくせにBoid(鳥もどき)に手を出して
バグでお手上げ状態になってしまいました。
どなたか何処がいけないか教えていただけないでしょうか。(GM6.0)
http://fetish-onsen.com/cgi/upload/source3/No_0120.lzh
止まっている所は
1.視界中で一番近いインスタンスから離れようとする
2.視界中のインスタンスと方向を合わせようとする
3.視界中のインスタンスの重心方向に行こうとする
のうち、1の段階です。のっけからです。
本来離れ離れになるべき鳥どもが仲良く左へ一直線します。
シューティングに使うつもりで作ってます。よろしくお願いしますorz


718 : 名前は開発中のものです。 : 04/12/30 22:33:52 ID:hBkhdhLW
Script Testの5行目
if(temp!=self)&&(nd>distance_to_point(temp.x,temp.y))
のselfをself.idとすると、あちこち飛ぶようになりました。

selfはインスタンスidではないようですね。
『自分自身だけを示す特別なオブジェクトの値』と思ったほうがいいみたいです。
ちなみに、数値自体はself は -1、other は -2 が使われているようです。

719 : 名前は開発中のものです。 : 04/12/30 22:58:46 ID:Tg1dXFI6
>>718
素早いレス有り難うございます!
なるほど、すっかり盲点でした。
おかげさまでバリバリ飛ぶようになりました。なんだか鳥というよりハチ?
ソースはご自由にお使い下さい。
http://fetish-onsen.com/cgi/upload/source3/No_0125.lzh


壁にぶつかると画像が変わって、離れたらまた戻すようにしたい

829 : 名前は開発中のものです。 : 05/03/09 18:12:05 ID:5+vQO/af
壁にぶつかるとChange the instanceで
画像が入れ替わるように設定したのですが、そこからまた壁から離れると元の画像に戻るように設定したいのですが
どうすればいいかわかりません。どうすればいいでしょうか?
あと、常に画像が変化し続ける(1秒ごとに画像が変わるなどのような)ように設定したいのですが
なかなかわかりません。。

830 : よこしまなMr.0 : 05/03/09 19:50:41 ID:xegQl9qY
>>829
GM Japan Forumで既に返答しています。

831 : 名前は開発中のものです。 : 05/03/09 20:20:12 ID:CgMXBO4N
>>829
前者の件に関して、よこしまなMr.0氏の回答でも出来ますが、
こんな感じでもよいかと。
ttp://gamdev.org/up/img/2406.zip(gm6ファイル)

obj_Wall2のほうで、ステップ毎に周りにobj_Myobjが居ないかどうかチェックしてます。 (居た場合に処理を抜けてます)
obj_Myobj中のコリジョンイベントでやっている move contactは、壁に密着するためのテクです。

重なった敵を倒そうとすると、一匹は倒せるものの、主人公キャラが死亡してしまいます。

839 : 名前は開発中のものです。 : 皇紀2665/04/01(金) 10:24:12 ID:1ARpyFX9
こんにちは、横スクロールアクションゲームを作っている者です。

敵を倒す判定で困ったことになっていまいました。
重なった敵を倒そうとすると、一匹は倒せるものの、
主人公キャラが死亡してしまいます。

・主人公キャラ
 ・敵キャラと衝突イベント
vspeed > 0 && y < other.y+8が成立している時

(other)Destroy the instance
(self)Set the vertical speed -10
    (↑ここが原因っぽい。マ○オ風にしたかった。)

else

死亡時キャラグラに変更
1000ミリ秒停止
ライフが一つ減る
現在のルームをやり直す


次の発言へ続く。

840 : 名前は開発中のものです。 : 皇紀2665/04/01(金) 10:25:15 ID:1ARpyFX9
・敵キャラ
 ・破壊されたときのイベント
主人公キャラ.Chainに1を足す
得点に「10*主人公キャラ.Chain」を足す
(地面に着地したらChainは0になる。連続踏みボーナスのつもり)

重なっている敵を同時に倒す方法はないのでしょうか。

vspeedがマイナスになっている時は判定しないように
しようかと思いましたが、それだと下から触った時に主人公キャラが死ねないし。

Destroy instance a potisionを色々な方法で使って見たのですが、
うまくいかないし…

わかる方がいたら、助言をお願い致します。

(アップロード用のファイルを作ったのですが、
 Gamedev.orgが落ちているため、アップできず・・・)

841 : 名前は開発中のものです。 : 皇紀2665/04/01(金) 15:48:39 ID:2TUpx/JQ
そうそう、コリジョンチェックは同時に二つ以上は出来ないんですよ。
衝突対象のインスタンスが複数あった場合、
インスタンスIDの最も若い番号のものとのコリジョンチェックとなってしまいます。

以下、こちらの想像になりますが>>838さんの場合、
一匹の判定を行った直後のステップに、
(すでに下がっている位置から)主人公ともう一匹目とのコリジョンチェックが入るため、
if (vspeed > 0 && y < other.y+8) が満たされずにあぼーんしていると思われます。

場当たり的な解決法ですが、
主人公と敵のコリジョンチェック時に、主人公へ以下のコードを適用してみてはどうでしょう。
---------------
x = xprevious
y = yprevious
---------------
この場合1ステップごとにそれぞれ判定するため、
かなりの数が重なっていた場合は動作がおかしくなってしまうかもしれません。

1ステップで全ての判定を行うには、ちょっと複雑なコードが必要そうですね。

これで解決できなくてもうらまんでください。。。

842 : 名前は開発中のものです。 : 皇紀2665/04/01(金) 15:49:47 ID:2TUpx/JQ
訂正;>>838さんではなくて>>839さんでした。

843 : 839 : 皇紀2665/04/01(金) 16:54:10 ID:1ARpyFX9
実は838=839だったりします^^;

おお、こっちで対処した方法よりも、
>>841さんのコードを入れたほうが性能がいいですね!
ありがとうございます。

こっちは、倒した時に、とある変数に1を代入して、
次の死亡時に、とある変数が1だった場合に、それを0にして、
死亡をキャンセルする、という風にやっていたのですが。

…直前のステップの座標を読み込んでいるみたいですが、
どうして成功するのか、原理がわかりませんが…

猛烈に感謝します。

845 : 841 : 皇紀2665/04/02(土) 00:33:28 ID:e8w6vALJ
蒸し返すようで申し訳ないですが、私>>841でえらい適当なこと言ってますね。というか嘘ついてます、ごめんなさい。
最初に言っていることですが、アレは衝突するオブジェクトがソリッドのときです。
(なぜならソリッドオブジェクトと衝突したときは、強制的に直前の位置に戻されてしまうからです)

ソリッドでないときは、重なっている全てのインスタンスとコリジョンイベントは生じます。
しかし、同時ではなく一つずつ処理されます。
>>839さんが詰まっていた原因は、一つ目の敵と衝突したときにvspeedを上方向にしてしまっているので、
二つ目の敵の処理に移ったときに、条件の一つ目 (vspeed>0) が満たされなくなっているため、が正解です。
すみませんでした。。。

対処法ですが、>>841で言っていることは忘れてください。。。(同時に踏めないと思われます)
当たり判定で踏むor死亡の条件文は、一見正しそうに見えますが、踏んだときに移動方向を修正することを考えるとあまりよくありません。
そうではなく、お互いの衝突する(重なっている)直前の位置関係を見て、判定してはどうでしょうか。
たとえば、衝突直前の位置で、主人公のあたり判定最下部分が、衝突する敵の当たり判定最上部より上にあったら踏む、など。。。
衝突直前の位置は、xprevious,ypreviousで参照できます。

例 ) show information による情報 (16とか-12は調整してください)
Collision Event with object obj_enemy:
if expression (yprevious+16 )< (other.yprevious-12) is true
    for other object: destroy the instance
    set the vertical speed to -5
else
    destroy the instance

長文ごめんなさい。

マウスのボタンを押し続ける事で、1秒間に8発ほどの弾を発射する、連射機能を付けたい

860 : 名前は開発中のものです。 : 2005/05/08(日) 01:26:06 ID:7HhJrEj2
シューティングゲームを作っているのですが、
かれこれ3時間ほど悩んでいる事があります。

マウスのボタンを押し続ける事で、1秒間に8発ほどの弾を発射する、
連射機能を付けたいのですが、どのような処理をすれば良いのでしょうか。

GMはver5.3Aを使っています。
フレームレートは60に設定してあります。
よろしければお知恵を貸して下さい。

863 : 860 : 2005/05/09(月) 15:13:26 ID:h92qojUL
では、自分が悩んだ連射機能について書きます。
自機となるオブジェクトに、以下の処理を行いました。


イベント    アクション
[Create]━━[Set variable canshoot to 1]

[Alarm 0]━━[Set variable canshoot to 1]

[Step]━━━[If left mouse botton is pressed]
                ┃
         [If canshoot is equal to 1]
                ┃
                ▲ Start of a block
                ┃
         [Set variable canshoot to 0]
                ┃
         [Create instance of object (発射する弾のオブジェクト名)]
                ┃
         [Set Alarm 0 to 8] ←数字が大きいほど連射速度が落ちる
                ┃
                ▼ End of a block

サンプルゲーム 1945と、同じ様な処理になりました。

エフェクトってどんな感じ?

920 : 名前は開発中のものです。 : 2005/05/30(月) 09:01:21 ID:c5vdPkkV
>>919
情報thx

レジストしてる方は、エフェクトがどんな感じか情報ください:D

922 : 名前は開発中のものです。 : 2005/05/30(月) 15:16:37 ID:tHFi/7id
>>920
簡単なエフェクトサンプルを作って、exeで吐き出してみました。ソース付。
実行中F1キーで操作方法を見てください。
ttp://gamdev.org/up/img/2714.zip

内部定義されているパーティクルといった感じで、
関数一個の呼び出しだけで利用できるのがすばらしいと思いました。

保存するのはどのコマンドを使えばいいんでしょうか?

945 : 名前は開発中のものです。 : 2005/06/10(金) 20:06:13 ID:59WP4kNz
マップエディタのようなものを作りたいんですが、保存するのはどのコマンドを使えばいいんでしょうか?

946 : 名前は開発中のものです。 : 2005/06/11(土) 01:35:45 ID:RUQR5AHt
>>945
マップデータを独自にファイルへ保存したいのなら、GMLを使うしかない。
ASCIIテキスト形式なら ”file_text_…”、 バイナリ形式なら”file_bin_…” のような関数名のものをヘルプで参照。
(GML→Files,Registry.....とある項目らへん)
ファイルオープン、クローズや、読み書き時の挙動などは、C言語等と同等。しかし、ヘルプで詳説されてない気がする。
解らなければ、最初は結果の分かり易いテキスト形式で入出力してみるといい。

ドラクエ気里茲Δ1コマずつ歩けるようには

961 : 名前は開発中のものです。 : 2005/06/23(木) 22:42:49 ID:5LpYQeAH
ドラクエIのように1コマずつ歩けるようにはどうしたらいいんでしょうか?
どうしても瞬間移動してしまう。。。

962 : 名前は開発中のものです。 : 2005/06/24(金) 00:35:34 ID:CJfaii3Z
>>961
間のアニメーション描画すればいいんじゃないの?
何がわからないのかわからない

963 : 名前は開発中のものです。 : 2005/06/24(金) 00:59:39 ID:62kDwakh
>>961
こうしたいのかな…?
こういうサンプルでgamdev鯖を圧迫してしまうのは忍びないが…
ttp://gamdev.org/up/img/2823.zip

もしかして、forループとかで処理しようとしてないか?ループ処理は1ステップで完結してしまうぞ。
ステップ毎に繰り返すような処理は、カウンタなどを用いて設計する。
複雑になる場合はタイムラインなどを利用するとよい。

964 : 名前は開発中のものです。 : 2005/06/24(金) 01:08:13 ID:5KQxUqw2
>>962
snap to a gridを使っての話だから、アニメーションとか関係なくないか?

>>961
その機能まだ使ってないのでわからんが、
例えば16ドット区切りで移動させるとしたら、
4ドット移動を4回行った後、snap to a gridで位置を調整する

移動キーを押す
 ↓
4ドット移動を4回行う処理をする
 ↓
snap to a gridで位置を合わせる
 ↓
繰り返し

こんな感じでどうだろう?

敵の再発生位置をそれまでのポジションに戻したい、インスタンス単位のウェイトのかけ方も知りたい

974 : 名前は開発中のものです。 : 2005/07/04(月) 00:26:26 ID:jSaUhyrt
とりあえず4時間くらい遊んでみたよ。
で、一応練習プログラムを打ってみてからそれを踏まえて別ゲー組んでる。

今はシューティング作ろうと思ってるんだけど
ttp://gamdev.org/up/img/2841.zip
敵の再発生位置をそれまでのポジションに戻したい場合どうすればいいの?
敵が画面外に消えた時と、こっちの弾に当たった時に再発生するように組んであるます。
今の所は現在位置から若干下がるようにしてますが
そのやり方だと画面の上限を超えた時に弾だけ返してくるようになっちゃうです。
下限ならいいんですけどね。

あと、WAITの掛け方が分からんのですが。

975 : 名前は開発中のものです。 : 2005/07/04(月) 00:29:47 ID:jSaUhyrt
連続カキコすんません。
インスタンス単位でWAITを掛ける方法ですた。
つまり、敵が倒されたor画面外に消えた時にすぐに復活させないで時間を置きたいんです。
それと、弾を撃つタイミングをもっとバラケさせたいんです。

976 : 名前は開発中のものです。 : 2005/07/04(月) 01:48:58 ID:YJLSBR/u
>>974
インスタンス変数に xstart , ystart というのがあり、
これはインスタンスが生成された座標が代入されてます。
破棄イベントで生成するアクション命令の部分で、
数値の代わりにこれらの変数を使うと発生した位置に戻るようになります。

弾の発射間隔は、タイマーイベントについて調べてみましょう。
設定したステップ数後にアクションを起こす仕組みです。
ステップ間隔に幅を持たせるには、random(数値) を利用してみましょう。

再生成する間隔をバラけさせるには、現状の仕組みではちょっと難しいです。
あるステップ間隔後に敵を発生させるオブジェクトを用意して、
敵が倒された後に、それを生成するようにしてみてはどうでしょうか。

…長文スマソ

自機がステージ(ルーム)の終端付近で敵ボスと遭遇した時点でスクロールを停止したい

977 : 名前は開発中のものです。 : 2005/07/04(月) 22:01:40 ID:+eRzsRd2
一ヶ月程前からGMで縦STGを作っていますが、サンプルやドキュメントやマニュアルを読んでも
どうにも判らず煮詰まってしまった事がありまして、皆さんに質問したいのですが

自機がステージ(ルーム)の終端付近で敵ボスと遭遇した時点でスクロールを停止、或いは
ボス出現位置からルーム最終端までの画面がループするように設定するには
どのようなコマンドを処理していけば良いのか、お知恵をお貸し頂けますでしょうか。

それとも、各ステージ毎のルームと各ボスキャラ毎のルームを別々に作り、ステージ
端でルーム切替しかないのでしょうか.

978 : 名前は開発中のものです。 : 2005/07/05(火) 11:53:17 ID:XaMML4y1
どんな風にゲームを作っているか判らないからピンとこないけれど
スクロールの停止だけなら、ビューの追尾オブジェクトに
敵ボスまで自動で進む透明オブジェクトを設定すればいいのでは?

979 : 名前は開発中のものです。 : 2005/07/05(火) 12:38:56 ID:3uUJJy2A
ルームとルームを張り合わせるというか、ルーム1の端からルーム2の頭へ
スクロールするように移動ってのはない気がする。
単に漏れが見逃しているだけかもしれないけど、どうなんだろ。

Wiki内検索

#search(): You already view a search box

MENU

ドキュメント

GMLリファレンス

2ch

その他



最新の30件

2017-05-13 2016-10-01 2017-01-22 2017-01-14 2016-12-25 2016-12-02 2016-10-09 2016-09-25 2016-09-21 2016-08-29 2016-06-21 2016-02-23 2016-02-10 2016-01-18 2015-10-30 2015-10-20 2015-06-23 2015-06-20 2015-06-19 2015-06-10 2015-06-09 2015-06-07 2015-06-05 2015-06-03

人気の10件

今日の10件



これまでの訪問者: 18386
今日の訪問者: 1
昨日の訪問者: 2
閲覧者: 2