【2D】ゲーム作成ツールGameMaker part2【マンセー】at GAMEDEV
【2D】ゲーム作成ツールGameMaker part2【マンセー】 - 暇つぶし2ch556:名前は開発中のものです。
07/11/09 02:01:52 6eGYZdLF
>>555
一番簡単なのは、execute_file(fname)、もしくはexecute_string(string)かなぁ。
指定するテキストファイルや文字列がGMLの文法にのっとってることが前提だけど。
例に出ている

attack=50
move=5
pow=3

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

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

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

558:名前は開発中のものです。
07/11/09 18:08:17 jfoeydIJ
>>556
ありがとうございます。
やってみましたがエラーが出てできません。

fileId = file_text_open_read("chara/pc1/kitai001.txt");
execute_file(fileId);
file_text_close(fileId);

コードはこのようでいいのでしょうか?

gamemaker7を使用しています。
英語のヘルプには、execute_file(fname,arg0,arg1,...) と書いてましてarg0...というくだりが理解できません。

559:名前は開発中のものです。
07/11/09 18:09:43 jfoeydIJ
今更ですが、7をやめて5.3Aを使用したほうが良いのでしょうか・・・

560:名前は開発中のものです。
07/11/09 18:55:21 nbXU63ap
execute_file()の第一引数はfileIdではなく、単純にファイル名でOK。
>>558で挙げているコードは、次の1行が正しい。
execute_file("chara\pc1\kitai001.txt");

arg0 以降の引数の意味は、読み込むテキストファイル内で、GMLにおける引数をあらわすargument変数に代入される。
この仕様により、execute_file()は関数を呼び出すときと同じような感覚になる。
例えば、code アクションで
execute_file("hoge.txt", 100, "argtest", direction);
というコードを実行するとして、

---hoge.txtの内容---
// argument0 には 100、 argument1 には "argtest"、 argument2 には、呼び出し時におけるdirectionの値が代入されている。
var i;
for (i=0;i<argument0;i+=1) {
// ここは100回繰り返される。
}
strTest = argument1; // strTest には 文字列"argtest"が代入される
myDirection = argument2; // myDirectionには、呼び出し時のローカル変数 direction が代入される
---hoge.txtの内容終わり---

というようなことができる。

561:名前は開発中のものです。
07/11/09 19:07:33 jfoeydIJ
>>560
ありがとうございます。
file_text_open_readで呼び出したIDじゃないと受け付けないと思いこんでました。
無事、読み込みました。

・・・そのコードの実行時に、ファイル内部へarg001...を全部もっていき、
そのファイル内コードで実行、結果内容がそのまま実行?されるわけですね。
7から書かれてるということは6までは出来なかった事なのですね。


それとは別の事なのですが、やっていて不思議に思ったのですが、
1つのイベント内で記述した変数は、他のイベント内で使用できないのですね。
オブジェクト内すべてで(varやglobalを使わない)変数を使えると思ってました。

562:名前は開発中のものです。
07/11/09 22:30:00 jfoeydIJ
・・・連続ですいません。
今、ちょっと試しにexe化したんですが、上記の外部ファイルを読み込む方法だと
exe化したあとでもその外部ファイルが必要なのだとエラーが出てしまいました。

全てを内包してexe化する方法はないのでしょうか。

563:名前は開発中のものです。
07/11/10 23:10:13 Rkru7jD1
今日レジストしました。
サクサクっと指示されままボタンおしてると、本体起動してないのに勝手にレジスト状態になってました。ビックリ。

564:名前は開発中のものです。
07/11/11 00:53:12 dEP/qcYk
え・・・

565:名前は開発中のものです。
07/11/11 00:58:48 PY4Qhhzp
詳しくいうとpaypalで支払って、HTMLで指示にしたがって終了したあと
初起動でレジスト状態でした、ということです。

566:名前は開発中のものです。
07/11/11 07:17:37 Ai+8m8uK
3日前にクレジットカードでGameMaker7を購入し、
「Confirmation - Purchase of Game Maker」というメールが届いたのですが、
ここからどうしたらレジストできるかわかりません。
どうしたら良いのでしょうか。

567:名前は開発中のものです。
07/11/11 12:00:56 oO8sNPsb
>>566
メールにアクチベーションコードが記されていましたか?
されていれば、それを入力することでLite版からPro版にアップグレードできます。

yoyogamesからLite版のgamemakerをダウンロードしてきてインストールし、実行すると
Upgrade to the Pro Edition という画面が出てきます。
[Enter Activation Code]とありますので、そこをクリックします。
(出てきた画面が英語なら、下のほうにlanguageとありますので、日本語に変えることができます)
[新しいライセンスをアクチベーション]の項にいき、必要な情報を入力すると完了です。

568:566
07/11/11 16:52:35 Ai+8m8uK
>>567
コードらしきものは
「Purchase Reference」というものしか記載されていませんでした。
試しにこれを入力しても、はじかれてしまいます。

このメールとは別に、暫く待てば
アクチベーションコードが記載されたメールが来るのでしょうか?

569:名前は開発中のものです。
07/11/11 17:34:56 oO8sNPsb
実は私はver6からアップグレードしたので、7.0の購入手続きはちょっとわからんのです。大して変わらないとは思うのですが。
私のときは、
Thank you for upgrading your copy of gamemaker to version 7. Your new activation code can be found below.
YOY-UPG-XXXXXXXXXXXXXXXX
To use this activation code download and install the Lite edition of Game Maker version 7.0
(if you have not done so already). Run the program.
In the form that pops up select the button "Enter Activation Code".
In the form that appears enter the code and provide your name and further information.
The program will then be upgraded to the Pro edition.
ote that you must be connected to the internet when upgrading the program.

というメールが来て、アクチしたら画面が変わって

Activation Successful

Thank you for activating this title.

License Holder YOY
Purchase Ref 1-UPG-XXXXXXXXXXXXXXXX

という画面が出てきました。XXXXXXXXXXXXXXXXは同じ文字列 でした。
その後OSを再インストールした際再アクチしたことがあるのですが、ReActivationで上記のライセンスで入力したらアクチ成功しました。
Licence HolderはみんなYOYのようです。
あと、これは記憶が曖昧なのですが、Purchase Refのはじめの1-は入力せずにUPG以下から入力したとき成功した気がします。

570:名前は開発中のものです。
07/11/11 18:04:58 oO8sNPsb
後一つ、[Enter Activation Code]で出てくる最初の画面では、
デフォルトでRe-Install Existing Lisence(既存のライセンスを再インストール)となってて、再アクチの入力画面ですので注意してください。
新しいライセンスは、上のActivate New Licence(新しいライセンスをアクチベーション)を選択した後入力してください。

571:566
07/11/11 22:17:10 Ai+8m8uK
569さんありがとうございます。

Dear ******
Please save this email and print a copy for safe-keeping as confirmation that you have purchased Game Maker for $ 20.00
License holder: (自分のメールアドレス)
Purchase Reference: 1-**************(UGPという表記は無し、14数桁の数字・アルファベット)
というメールでした。

英語がわからないなりに、検索して色々調べてみたところ、
GM7を購入すると「1-UPG-16ケタの英数字」が書いてあるメールが来るので、
1をYOYに変えて入力する、との記事があったのですが、
自分のところに来たメールには1-と14ケタの英数字しか書いてありませんでした。
「YOY-UGP-14桁の英数字」で入力しても、はじかれてしまいます。
どなたかわかる方はおられませんでしょうか…。

572:名前は開発中のものです。
07/11/12 00:47:58 SMPr5R3+
状況がちょっと違うようですが、
ある人が一週間ライセンスが届かない、とsoftwrap(ライセンスを管理しているところ)に問い合わせたところ以下のメールが返信された、という例がありました。
URL:URLリンク(gmc.yoyogames.com)

>To re-activate your software, kindly open it once you have installed it and follow the steps below:
>
>- You will need to be connected to the Internet
>- Access the software
>- Select "Re-installation of License" or "Activate License" from the screen that appears
>- Enter your License Holder Name and Purchase Reference Number in the fields provided (if necessary click the tick box which says "Re-install Existing License")
>- The software will automatically reinstall and be activated
>
>You will be pleased to know that we have included your license holder details to proceed with the re-installation. Please copy and paste the details below:
>
>License Holder Name: INSERT (EMAIL ADDRESS) HERE
>Purchase Reference: INSERT (#-##############) HERE
>
>Should you require further assistance, feel free to contact Softwrap Support desk at support@softwrap.com
>

内容を見る限り、Re-install Existing Licence からやるようですね。もしまだ試してないのであれば、試してみてください。

573:名前は開発中のものです。
07/11/12 01:38:54 X/VZL/ZV
空気読まずにすみません
アクションゲームでキャラがダメージを受けたとき一定時間無敵時間を作りたいのですがどのようにすればいいでしょう。

574:566
07/11/12 02:57:08 XPKJHwMR
>>572
わざわざ調べていた様で、ありがとうございました!
その方法で出来ました!
ずっとわからずに困っていたので助かりました。

575:名前は開発中のものです。
07/11/12 09:20:30 zbFXrWjk
>>573
空気は読まなくてもいいが、過去ログは読めよ。
このスレのログだけでもヒントは書いてあるぞ。

576:名前は開発中のものです。
07/11/13 14:48:20 F+NwYmav
非公式の上級者フォーラムにトピック3投稿数13となってるけど、
開いたら何も無いんだけど、見えてないの俺だけ?

577:名前は開発中のものです。
07/11/15 22:49:15 Q3sXVJ6Z
>>575
まぁええではないかええではないか

578:名前は開発中のものです。
07/11/16 17:54:48 UQAwVTd5
床と天井を1つの衝突の処理でできないでしょうか
床と天井のオブジェトを分けたくないのですが。。。

579:名前は開発中のものです。
07/11/16 19:35:38 i1di2c5T
広いroomで操作キャラに追従してゲーム画面に映す範囲が変化するとき、
その時々でゲーム画面に映している範囲の座標を取得する方法はないでしょうか?
操作キャラで座標を取得する場合、roomの端と中央付近では分岐して処理を作るのは手間と余計な負荷がかかるので・・・・・

580:名前は開発中のものです。
07/11/16 20:21:56 g6M8XTDN
>>578
わけなくても出来ます。>>523ででてるplatform(platform_1.gmk)のソースを見て、仕組みをよく理解してみては。

>>579
取得したい情報は、組み込み済みのグローバル変数に定義されていたりします。
>>532のページに、組み込み済みの変数一覧があるから参考にしてみてください。
ビューの位置や幅はグローバル変数で定義されてて、
ver6以降だと、view_xvyew[0..7]、view_yview[0..7]、view_wview[0..7]、view_hview[0..7]で、
ver5.3Aだとview_left[0..7]、view_top[0..7]、view_width[0..7]、view_height[0..7] です。
URL:
URLリンク(www.wikihouse.com)

581:541
07/11/17 01:58:15 6kTW/Ms/
すいませんご教授ください。

URLリンク(gamdev.org)

ver7 で作成中なのですが、コマの向きと動きについて。
欲を出して動く駒で表現しようとしたら、行き詰まりました。

移動している間は移動モーション(walk_right etc...)を表示し、
動きを止めると立ち(stund)モーションにしたいのですがうまくいきません。
どうしたらいいのでしょうか。

582:名前は開発中のものです。
07/11/17 09:28:38 lq795UNb
change spriteをキーボードイベントでやらない。キーを押し続けている間ずっと入れ替えるから。
key pressイベントとkey releaseイベントのタイミングで、スプライトを入れ替える。

key press <left>
change sprite [left]

key release <left>
change sprite [stand]

key press <right>
change sprite [right]

key release <right>
change sprite [stand]

ちなみに chnage spriteアクションは、各項で次のローカル変数を代入しているだけ。
 sprite : 変数sprite_indexに代入
 subimage : 変数 image_index に代入。 表示するサブイメージ番号(アニメーションのコマ)。0で最初。
 speed : 変数 image_speed に代入。 1ステップで何コマ進むかをあらわすアニメスピード。0.5だと2ステップで1コマ変化する。

583:名前は開発中のものです。
07/11/17 22:59:12 ZhTdG7VC
Move towards a pointをGMLで書くにはどうすればいいんでしょうか
ほかののコードも知りたいのですが
一覧表みたいなのがあれば教えてくださるとうれしいです

584:名前は開発中のものです。
07/11/18 03:52:47 dZTdlxUn
Move towards pointはそのまんまmove_towards_pointだすよ。
URLリンク(www.blackratstudios.com)

585:名前は開発中のものです。
07/11/18 07:17:44 8No17c3/
イベントの最中ウェイトのように時間をとめたいのですがウェイトを使うと背景やキャラの動きも停止してしまいます
ウェイト以外で時間を止めるにはどのようにすればいいでしょう。

586:名前は開発中のものです。
07/11/18 09:45:04 0g2iccNJ
動かしたくないものをとめて動かしたいのだけ動かす。
そういう仕組みを作るんだよ。コマンド一つじゃあできない。

587:名前は開発中のものです。
07/11/19 18:24:01 Sx6ObIFS
マリオのブロックの様に下から殴れるブロックはどうすれば作れるのでしょうか?


588:名前は開発中のものです。
07/11/19 22:25:53 6rLgo3d8
>>587
if(obj.vspeed >= 0 && (obj.yprevious + obj.sprite_height - 1) > yprevious && place_meeting(x, y-1, obj))
たぶんこれでいけると思います
gml初心者なのでできなかったらごめんなさい

それはそうと俺も質問させてください
/modules/newbb/viewtopic.php?viewmode=flat&topic_id=48&forum=6
を参考に縦に移動する床はできたのですが
横移動する床ができません
自分なりにypreviousをxpreviousに変えたりしたのですが無理でした
教えてくださるとうれしいです


589:541
07/11/19 23:07:23 jkHOQwoD
>>582
ありがとうございます。

ドット絵とか、本当ゲーム作りは難しいですね。

590:名前は開発中のものです。
07/11/20 04:30:47 wcKOJeK1
GM7で、横スクロールアクションを作っています。
ボタンを押して剣を振るようにしたいのですが、
押している間、ずっとマシンガンのように連発してしまいます。
ロックマンX等に出てくるゼロのように単発で出したり
コンボをつなげられるようにしたいです。
GMLは勉強中で、まだあまりわかりませんが、どうしたら良いのでしょうか。

591:名前は開発中のものです。
07/11/20 15:12:19 2h9OV+2N
>>590
keyboardじゃなくkeyPressでやるといいと思うよ!よ!
フォーラムにのってると思うんだけどな・・

592:名前は開発中のものです。
07/11/21 05:25:51 aCno3jIs
URLリンク(www6.uploader.jp)
俺なにつくってんだろ\(^o^)/


これ知ってる人いないよな。。?

593:名前は開発中のものです。
07/11/21 14:46:30 GJ98eRgx
今までスレにでてきた質問とかまとめてみました。曖昧だけどジャンル別にわけてあります。
一部読みにくい部分もあるかと思いますが、参考にしてください。
質問する方は、質問する前に既出のものがないか調べてみてくださいね。
URLリンク(www.wikihouse.com)


594:名前は開発中のものです。
07/11/21 21:15:55 o5zLLD5X
上記でもでてきた

・GM7でmbText 1.4.0とjFont Maker 2.2.0を使って日本語表示しようとするとエラーでる

という問題に関して自分の環境でもでました。

WinXP PRO sp2
VRAM32mb
MEM1G
GM7

スプライトサイズを削っていく方法でどのサイズでロードできるか試してみました。
結果、w:320 h:2054 サイズでRunできました。
漢字の京供あたりまで表示できているようですが、

描画するテキスト → ~∵・・’々”  と表示されました。

595:名前は開発中のものです。
07/11/21 23:05:33 o5zLLD5X
あるオブジェクトが、上昇中はスプライトA下降中はスプライトBで表示したいんですが、
落下する時の表示ができません。

移動する前の地点と移動した後の地点の変数を取得する方法はありますか?
それよりスマートな方法はありますか?

596:名前は開発中のものです。
07/11/21 23:16:25 kronrROz
>>593
乙です。
俺は初代スレを見る事ができないので、
そこでなされたQ&Aが見られる事は有難いことです。

>>595
移動する直前にいた位置を示すxprevious,yprevious、
移動した後の位置(現在の位置)を示すx,yという変数が
デフォルトで存在するので、それらを活用するといい。

597:名前は開発中のものです。
07/11/22 00:12:30 g8wLykso
>>588
横移動する床のうえに乗ったら、一緒に動かしたいってことかな。
自キャラの直下にあるインスタンスを調べて、動く足場だったら一緒に移動させるってことをさせればいいんだけど…
自キャラのステップイベントでこんな感じにしてみては?
必要に応じて、適宜変えてください。
[codeここから]
/* serch_x, serch_y : 調べたい足元の座標 */
/* 実際は自分の都合に合わせて数値を変えること */
serch_x = x;
serch_y = y+16;

ground_id = instance_position(serch_x,serch_y,[横移動する床のオブジェクト名]);
/* ground_id には、足元のインスタンスIDが入る */

if (ground_id <> noone) {
x += ground_id.hspeed; /* もし床が速度で管理されているなら、自キャラに床の水平速度を足し込む事で、一緒に移動しているようになる */
}
[codeここまで]
上記の例だと、 (serch_x,serch_y) 一点だけでしか判定しないから、精度は悪いかもね。
線とか矩形領域で判定したければ、collision_line() とか collision_rectangle() あたりを使用してください。

598:名前は開発中のものです。
07/11/22 00:35:47 UQGy8J0/
>>592
説明書plz!

599:名前は開発中のものです。
07/11/22 00:48:22 xbPHpoIO
>>596
ありがとうございます。

600:名前は開発中のものです。
07/11/22 01:25:56 Z2DrGOi5
>>597
おおでけた\(^o^)/
ありがとうございます

>>598
移動キーで移動
スペースで発射

選択画面ではクリックで武器選んで

見たいなところ押すと始まる
なんてつまらないゲーム\(^o^)/

601:名前は開発中のものです。
07/11/22 16:23:18 xbPHpoIO
>>552
AutoHotkey というソフトで解決できた。
URLリンク(lukewarm.s101.xrea.com)

以下のコードを打ち込むとOK

;######### ココカラ #########
#IfWinActive Execute Code
F5::
CoordMode, Mouse, Screen
MouseGetPos,x,y
CoordMode, Mouse, Relative
MouseClick, left, 20, 45
CoordMode, Mouse, Screen
MouseMove, x, y
;######### ココマデ #########

F5キーでOKボタンをクリックする仕様です

602:名前は開発中のものです。
07/11/24 10:47:25 yxZvhkIv
非公式情報ページのアンケートでGM6利用者が圧倒的に多かったから
6をDLしようとしたら公式に前のバージョン落ちてない\(^o^)/

603:名前は開発中のものです。
07/11/24 11:08:07 Ni6Xllr/
yoyogamesは7.0以降しか版権がないからね。
旧公式から前のバージョンを落とせるよ。
URLリンク(www.gamemaker.nl)
下のほうに旧バージョンの一覧がある。

でも正直、6.xはお勧めしない…。整数でも24bit、およそ1678万弱までしか扱えないのはちょっと。
5.3Aと7.0ではこの問題がおきていない。

604:名前は開発中のものです。
07/11/24 17:08:16 4xZfNBY3
7.0 は、今年の3月リリースからバージョンアップとかの情報ないっすか?

それと、EmEditorの構文ファイルを作ってみたけど需要ある?

605:名前は開発中のものです。
07/11/25 01:48:28 Eof1yOl+
格闘ゲームつくーるのような攻撃モーションの四角い可視当たり判定を作りたくて四苦八苦しています。

1ドットの小妖精を作って、image_xscaleで引き延ばしたオブジェクトを不可視指定。
Drawイベントで同じ大きさのdraw_rectangleを作って表示しています。

もっとシンプルにできますか?


width = 10; height = 10; // 当たり判定の大きさ
atariid = instance_create(x+10,y,obj_atarihantei);
atariid.image_xscale = width;
atariid.image_yscale = height;
if (mode_visible) {
//スプライト指定にすることで可視化
atariid.sprite_index = spr_attack;
}

Draw Event:
draw_rectangle(x,y,x+width,y+height,true) ;

606:名前は開発中のものです。
07/11/25 02:06:45 vBlAV7Zz
Draw Event: 内は削除して、if文のコードを以下のように変更、じゃだめかな
if (mode_visible) {
//スプライト指定にすることで可視化
atariid.sprite_index = spr_attack;
atariid.visible = true;
}


607:名前は開発中のものです。
07/11/25 03:24:21 Eof1yOl+
>>606
それですと、元スプライトが―小妖精から直すの忘れてました―
1ドット絵ですので、□でなくて■で表示されてしまうんです。

元スプライトを□で書いてみたんですが、オブジェクト拡大時
やたらと輪郭のボケた表示になってしまいました。
はっきりとした線(□)で表示したいのです。

608:名前は開発中のものです。
07/11/25 10:01:18 r1aVIhHY
ミックマンすげーな

609:名前は開発中のものです。
07/11/25 11:28:56 qQuswX/z
>>608
俺は昨日遊んでショックを受けたよ…。
gamemakerってもっさりしたゲームしか作れないものだと思ってたから。

610:名前は開発中のものです。
07/11/25 11:47:25 vBlAV7Zz
>>607
枠で表示したかったら、obj_atarihantei の Drawイベントで draw_rectangle() を使って表示するのが一番スマートかな。
塗りつぶされて見えないのが嫌だったんなら、半透明にする手もあるけど。
ローカル変数 image_alpha を0.5ぐらいに設定すれば、半透明になる。

611:名前は開発中のものです。
07/11/25 22:25:10 nQKNJKcw
起動が遅い・・・
GM5.3Aで7.75Mの容量くらい作ったけど起動のローディングが15秒くらいになった
やっぱマシンがへこいとローディング長くなるんでしょうか?

ルームは幅1000高さ700でスプライトは高さ300幅400とか多く、113個くらい作った
まだ音入れてないのに動作確認だけで日が暮れる状態です・・・
ビデオメモリの使用をやめて遅延ロードとか考えた方がいいんで・・・しょうか・・・

612:名前は開発中のものです。
07/11/27 17:29:34 Kfsg319Y
いくつか遅延ロード入れればおk

613:名前は開発中のものです。
07/11/27 22:05:08 o7JCBwEc
ありが㌧
とりあえず遅延を適当に入れて調整してみる

614:名前は開発中のものです。
07/11/27 22:37:33 03pWBi0H
>>613
ゲームの途中でロードする背景とかスプライトとかを中心にね。
最初から使う奴は入れて

615:名前は開発中のものです。
07/11/28 02:34:13 IKhE5IEH
>>609
あれはスプライトのアニメーションでうまく見せてるんだろうね。
ドット絵を描けない俺としては尊敬するほどに羨ましい。
あれくらいの領域のゲームを作りたいと思って始めたんだがなかなか・・・

616:名前は開発中のものです。
07/11/28 23:22:11 UcC33M+r
教えてください

ver7のグローバルセッティングの翻訳で困ってまして

Let <Esc> en&d the game
&Treat the close button as <Esc> key

ここの翻訳がわかりません。
一行目は、ESC で終了でいいのでしょうが2行目が・・・
どうか教えてください。

617:名前は開発中のものです。
07/11/29 00:46:50 OT5fuA8b
>>616
ヘルプを見ると、
When checked the close button of the window will generate an escape key event. When not checked the close button events are called instead.
→意訳:チェックが入っていると、閉じるボタンで<ESC>キーイベントを発生させます。 チェックをはずすと、代わりに Close Button イベントを発生させます。
とあるから、
『閉じるボタンで <ESC>キーイベントを発生させる』
でいいんじゃないかな。

で、翻訳とは違うんだけど、このClose Button イベントは、Win32API?の WM_CLOSE とは違うことに注意。
不用意に Treat the close button as <ESC> key のチェックをはずすと、×ボタンで終了しなくなる。(Alt-F4も効かないっぽい)
ゲーム内で Close Button イベントを拾って、End the game アクションを定義しておけばいいんだけど・・・。

ESCキーで終了させずに×ボタンで終了させたい場合は、次のようにするべし。(7.0 only)
・Global Settings の、[Let <Esc> end the game] のチェックをはずし、[Treat the close button as <Esc> key] のチェックもはずす。
・ゲーム中ずっと存在するオブジェクトとかで、Close Button イベントを定義し、そこで End the Game アクションを起こす。

618:名前は開発中のものです。
07/11/29 01:07:06 2O8VJSxX
>>617
おぉ、ありがとうございます。

E-WordChanger2000で変換がきかないところが多々ありますね。

619:名前は開発中のものです。
07/11/30 16:26:11 JpK40a/w
E-WORD2000 での辞書ファイルです。

当分時間作れなくなりました。
翻訳引き継いでくれる方希望。

URLリンク(gamdev.org)

620:名前は開発中のものです。
07/11/30 16:27:29 JpK40a/w
E-WordChanger2000でした

621:名前は開発中のものです。
07/12/01 00:20:12 do+f7uIl
>>619
全然翻訳できてねーじゃねーかwwww
俺も今同じく翻訳中だけど、あれなんだよな、有料版の部分の翻訳が出来ないorz
それと、ボタンが文字化ける
冒頭のアクティベート部分も化ける
文字化けさえ克服できれば後一歩なんだが

622:名前は開発中のものです。
07/12/01 01:05:45 NJujLxPi
>>621
未レジストって事?
俺レジストしてるよ。
物ちょうだい。

623:名前は開発中のものです。
07/12/01 02:19:17 do+f7uIl
時間がなくなったと、途中で放棄して、他人に丸投げするかと思えば
すぐさま、他人の手柄を丸々よこせと言ってみたりする

624:名前は開発中のものです。
07/12/01 02:38:10 NJujLxPi
寄越せといってみたりしたが別人だ

625:名前は開発中のものです。
07/12/01 02:47:00 2L8kwVBd
>>623
共有してくれる意志があるならしてもらえると助かるな。

626:名前は開発中のものです。
07/12/01 03:02:43 2L8kwVBd
と思ったけど自由意志だな。
すまない、今のは忘れてくれ。

627:名前は開発中のものです。
07/12/01 03:09:01 NJujLxPi
620でてこいよ疑われてるぞ

628:名前は開発中のものです。
07/12/01 03:15:52 NJujLxPi
氏ね!111!!11
うpる気ないなら初めから書くなバーカ!!!!
どーせろくなもん作ってないんだろwwwww

629:名前は開発中のものです。
07/12/01 03:18:38 NJujLxPi
>>626
何が自由意志だ! 格好良いとおもってんのかよ(プ
早くクソして寝ろwwwwwwwwwww

630:名前は開発中のものです。
07/12/01 03:44:02 do+f7uIl
初めから、誰もうpするなんて言ってない件
つーか、>>625になら渡してもいいけど
でも本当は完成してからうpしたいな

631:名前は開発中のものです。
07/12/01 03:44:02 NJujLxPi
ごめんなさい日本語ください
間違えられたのが悔しかったんだ
抜いたら落ち着いた

632:名前は開発中のものです。
07/12/01 03:44:37 do+f7uIl
>>631Vipへカエレ


633:名前は開発中のものです。
07/12/01 03:45:45 NJujLxPi
オマエモナー 


く、悔しくないからな

634:名前は開発中のものです。
07/12/01 03:47:07 p7Hahl+U
今度はGameMakerスレで沸いてるのか。
前はツクールスレだったな。

635:名前は開発中のものです。
07/12/02 03:21:15 RfbAwBK6
質問です。

ボタン押下時に instance_createで作成したオブジェクトをキャラクターに追従させるにはどうしたらいいのでしょうか?

my_copy_id = instance_create(x-20, y-20, obj_my_copy);

でやっているのですが、その場所で留まっています。

636:名前は開発中のものです。
07/12/02 03:26:46 RfbAwBK6
忘れていました。

その作成したオブジェクトは、シューティングのオプションでしてキャラの周り(1つめは上、2つ目は下)という風に出現場所を変えたいのです。

637:名前は開発中のものです。
07/12/02 03:42:50 4Kr9+zdR
>>635
obj_my_copy が追従したいオブジェクト(obj_mychara とする) のインスタンスがルーム内に一つしかないなら、
obj_my_copy の step イベントで Var アクション を追加し、

variable : x
value : obj_mychara.x

もう一つ、

variable : y
value : obj_mychara.y-20

上記はキャラの上に配置されるようになる例。数値適当にかえてくれ。

638:名前は開発中のものです。
07/12/02 04:42:57 4Kr9+zdR
あっと、よく読んでなかった。
オプションは複数置きたいけど、すべて同じオブジェクトにしたいってこと?そういう場合は、インスタンスによって配置を変えないとね。
上記の obj_my_copy の step イベントで追加した Var アクションのところを、

variable : x
value : obj_mychara.x+optx
variable : y
value : obj_mychara.y+opty

とかに変えて、ボタン押下時に instance_create()したときに、

my_copy_id = instance_create(x, y, obj_my_copy);
my_copy_id.optx = 20;
my_copy_id.opty = 0;

とかすると、右側に出る、とかできる。if文で適当に条件分岐させて、optx と opty の値を決めればいい。

639:名前は開発中のものです。
07/12/02 05:25:36 4Kr9+zdR
それはそうと、>>601 のアイディアを元に、
>>552 の要望にこたえられそうなAutoHotKey のショートカットマクロが出来た。
Execute Code ウィンドウでも、 Script Properties ウィンドウでも、即確定して閉じる。
URLリンク(gamdev.org)

デフォルトでは Ctrl+W でウィンドウを閉じるようになってます。。
ファイル内の ^w:: を適当に変えることでキーカスタマイズ出来ます。
autohotkey.ini に追加するなりして利用してください。

・・・もう5時半かorz  おやすみなさい

640:名前は開発中のものです。
07/12/02 05:59:41 RfbAwBK6
>>638
その記述でうまく予定通りの動作にすることができました。
ありがとうございました。

遅くまでお疲れ様でした。
お休みなさい。

641:名前は開発中のものです。
07/12/04 16:21:12 lZt/Vorp
ボタン連打による連続攻撃の判定をうまく組めないや。

if文でattack+=1によるatack何回目かで表示かえてるけど
モーションの途中で次のモーションに変わるんだよね。(当然だけど

1回目のモーション中に押した判定があった時に、
2回目のモーションに移行したい。

ヒント教えてください

642:名前は開発中のものです。
07/12/04 18:30:38 QsBWBjou
ダメージを食らった時無敵時間を作りたいんですが
「ヘルスが1以上減ったとき」というのはどう設定すればいいのでしょうか

643:名前は開発中のものです。
07/12/04 21:57:57 lZt/Vorp
>>642
俺も初心者だけど浮かんだので書いてみる。

・ステップ開始イベントで、現在のヘルスを変数(たとえば、henka_health)に格納
・ステップ終了イベントで、現在のヘルスとhenka_healthを比較
1以上変化があれば、無敵時間突入

という風にやるとかどう?

644:名前は開発中のものです。
07/12/04 22:08:42 lZt/Vorp
>>641

アニメーションが終わった時のイベントが End of animation というのは解ってるんだけど、
アニメーション中にatack(があったかの)変数を使って、
もしあれば次のモーションに移る。

って感じの「モーション中に何かあったか」を調べるGMLって何かある?

645:名前は開発中のものです。
07/12/04 22:31:07 OLWlECNF
>>642
プレイヤーのヘルスを減らすスクリプトっていうのを作っておいて、
ダメージを与える時には必ずそのスクリプトを呼ぶようにする。
で、何か処理を追加したい時にはそのスクリプトに追加する。
ってやり方もあるよ。

>>644
アニメーション開始時に適当な変数を0に設定して
何かアクションがあったら変数を1に変える
アニメーション終了イベントで変数が1かどうかチェック
でどうかな。

646:名前は開発中のものです。
07/12/04 22:41:58 lZt/Vorp
>>645
連続攻撃にしたいんだ。それだと1・・・ ん?
1回目に atack=1 二回目に atack=2 ...
として、終了イベントで ってあれー?

うん、ありがと、何か閃きそうだ。頑張ってみる。

647:名前は開発中のものです。
07/12/04 22:43:28 NwDfsPPB
遅かったかも試練が、書いたので置いとく。

>>644
キープレスイベントかなんかで、イベントを拾えばいいんでないの?

>>641
zキーで攻撃するとして、
key press <z>
...
switch (attack) {
 case 0: // 1発目
 // ここにモーションを発動させる何かを書く。
 attack += 1
 break;

 case 1: // 2発目
 // ここにモーションを発動させる何かを書く。
 attack += 1;
 break;
// ...
}
...
モーションは、タイムラインで設定すればいいとおも。
もしくは、ステップイベントでモーションを設定してる自作スクリプトを呼び出す、のもアリかなぁ
例えば引数を、attackとモーションが始まってから経過したステップ数にして、
attackでモーションの種類を場合わけをして、
経過ステップ数でそれに応じた移動をさせたり、アニメーションさせたり、キー入力の可否を設定したり、等々...
ま、それだとタイムラインとあまり変わらんのだが。

648:名前は開発中のものです。
07/12/04 23:05:42 lZt/Vorp
>>647
thx
caseもやってみたけど、イメージ通りとはいかなかった。
(俺のやりかたが悪いのか

イメージとしては、モーションが終わらないと次のモーションが始まらないって事なんだけど、
どうしても、モーション途中でボタン押すと、モーション途中で放棄して新しいモーションが
始まるんだ。

649:名前は開発中のものです。
07/12/04 23:10:18 lZt/Vorp
一定時間内(連続二回とか)に同じキーが押されるって判断は、
タイムライン?とかアラームで判断させたほうが良い?(これもイマイチうまくいってない

これができるとダッシュ判定とかできそうなんだよな。 うーん。

650:名前は開発中のものです。
07/12/04 23:16:11 NwDfsPPB
>>648
あ、動作キャンセルじゃないのか。上の例は、動作キャンセルっす・・・。
となると、俺だったらモーション中は攻撃キーの入力を無視するような仕組みを作るなぁ。
キー入力可否を表す変数(ableAttack)を一つ用意して、
if (ableAttack) {
 switch (attack) {
  // ここは>>647と同じ感じで...
 }
}
こんなかんじで。モーションが終わったら、連続攻撃入力受け待ち期間になって、
次の攻撃キーの入力があったら、連続攻撃発動(attack が +1されてく)。
この期間はアラームで管理するといいかもね。
で、連続攻撃受け待ち期間も終了したら attack を 0 にもどす。
そんなイメージが沸いた。

651:名前は開発中のものです。
07/12/04 23:33:22 lZt/Vorp
>>650
thx
うーん、それだと小パンチ連続みたいな感じができないんだよね。
何カウントか待たないといけなくならない? というか成った。
モーション中にもっかい押されると連続攻撃発生みたいにしたい。

少し落ち着いてくる。

652:名前は開発中のものです。
07/12/05 02:09:27 DyBIMWNQ
格闘ゲームの必殺技みたいにカーソルキーの入力待ちはどうすればできますか?

「↓・斜め→・右+A」のようなコマンドです。

653:名前は開発中のものです。
07/12/06 00:37:05 ipO1poTD
連続攻撃判定うまくいかなーいorz

654:名前は開発中のものです。
07/12/06 22:57:30 g7KZCqa1
はじめましてこんばんわ。
最近gamemakerにはまりだした、新人です。
2D横スクロールゲームを作ろうと思って>>305さんのサンプルを参考にさせてもらい、
ちょくちょく進めてるんですが、途中で詰まってしまって、原因を探ろうにも
全くわかりません。どなたかご教授お願いします。

URLリンク(tonosiki.mbnsk.net)

←→キー;左右移動
Zキー;ジャンプ
Xキー;パンチ

エラー:
パンチを数回使うと、keyXで変数panchが見つからないとエラー表示される
また、移動しながらパンチをしてもkeyleftまたはkeyrightで変数panchが見つからないと
表示される。

途中、命令をコメント文で囲っていますが、気にしないでください。

655:名前は開発中のものです。
07/12/06 23:41:29 x5GKX6Js
動きのあるオブジェクトを動きのあるオブジェクトにチェンジすると
スプライトが1から表示されない時があるのですが解消方法はありますか?

656:名前は開発中のものです。
07/12/07 00:45:55 4eA37li8
上のほうで言っていた翻訳の奴あげてホスィ
paypalで1000円までなら支払ってもイイ

657:名前は開発中のものです。
07/12/07 00:58:23 +n/vdyUz
>>654
見たところ、unkown variable というエラーがでるような記述ではないと思います。
そこで、unknown variable gamemaker bug というキーワードでググったところ、
海外のフォーラムに、ごく稀にそのようなことが起こる、との書き込みがありました。
URLリンク(gmc.yoyogames.com)
下から2番目に Alert Games という人が答えています。
どうやら、プロジェクトをセーブする際にバグがあるのかもしれない、といっていました。
その人はバックアップファイルで元に戻すことを勧めていますが、
私のほうで obj_main オブジェクトを丸ごと duplicate して(右クリックでできます) 再度ためしたところ、unknown variable のエラー表示はなくなりました。
こんなことが起こるんですねぇ・・・。



658:名前は開発中のものです。
07/12/07 02:06:08 4eA37li8
態度が悪いといって怒られるかも知れませんが助けてください

キャラをスト3の豪鬼の必殺技みたいに、横にすべりながら攻撃する時に、思い通りに動かない。
Xポジションを変えると瞬間移動みたいになったり、
move_towards_point使うと、ずっと移動しつづけたり・・・

3キャラ分横に移動させて止めるって方法教えてください

659:名前は開発中のものです。
07/12/07 02:26:02 +n/vdyUz
態度というか、結果だけを求める質問をされても、
前提となる部分が何もないと回答が無数にあるため、答えようがないというのが正直なところでして。
前提となる部分を回答する人が想像して答えようとしても、えらい長くなるから面倒だしスルーってなりやすいですし。
(というか、1から作るやり方をいうようなもんですし)
こうやってるんだけどうまくいかない等、詳しい情報がないと手助けしてくれる人の可能性が低くなりやすいですよ。どうしようもないのが本音です。

660:名前は開発中のものです。
07/12/07 02:40:14 4eA37li8
ふぎゃΣ

ええっと、前提となる部分・・・
2D格闘ゲームを作ってまして、立ち状態から
ボタンc(必殺技ボタン)を押したら、パワー消費して(これはOK)
立ち絵から、sprite(spr_special_wazaA ; サブイメージ数20)
に変化させて、キャラを右方向ゆるやかに移動させたいんですが、

if keyboard_check_pressed(ord('C')) {
 sprite_index = spr_special_wazaA ;

 image_index = 0 ;

 image_speed = 1 ;
 x += 10 ; //←ここで移動を書こうとしている
}
こうすると、右に10ほど瞬間移動したみたいにコマ飛びして表示されます。
for でやってみても一緒でしたし、move_towards_pointすると地面となる
オブジェクトと接触してる間はちょっしか移動しないし、ジャンプとかすると
そのまま画面の端まで移動しちゃうんですよね。

ゆっくり移動して目的の場所でピタっと止める方法はありますか?

661:654
07/12/07 07:17:58 MOpCkhcY
>>657
わざわざ、調べていただいて、さらに海外フォーラムまで言っていただいて
ありがとうございます。

エラー表示が消えました。ありがとうございましたm(_ _)m

662:名前は開発中のものです。
07/12/07 22:00:35 3R22D1pU
>>660
1stepごとに少しずつ移動させたければ、ステップごとに細かく移動させないといかんのよ。
何ステップでどれくらい移動するかあらかじめ決めて、
移動するステップ数(変数名 move_cnt)と1stepで移動する移動量(変数名 dx)を計算しておく。
で、ステップイベントで、
if (move_cnt>0) {
 x += dx; //x 方向にdxだけ移動する
 move_cnt -= 1; // 移動カウントを一つ減らす
}
こんな感じにすると少しずつ移動する。面倒だけど、仕方ない。
横移動制御には hspeed を利用する方法もあるけどね。
技発動したときに、move_cnt と dx (とスプライト(sprite_index)とアニメーションスピード(image_speed))を決めてあげればいいんじゃないかなぁ。
なお、for文は1step内で繰り返し終了まで処理することになるので、上のような意味にはならない。
技発動中に操作させたくなければ、キー入力を拾う部分でそういうフラグも設けること。

663:名前は開発中のものです。
07/12/08 02:21:58 HAW715W6
>>662
ものすごく死角から攻撃されたような衝撃です。
明日試して見ます。

そして新たに質問なんですけど、draw_sprite_stretchedでスプライトを下記の方法で表示すると一瞬で消えてしまうんですが、何が問題なのでしょう?

//X(攻撃)ボタン
if keyboard_check_pressed(ord('X')) {
 attack = 1; ren += 1 ;

 if ren == 1 {
  if !muki_chk{ sprite_index = x1_r; }else{ sprite_index = x1_l; }
  image_index = 0 ; image_speed = 1 ;
  draw_sprite_stretched(spr_attack,0,x+10,y-20,50,20);
 }else if ren == 2 {
  if !muki_chk{ sprite_index = x2_r; }else{ sprite_index = x2_l; }
  image_index = 0 ; image_speed = 1 ;
  draw_sprite_stretched(spr_attack,0,x+10,y-20,30,40);
 }
}

664:名前は開発中のものです。
07/12/08 07:47:24 qBb/GgCE
>>663
draw系の関数はdrawイベント中にしか効果がないよ。
画面に描画する機能なんだけど、drawイベントに入った最初に背景色や背景画像で全体を描画してしまうので、描いても消されてしまう。

スプライトを拡大表示させたければ、image_xscale image_yscale という変数で指定できる。
どうしても、キャラスプライトとは他に描画したいものがあるなら draw イベントで描画関数で描こう。
ただし、draw イベントに処理を施すと、自身のキャラ(sprite_index のスプライト)が自動で描画されなくなるので、忘れずに描画させよう。

665:名前は開発中のものです。
07/12/08 18:34:14 HAW715W6
>>664
ありがとうございます。

あ、すいません、これはdrawイベントに書いてます。
なのに一瞬で消えてしまうからナンダロウなーと。
深度を指定して試してみるっす。

666:名前は開発中のものです。
07/12/08 20:46:46 Cn07bZV4
draw_sprite_stretchedが
if keyboard_check_pressed(ord('X')) {
}
の内側にあるから、キーを押した瞬間しか
描画されないんじゃないかな

667:名前は開発中のものです。
07/12/08 21:00:01 HAW715W6
深度変えてもダメだった。
が、今の問題とは関係ないけどobject_set_depth(ind,depth)って、どこで宣言してもいいのかな?
(最後の方にでてくるオブジェクトで、最初のほうにでてくるオブジェクトの深度変えるとか)
心配だから、ルームに必ずおくオブジェクトに設定してるけど。

>>666
なるほど!
では、タイマーイベントで試してみます。

668:名前は開発中のものです。
07/12/08 21:06:20 HAW715W6
ってダメだ。 drawイベントじゃなくなるorz

表示時間のばすか、消えないままにする方法ってないですか。

669:名前は開発中のものです。
07/12/08 21:38:56 Cn07bZV4
if文の外に出すんだ

670:名前は開発中のものです。
07/12/08 21:47:16 HAW715W6
攻撃回数でサイズを変えたいんでそれは・・・

って、そのための変数だ!
if文の中で数字を変数に入れて下のほうで宣言すればいいんだ。
やってみます。

671:名前は開発中のものです。
07/12/08 22:00:33 HAW715W6
・・・そもそも攻撃した時だけ表示したいんだからダメか。

画面外に表示しておいて、攻撃時(x-key press)時だけ
目的の場所に移動させるという方法にしてみる。
他に良い手がありましたら教えてください。

672:名前は開発中のものです。
07/12/10 15:28:56 ey1ac3Xs
>>671
何を表示したいのかいまいちイメージできないけど・・・・・別に1つのオブジェクトで処理してしまおうとしなくてもいいんでないかい?
表示用のオブジェクトを作成しておいて、アラームイベント2つ作成し1つ目にDestroy the instanceアクション(インスタンス破棄)を登録
2つ目に1つ目のアラームを起動させる記述をする。生成イベントでアラームイベントの待機時間用変数を宣言しておく
if keyboard_check_pressed(ord('X'))のブロック内のどこかでこの表示用オブジェクトを生成してやるとともにさっきのアラームイベントのタイマーセットを書き込んでやれば
このタイマーセットの間だけ表示されると思う。以下こんな感じのGML書いたらっていう案(表示オブジェ:obj_Disp 待機時間用変数:IntervalSet アラームイベントを1と2で設定したとする)
if keyboard_check_pressed(ord('X')){
//攻撃とか動作とかをずらずら記述してあるかと・・・
//-----------------
//ここより表示用オブジェ生成
var DispObjID;
DispObjID = instance_create(self.x, self.y, obj_Disp);//例として自分の原点に表示用オブジェのインスタンスを生成
DispObjID.IntervalSet = room_speed * 3;//例として3秒間表示
}

673:672
07/12/10 15:45:44 ey1ac3Xs
上の続き
○obj_Dispの生成イベント
var IntervalSet; //待機時間用変数の宣言
alarm[2] = 1; //破棄用アラームイベントを1ステップ後起動させるアラーム2を起動

○obj_Dispのアラーム2イベント
alarm[1] = IntervalSet;//破棄用アラームイベント起動

○obj_Dispのアラーム1イベント
>>672の記述どおりDestroy the instanceアクションをセットし、自分自身(obj_Disp)を破棄する

後はobj_Dispの描画イベントにあなたが思ってる表示をさせる記述をもりもり書き込もう
実際試してないけど>>672は似たような事してるので多分大丈夫だとおもうよ?

674:672
07/12/10 16:18:53 ey1ac3Xs
すまない、書き込んだ矢先に的外れなような気がしてきた。でもなんで描画イベントなの?

675:名前は開発中のものです。
07/12/10 21:07:39 hgs58Ul1
>>672-674
どんぴしゃで目的の動作にできた!! マジありがとー!!

格闘ゲー+α(ファイナルファイトみたいな)の作成中、
どうしても汎用的な当たり判定枠を作りたくてやってたんだけど
すぐに消えるわ表示されないわで困ってた。

必殺技で自分の分身をつくってソイツに殴らせるのをやりたかった。
(コイツにのみ当たり判定有り)
で、ぶわーっと前にまっすぐ飛ばしたりもしたかった。

一応アラームも使ってデストロイ指定してたんだけど、
連続攻撃すると分身が画面に残ったりしてた。
(animation end でデストロイ指定+表示から秒単位でデストロイ)

言われた方法でやったら、連続攻撃してもキレイに消えてくれて
なんかもう、やっとムチ振りアクションに取りかかれるッス。ありがとー!

676:名前は開発中のものです。
07/12/10 21:08:47 hgs58Ul1
あ、描画イベントなのは draw_うんちゃらでしか表示する方法を知らないからでした。

677:名前は開発中のものです。
07/12/11 00:16:53 QXoJ6Zco
すいません、GML初心者です。

if relative position (4,0) is collision free for Only solid objects
 move relative to position (4,0)
else

 if relative position (4,-8) is collision free for Only solid objects

 move relative to position (4,-8)

 move in direction 270 at most 8 till a contact with solid objects

と、ある場合GMLで記述するにはどうすれば良いのでしょうか。教えてください。

678:名前は開発中のものです。
07/12/11 11:20:53 LOC5oPUm
>>677
たぶん、こう。
if (place_free(x+4, y)) {
 x += 4;
} else if (place_free(x+4, y-8)) {
 x += 4;
 y += -8; // y -= 8; でもいい
 move_contact_solid(270, 8);
}

679:672
07/12/11 18:12:40 1veI1+hN
>>675
ぉ!できましたか。成功してよかったです。
ところで>>667のobject_set_depth(ind,depth)ですが、その使い方だとNGかと思われます。
平たくいえばオブジェクト=設計図、インスタンス=オブジェクトのコピーであり、F5,F6でデバックした時や実行ファイルで実際に表示されているものはインスタンスです。
object_set_なんちゃら()の関数はオブジェクトリソースを直接変更しにいく関数なので、ヘルプの冒頭に説明されているとおり、すでにオブジェクトのインスタンスが
生成されている場合インスタンスにオブジェクトのプロパティが格納されていて予期せぬ効果を引き起こす可能性があります。
深度を変えたい場合はインスタンスidを直接さして個々に変更するのが常套手段かと思います。>>672のobj_dispを使って説明すると
var DispObjID;//インスタンスidを保存する変数
DispObjID = instance_create(self.x, self.y, obj_Disp);//インスタンス生成instance_create()は返り値にインスタンスidを出力する
DispObjID.depth += 2;//例として設定されている深度より2奥に設定変更
こういった感じでしょうか。ヘルプによく書かれている引数のindはよく読まないと、インスタンスなのか、オブジェクトなのか、スプライトなのか混同してしまうことが
あるのでそこらへんを意識してないと「インスタンスが表示されない」+構文も間違えてないので「エラー表示がない」とかいうことになります。
自分も実際しょっちゅうやらかしてます・・・orz

680:名前は開発中のものです。
07/12/11 18:31:50 QXoJ6Zco
>>678
ありがとうございます。

このようなアクションをGMLに対応する一覧みたいなものは無いのでしょうか。

681:名前は開発中のものです。
07/12/12 19:32:20 I7CK0gCA
>>680
>584にV6用のがリンクしてあるけど
他のバージョンのが欲しかったら本家フォーラムから
URLリンク(gmc.yoyogames.com)

682:名前は開発中のものです。
07/12/12 19:50:15 Bw7drWJW
>>681
ありがとうございます。
v7はあるようですが、v6はないようですね。

683:名前は開発中のものです。
07/12/12 19:51:08 Bw7drWJW
すいませんありました。
数字のないほうがv6でした。

684:名前は開発中のものです。
07/12/13 19:56:55 mOWLOq6S
ボタンを押すと動きのあるスプライトにチェンジするようにしたのですが
チェンジの時たまに1から順にスプライトが再生されません。
何が原因でしょうか。

685:名前は開発中のものです。
07/12/13 21:33:32 9VWX8wY5
スプライトの表示番号を 0 にしてないんじゃない?
change sprite アクションなら、subimage ていう箇所があるからそこで設定する。
GMLなら
sprite_index = 変更したいスプライト名;
image_index = 0;
てな感じで。

686:名前は開発中のものです。
07/12/13 22:50:14 mOWLOq6S
全て0にしているんですがたまに動きがおかしいと思ったら5あたりから再生されてるみたいなので・・・

687:名前は開発中のものです。
07/12/15 12:14:12 CVKb7N91
FAQにあるヘルスを二つ表示する方法がいまいち分からないのですが詳しく教えていただけないでしょうか。

688:名前は開発中のものです。
07/12/16 13:32:59 MjHgc/J/
「現在のビューに映っている敵をすべて破壊する」
というような技を作りたいのですがどのように設定すればいいのでしょうか?

689:名前は開発中のものです。
07/12/16 21:34:56 khbOK2Jz
>>688
テンプレのリンクからヘルプを拾ってきて with の項目を参照すると目的の動作ができると思う。

690:名前は開発中のものです。
07/12/17 00:13:47 SSdNo8vA
ボタンを押したとき400後ろ(x:-400)に何もない時そこにワープ、そこにsolidオブジェクトがあるときは何もおきないという風に
できるようにしたいのですがif a position is collision freeを使ってもうまくいきません
どう設定したらいいでしょう

691:名前は開発中のものです。
07/12/17 00:34:29 d4jiuAy+
>>690
relativeにチェック入ってる?

if a position is collision free (x:-400 relative:check)
Jump to a given position (x:-400 relative:check)

692:名前は開発中のものです。
07/12/17 00:58:48 1bZl34aq
OCNから書き込めないので、携帯から失礼します。
GM7でアクションゲームを作っているのですが、
攻撃に設定したキーを一回押すと、離しても延々と攻撃が出続けてしまいます。
GMのフォーラムやここの質問で key_pressedイベントを使うと良いと書いてあったのですが
それを使っても攻撃が止まず上手くいきません。
単発で出したいのですがどうしたらいいのでしょうか。

どなたか解る方がいらっしゃいましたらご教授下さい。
文章だけではわかりにくいかもしれないのでソースをあげておきます。

URLリンク(www.uploadjar.com)

693:名前は開発中のものです。
07/12/17 01:11:36 d4jiuAy+
>>692
・その状態だと、Left(Right)を押したら rol に変数が入る。
・zを押したら、向きがLeftの場合、攻撃スプライト(左)を表示する。

で終わってる状態です。
Key Release <Left> に Set variable rol to 0
Key Release <Right> に Set variable rol to 0
をそれぞれ追加してください。

694:名前は開発中のものです。
07/12/17 01:14:21 d4jiuAy+
>>693
違いました。
忘れてください

695:名前は開発中のものです。
07/12/17 01:46:13 d4jiuAy+
>>692
・・・恥ずかしい間違いしたので問題の箇所の例として加修正してます。

URLリンク(www.uploadjar.com)

696:名前は開発中のものです。
07/12/17 04:52:03 1bZl34aq
>695
とても早いレス、ありがとうございます!
自在に攻撃が出来るようになり、左右移動まで作って頂いてとても嬉しいです。
本当にありがとうございました!

697:名前は開発中のものです。
07/12/18 14:25:36 KuzWpsao
下および横からはすり抜け可能で、
上からは着地可能、
かつ着地後下キーを押すと下へすり抜けられるブロックを、
Solidを外さず、かつブロック側の処理で実現したいのですが、
どうすれば良いでしょうか?

Solidを外すと、その他の判定処理で不具合が生じるので、
なるべくSolidのままで作りたいのです。
また、同時に4人のキャラクターを操作するため、
下キーを押している間と上昇中は非Solidにするという方法は使えません。

698:名前は開発中のものです。
07/12/18 16:44:34 N2pESpOe
URLリンク(gamdev.org)

GM6でマリオの様なアクションゲームを作っており、乗ると落下するブロックを作ってみました。
が、普通のブロックから落下するブロックに空中移動無しで触れても落下せず、ブロックの上でジャンプしなくては落下しないのです。
原因もあまり解らずどうすれば良いのか解りません。ご教授お願いします。

699:名前は開発中のものです。
07/12/18 19:47:28 u37r1wue
>>698
歩いて落ちる床の上に来た場合は接触状態になっているんだが、これはコリジョンとは違うんだ。
だから、コリジョンイベントとは別に、プレイヤーと落ちる床との接触状態を調べて、条件を満たしたら床を落とす、様なことをしなきゃならん。
で、調べる方法だけど、アクションアイコンだとこれは無理。だと思う。
プレイヤのステップイベントに execute code を追加して、以下のように記述。
※空白は全角なので、コピペするなら半角に直すこと。

var id_floor; /*id_floor を、execute code 内だけ有効な変数とする */

id_floor = instance_place(x,y+1, object228);
/* instance_place()でプレイヤの直下に、object228 (落ちる床)が存在するかどうかしらべている */
/* もしプレイヤの下にobject228が存在したら、 id_floor にそのインスタンスID が代入される。 そうでなければ、 noone という値が入る */

if (id_floor != noone) {
 if (id_floor.isDrop == false) { /* このif文を付けないと、接触中常にalam[0]が10になってしまうので、必ずこの条件を入れること。 */
  id_floor.alarm[0] = 10; /* floor_id に対して、10ステップ後にアラーム0(落ちる動作)が発動するようにする */
  id_floor.isDrop = true;
 }
}
変数isDropで落ちるフラグを判定している。
これがないと、alarm[0]が接触中は常に10になってしまうんで、乗っている間落ちないことになってしまう。
変数isDropを使うことになったんで、初期化が必要。落ちる床の create イベントにvarアクションを追加、variable: isDrop、value: falseとする。
さらに、落ちる床のobj_redとのコリジョンイベント中に、varアクションを追加し、variable: isDrop、 value: true とする。
あと、コリジョンイベント中にある set vert.speed アクションは削除、でいいとおもう。

700:名前は開発中のものです。
07/12/18 21:18:56 u37r1wue
>>697
考えてみたんだが、結構無茶な要求・・・。
なぜなら、solidの仕様は、コリジョンイベントの前後で、2つのインスタンス間で絶対に「めり込み状態」を認めないような仕様になっているから。
solid なインスタンスとのコリジョンイベントは、以下のような流れになる。()内は solid の時だけ処理される。

[コリジョンイベント]
    ↓
(お互いのインスタンスが直前ステップの位置に戻される)
    ↓
[コリジョンイベントのアクション]
    ↓
(speed,gravity等でインスタンスの位置を調整後、お互いがコリジョンを起こしていたら、やはり直前ステップの位置に戻される)
    ↓
[end step イベント]

なもんで、その床とキャラとのコリジョンイベントでアクションを起こさないほうがよい。
てことになると、solidの意義が薄れることになるが・・・。
どうしてもコリジョンイベントも定義したいなら、コリジョンイベント中で xprevious yprevious を自前で変更してしまうか、
end step で通過可能にする処理を書くとかするしかない。いずれも、かなり面倒になりそう・・・。
それよりも、着地の処理をコリジョンイベントに頼らない方法で着地させ、
その床との接触中に下を押すと gravity を発生させ、
通過中はgravityを0にしないような処理を
キャラ側のステップイベントとかで記述するようにするようにしてみてはどうかな・・・?わかりにくかったらごめん。

701:名前は開発中のものです。
07/12/18 22:58:45 RkfysYSU
solidは融通が利かないから
すり抜け床には使えないな。

702:697
07/12/19 00:13:09 SlaPK2id
うーん、どうやら無理のようですかね。
なんとか工夫してみようと思います。

703:名前は開発中のものです。
07/12/19 16:31:31 8LUQdUPx
>>702
サンプルデキタ。 solid だとやはり面倒だったんで、solid じゃないやつだけど、参考になれば。
URLリンク(www.uploadjar.com)


704:697
07/12/19 18:35:50 SlaPK2id
ありがとうございます。
うーむ。やはりキャラ側で処理した方が良いのか・・・。
頑張ってみます。

705:名前は開発中のものです。
07/12/19 21:55:33 +fFhIeoE
>>704
キャラ側で指定する時に都合が悪くなければ、
壁用判定オブジェクトを作り、
全キャラにそれを親指定するというのはどうだろう?

706:名前は開発中のものです。
07/12/20 04:58:53 Tb+MgVar
>>699
ありがとうございます。
アクションアイコンのみでしか作った事無かったので難しいですね・・・。
頑張ってみようと思います。

707:名前は開発中のものです。
07/12/23 00:32:42 U9AhK/mz
HPの他にMPのようなものをつくりたいんですがどうやったら二つゲージを表示できますか?

708:名前は開発中のものです。
07/12/23 00:42:15 QJlA1OEF
自前でスクリプトを書けばできるよ。

709:名前は開発中のものです。
07/12/23 05:15:16 ZiPFLJZ/
>>707
つ「global」

710:名前は開発中のものです。
07/12/23 12:40:14 U9AhK/mz
スクリプト作るのはよくわかりません…

711:名前は開発中のものです。
07/12/27 15:49:32 8DGio7LY
「動きのあるスプライトA」を「動きのあるスプライトB」に、もしくは「動きのあるオブジェクトA」を「動きのあるオブジェクトB」に変えると
1フレーム目から正確に表示されず困っているのですが仕様ですか?

主人公が待機状態で攻撃キーを押すと「10フレーム目に攻撃判定を発生させる」主人公オブジェクト①に変化して
アニメーション終了時に元の主人公待機状態に戻るように設定したのですが①が5フレームあたりから始まって攻撃が異常に早く発生してすぐアニメーションが終わってしまったり
11フレームで攻撃判定がなくなってからアニメーションが開始されたりして毎回正確なフレームからスタートされません。

712:名前は開発中のものです。
07/12/27 18:16:42 1ajxqRXW
もう少し伝わりやすく書いてくれると回答者は助かります。

待機状態というのは、何もボタンを押していない状態でしょうか。
その前に何か条件が発生しているのでしょうか。

そしてバージョンは何を使っているのでしょうか。

そしてヘルプは読んでいるのでしょうか。
>>1のリンク先は見ていますか。

容易に仕様と言わないでください。

713:名前は開発中のものです。
07/12/27 18:22:56 1ajxqRXW
バージョン7及びGMLを使用している場合は、

sprite_index = spr_A
image_index = 0
image_speed = 10

2番目の image_index を変化させてください。
これは subimage の始まりを変えます。

最後の image_speed を変化させてください。
これはスピードが変わります。


再度伝えます。
リンク先のヘルプや exsample を参考してください。

714:名前は開発中のものです。
07/12/27 18:28:43 1ajxqRXW
アニメーションの再生がおかしいと感じる時は、
step の実行順番を再認識してください。
step には順番があります。

それは Begin Step から始まり、最後は Drawing です。

また、イベントの Animation End Event をうまく活用してください。

よりよい Game Maker Life を。

715:HAL
07/12/28 14:58:17 iAadBrLO
自分のキャラにHPを設定ってどうやるんですか
あとオブジェクトを使ってHPを減らすようにするにはどうしたらいいんですか

716:名前は開発中のものです。
07/12/29 00:25:14 yxji7H+p
ヘルスのほかにもう一つゲージを作りたいのですがスクリプトを使わずアクションだけでも可能でしょうか。

717:名前は開発中のものです。
07/12/29 11:53:52 YtFwzcBI
ゲージくらい変を数使えばできるだろう?

718:名前は開発中のものです。
07/12/29 11:54:46 YtFwzcBI
変数をですw
変を数ってなんだ…orz

719:名前は開発中のものです。
07/12/29 17:02:58 4nUjeBtr
描写のやり方がよくわからないんです
変数で二つ目のヘルスを作っても描写で画面に表示する方法がわかりません
バージョンは5.3です

720:名前は開発中のものです。
07/12/30 03:17:36 NSmEj/DS
いわゆるHPとかゲージを2本表示する簡単なサンプル作ってみた
URLリンク(www.uploadjar.com)
ZでPLAYER1(赤)弾発射
XでPLAYER2(青)弾発射

721:名前は開発中のものです。
07/12/30 11:55:41 Zqqq8hXp
参考にさせてもらい無事完成させることができました。
ありがとうございます

722:ぺしゃみゅんち
07/12/31 22:39:11 G7IwY3y8
はじめまして
私ロックマンエグゼのようなゲームを作ってみたのですが
変な異常を起こします
原因が一人ではわからないので皆さんに見ていただきたいのですが
これがそのファイルですURLリンク(www.uploadjar.com)
バージョンは5.Aです
詳しいことはファイル内の問題点のテキストに書いてあります
よろしくお願いします。

723:名前は開発中のものです。
08/01/01 04:09:53 HO6m3WgJ
>>722
意味が わからない

あとエンターでプレイヤー表示だけどpressにするのをお勧めするよ一瞬押しただけでも2、3召還されるわけで

724:名前は開発中のものです。
08/01/01 13:01:48 5Zz7hnr7
変な異常って頭痛が痛くね?

725:名前は開発中のものです。
08/01/01 15:05:07 krtrP6kC
>>724
変と異常ってのは違う意味を指すからおかしくないんじゃね?

726:名前は開発中のものです。
08/01/01 18:25:13 HO6m3WgJ
>>725
異常な上に変なんじゃね

727:名前は開発中のものです。
08/01/01 20:03:22 krtrP6kC
>>726
724に言えよ

728:ぺしゃみゅんち
08/01/01 21:13:12 41An0v9b
>>726さん おっしゃるとおりです
>>723さん 修正しましたがパソコンの調子が悪く
      アップロードに時間がかかるのでほかの修正箇所が
     出てきたところでアップロードさせなおしていただきます

異常とは本来右左でキャラクターを選択するのですが
怪鳥から左を押すと獅子になるはずが怪鳥のままになっているのです
また次が獅子になるはずのところでは怪鳥に飛んでしまうのです
どうしてこんなことがおきてしまうのでしょうか?
去年の9月から考えています
しかし分かりません
助けてください

729:名前は開発中のものです。
08/01/02 03:01:30 0XzNgAng
>>728
所々に音を鳴らす命令を入れて実験してみたところ、どうやら
オブジェクトEvsEのpress<left>を実行した後、すぐさまWvsEのpress<left>も実行しちゃってるみたい。
SvsEやNvsEのpress<right>での実行も同様。
原因は多分、1フレーム間でのインスタンス同士の実行順にあると思う。
これはもうおそらく仕様なので、次のような工夫が必要になってくる。

press<left>イベントを実行してオブジェクトを変化させたら、
変化後のオブジェクトのpress<left>イベントを、次のフレームに移りかわるまでの間は実行させないようにする。

……というわけで、フラグ変数をうまく使ってみると良いと思う。

730:ぺしゃみゅんち
08/01/02 13:25:34 19fPmr/N
ありがとうございました
変数などは分からないので
押し上げイベントに変更してみました
そのほかいろいろ改良しましたらもう一度アップロードします

731:名前は開発中のものです。
08/01/04 02:27:54 KY38Ruby
5.3Aもう3年くらい使ってるけどオブジェクトの名前とか日本語でもいけるんだな
あと描画イベントの使い途がいまさら解った
嘘みたいだろう?俺、いままで文字とかいちいちスプライト作って表示してたんだぜ?

732:名前は開発中のものです。
08/01/04 17:38:30 JG5m5wPm
日本語出力できていいなぁ・・・今から5.3Aに乗り換えようかな・・・

733:名前は開発中のものです。
08/01/04 23:16:21 cqFFi5wR
5.3AはVistaに未対応らしいけど、単独実行が出来ないということ?
GM自体は動くみたいだけど…

734:名前は開発中のものです。
08/01/05 02:05:40 NZZVqR2v
ビスタでフツーに作ってるけど?
実行形式はまだ試してないけど

735:名前は開発中のものです。
08/01/06 18:55:38 OjABw8Q7
スコア表記を
「スコア:○○」のように前に出すのではなく「○○点」のように表記したいのですが可能ですか?

736:名前は開発中のものです。
08/01/06 20:34:01 nLpXdUSy
>735
'' + string(スコア) + '点'
でできた

737:名前は開発中のものです。
08/01/06 21:29:22 OjABw8Q7
素早い返答ありがとうございます。

738:名前は開発中のものです。
08/01/08 12:36:23 G/0Io5dz
なんかボールが坂をころがっていくような物理シュミはこれでつくれますか?

739:名前は開発中のものです。
08/01/08 20:46:53 HXQlUjj3
シミュレーションな

740:名前は開発中のものです。
08/01/09 10:04:09 jHNZrdiZ
GMJにここの書き込み反映されてるんだなスゲー

741:ぺしゃみゅんち
08/01/15 21:32:09 hN1kqTH6
押し上げにしても同じことがおきました
しかし変数などが分からないのですが
誰か5.aで開ける>>729さんのいっていたようなフラグ変数
をつかったサンプルもしくは私のアップしたものに手を加えたものを
アップしてくれるとうれしいです。
ここで説明していただいてもかまいませんが
サンプルなどをアップしてくれたほうがうれしいです。
よろしくお願いします

742:名前は開発中のものです。
08/01/15 23:50:06 DrVh3adF
>741
簡単なやり方としては
・今キーイベントに置いている内容をアラーム0イベントに移動
(「イベントの変更」を使うと楽)
・かわりにキーイベントに「Set an alarm0」を置いて値を1にする

これでインスタンスの変化が1ステップおいて起こるようになる

743:名前は開発中のものです。
08/01/18 02:01:25 CrDQFjAi
追尾ミサイルを作っているのですが
直角や180度いっきに回転してしまうんですが
クルーってかんじに遠回りして追尾させたいんですが
どうすればできますでしょうか

744:名前は開発中のものです。
08/01/19 00:58:07 dhI4eC+v
登録するのが嫌で5.3Aを落としてきたけど、XPで不便な事って有るのか?

745:名前は開発中のものです。
08/01/19 02:10:04 pvbjWxud
>>744
あるとすれば

・6以降の新しい機能が使えない
・レジスト機能使う時に、登録しにいかなくちゃダメ

ってくらいだな。

746:名前は開発中のものです。
08/01/19 06:44:46 lpPp39mj
URLリンク(gamdev.org)
日本語化辞書
途中だけど、続き誰か頼む
使い方教えてとかいう、ググれない厨は落とさないように

747:名前は開発中のものです。
08/01/19 15:34:14 Rw9P3/DK
なるほど、日本語訳付きで練習する分には問題ないと思っても良いって事か

748:名前は開発中のものです。
08/01/22 21:09:08 45T81GjC
>>743
今どうやってるん?

749:名前は開発中のものです。
08/01/22 21:17:39 ocbbdzjm
7が出てからもうすぐ一年かぁ
本家では新しいの出るんかな

750:名前は開発中のものです。
08/01/22 21:22:18 NoSS/6O8
>>748
いきずまってます\(^o^)/
動いてる方向を取って1/3ステップ進ませて今進んでる方向がうんたらかんたら

751:名前は開発中のものです。
08/01/23 02:48:32 Q1tjyTbC
>>746
ものすごくGJ

752:名前は開発中のものです。
08/01/23 04:18:28 b5xhxs/k
>>750
すまんが現状どうやってるのかよくわからん
角度を常に変数でもたせておくなりして三角関数使わないと難しいんじゃないだろうか
俺ならミサイルの単位時間に動かせる角度と距離固定して目標追わせるかな。

753:名前は開発中のものです。
08/01/24 03:09:34 n00gmxln
前回692です。
また製作の壁にぶつかってしまい困っています。

GM7でアクションゲームをつくっています。
現在、ロックマンのように、自キャラが移動をしながら攻撃ができるようになっています。
これを魔界村のように、移動中に攻撃ボタンを押したら、立ち止まって攻撃するようにしたいのですが、どうすれば良いでしょうか?

ソースをあげておきますので、
どなたか解る方がいらっしゃいましたらご教授下さい。

URLリンク(www11.axfc.net)
Keyword(DLパス)は0011です。


754:748
08/01/24 12:00:40 gZRHXEEh
>>750
自分>>34なんだけどうpしてるやつの最初の方にホーミングミサイル撃つ敵
つくってあるんだけどこんな感じの作りたいの?

755:名前は開発中のものです。
08/01/24 12:22:14 gZRHXEEh
>>753
obj_usagiオブジェのキーボードイベント<left><right>のアクション全体をcan_attack変数が1の時だけ実行するように
If a variable has a valueを置いてみたらいいんじゃない?

756:753
08/01/27 02:40:32 v3yvH1+7
>>755
すばやい回答ありがとうございます。
無事自キャラが止まって攻撃が出来るようになりました!

半月間も悩んでたので本当に助かりました。
ありがとうございました。

757:729
08/01/27 04:15:44 PCXtfTLD
>>742
あ……なるほど。
pressKeyで即オブジェ変更するんじゃなくてAlarmイベントで実行させれば
複雑にフラグ変数を使わずに済みますね。勉強になります。

758:名前は開発中のものです。
08/01/29 11:37:55 n2eeRZD+
Scriptのエクスポートみたいに、
オブジェクトのソースを出力ってできますか?
オブジェクトがたくさんあると手作業ではちょっと厳しい...

759:名前は開発中のものです。
08/01/29 21:35:15 fH/FU5dj
Editメニューの最後にある「Show Object Information」
名前からは想像がつかないが、全オブジェクトの情報を
一気に出力してくれるというすぐれモノだ。
オブジェクトたくさん作りすぎてるとエラーで死ぬけどな!

760:名前は開発中のものです。
08/01/29 23:51:12 n2eeRZD+
>>759
止まった\(^0^)/
450個もオブジェクトがありゃそりゃ固まるか。

761:名前は開発中のものです。
08/01/31 18:22:51 fnpWL05f
>761
ばーか

762:名前は開発中のものです。
08/01/31 22:04:15 TXruG4et
>>762
( ^ω^)…

763:名前は開発中のものです。
08/02/01 00:34:05 a4c4UVam
 761 名前は開発中のものです。 [sage] 2008/01/31(木) 18:22:51 ID:fnpWL05f - NEW! -
>761
ばーか


 762 名前は開発中のものです。 [sage] 2008/01/31(木) 22:04:15 ID:TXruG4et - NEW! -
>>762
( ^ω^)…

764:名前は開発中のものです。
08/02/08 17:38:06 zFVnBZNt
うーん・・以前にも聞いたので
また聞くのはちょっと気が引けるんですが、
Solidのチェックを外さずに下からすり抜けられる床ってのは
やっぱり無理なんでしょうか。
諸事情で「キャラがブロックより上にいる時だけSolidにする」という方法が使えません。

765:名前は開発中のものです。
08/02/08 18:50:11 2GE6uT/l
マニュアル読んできた。
solid  Whether the instance is solid. This can be changed during the game.
(solid  インスタンスがsolidかどうか。ゲーム中に変更可能)

solidかどうかの判定は変更できるようなので、キャラのy値を取得して、
「キャラのy値がブロックのy値よりも低いとき、solidをfalseにする」
「else {solidをtrueにする}」
って組んだらどうかな?

766:名前は開発中のものです。
08/02/08 19:08:26 zFVnBZNt
>>765
前提として4キャラ同時に操作するということを書いてませんでした、すいません。
1キャラ操作のアクションゲームならそうするんですが、
多キャラを操作するときなどに、他のキャラがブロックの上にいるときとかに
Solidを解除すると乗っているキャラが落ちてしまうので悩んでいます。

767:名前は開発中のものです。
08/02/08 19:10:03 mtgOpTzW
>>766
ifを何個か重ねたらだめなのか?キャラごとに

768:名前は開発中のものです。
08/02/08 19:29:09 zFVnBZNt
そうすると1Pが乗ってて4Pが下にいるときとかに、
4Pが床(足場)にしたからすり抜けようとしたときにぶつからない?
1Pが上にいるからSolidはONになってるはずだし

769:名前は開発中のものです。
08/02/08 20:41:16 2GE6uT/l
ifを重ねて場合分けしようにも、キャラ別に判定用オブジェクトを作るにしても、
Solid同士の衝突は貫通しない以上、1つでもSolidがあったら下のやつは上にあがれなくなると思うぞ。そのためのSolidなんだし。
オブジェクト別にアクションを変えたいのなら、Solidは解除しておいて、状況に応じて通行可/不可が切り替わるように考える必要があると思う。

~チラシの裏~
発想を逆転してみた。
ブロックはSolidで固定。キャラのSolid判定を変えてみるという考え。
キャラがブロックの上にいるときはSolid、下ならNon-Solid。
これなら下から上ならすり抜け、上から下なら止まるというのを実現できるのじゃないかと。

……でもこれをやると、ブロックは縦方向に見て1つまでしか置けない。
ついでに多分、キャラも床もSolidにして床の上を自由に歩けるようにしてあるんだと思うから、
これをやると床をすり抜けどこまでも落ちていく。

うん。駄目だ。
~チラシの裏~

770:名前は開発中のものです。
08/02/08 20:48:06 zFVnBZNt
あ。
自己解決した・・!
結局「キャラがブロックより上にいる時だけSolidにする」という方法が使えるということに気がついたというオチ・・。
Solidに設定しててもCollisionイベント設定しなかったら素通りするから、
4人いたらそれぞれのプレイヤー用の床を作って4つ重ねればいいのか。。
2ヶ月くらい悩んだけどなんか思いついてみれば簡単だった・・・。

URLリンク(www.uploda.org)
考えて頂いてありがとうございました。

771:名前は開発中のものです。
08/02/08 20:51:40 2GE6uT/l
ってなんだ、Solidでも素通りするのか。

772:名前は開発中のものです。
08/02/10 01:31:29 JMvutfpq
>>766 4キャラ同時に操作ってニコニコアクションの人か?
違っても製作頑張れ。完成するといいな。

773:名前は開発中のものです。
08/02/12 00:35:49 iUX9zyeT
>>770
このレスはアクションの人だったんだな(´・ω・`)

774:名前は開発中のものです。
08/02/12 22:51:39 iUX9zyeT
いろんなroomを表示させることはできますでしょうか?

775:名前は開発中のものです。
08/02/12 22:58:47 54CFVRXr
>>774
残念だがそれは仕様上ムリだと思ふ

776:名前は開発中のものです。
08/02/12 23:04:06 iUX9zyeT
>>775
ありがとうだぜ
ちょっとURLリンク(gamemaker.main.jp)を応用してくるぜ

777:名前は開発中のものです。
08/02/14 22:58:45 3EjNgEsT
>>774
一つのルームに4種類部屋作って>>776の方法で分割表示すれば良いんじゃね?

778:名前は開発中のものです。
08/02/14 23:29:42 bjVjEw1+
>>777
ヴァージョンが5だったことを忘れてたんだぜww

779:名前は開発中のものです。
08/02/15 03:04:43 5T9VWkup
sprite_replaceで外部からファイルを読み込みまくってたら、
ロード時間が半端なく長くなった上にメモリ浪費が激しすぎる・・。
時間とメモリを節約する方法ってないですかね・・・

780:名前は開発中のものです。
08/02/15 03:21:07 BAZ3rUXc
一度に全部読み込んでる?
もしそうなら、room内で使う分だけ読み込むようにしてみるとか。。。
たしか、使用していない画像や音声のリソースをメモリから消去するような関数が用意されていたと思うんで、
roomを変更する時などに、必要がなくなったリソースをメモリから削除するようにしてみるとか。。。



781:名前は開発中のものです。
08/02/15 13:06:06 5T9VWkup
メモリ消費は>>780を参考にいろいろやってみて軽減は出来ました。
しかしロード時間が死ねる・・。sprite_replaceを使う以上仕方ないのかなぁ。

ゲーム内に組み込もうにもキャラ数が40人くらいいるから、
exeにまとめると実行ファイルサイズとスプライト数がすごいことになる。

782:名前は開発中のものです。
08/02/15 16:41:13 sRLBKt+9
>>781
読み込むものを減らしたらどうでしょか
2つか3つ本体作って
全部読み込みバージョン
ちょっと読み込みバージョン
最小限バージョン
とか(´・ω・`)

783:名前は開発中のものです。
08/02/15 17:20:59 hkVzw0EY
データを外部から取り込むようにして実行ファイルを小さくすると、
・起動が早いかわりに、リソースの読み込みでやや時間をとる。
・修正、アップデートが軽量化できる。(新しい実行ファイルと追加データを上書き)

逆に全部をexeにまとめると、
・起動が遅いがその後のロードは不要(または軽減?)。
・中に詰め込んだデータに容易にアクセスできない(ユーザーからのリソースの書き換え防止)
・しかし、アップデートは差分の書き換えではなく「新しいバージョンを丸ごと入手」

……といった解釈で合っていますか?
間違っていたり、もっと詳しい説明があったら是非お願いします。
(もしこうだったら、修正/拡張パッチとかが作れるように、外部からの取り込みの方がいいのかなぁ)

784:名前は開発中のものです。
08/02/15 21:54:23 6M2Mj1CC
ホモの友達がいるんだが
そいつベッドの下にビンに入った液体チョコレートと筆を置いてて
これなんだ?って聞いたら
「これで彼といっしょにお互いの体に塗ってなめっこするの♪」
って言われた。


785:名前は開発中のものです。
08/02/17 04:31:08 /MDHcIsH
初歩的な質問ですが
顔や手がブロックに引っかかって落ちなかったり、
端っこの壁に行くとめり込んででられなくなったりします・・・
コリジョンの判定をどうすればいいのでしょうか

URLリンク(gamdev.org)

786:名前は開発中のものです。
08/02/17 06:06:40 7sK4ZglN
>>785
マスクを使えばおk
URLリンク(www6.atpages.jp)

787:名前は開発中のものです。
08/02/17 11:03:46 wXzkSK3W
失礼します。
GML上において、score(GM側にデフォルトで設けられているスコア変数)に
値を代入させる方法がわからず、困っています。
ヘルプは一通り読んだつもりで、私は次のような記述を行いましたが…
score =(適当な値);
global.score =(適当な値);
エラーになってしまいます。

GMLを使ってscore変数の値を変えるにはどのようにすれば良いのでしょうか?

788:787
08/02/17 11:10:44 wXzkSK3W
あぁ、言い忘れていました…
バージョンは6.1です。

789:名前は開発中のものです。
08/02/17 12:32:39 yekEWnFq
>>787
やったことないが
グローバルいらないんじゃね?

790:787
08/02/17 14:13:20 wXzkSK3W
"global."の有無に関わらず、"Variable name expected"というエラーメッセージが出てきます。
試しに今、新規作成でscore+=1と記述してみたところ、これは難なく動作しました。
ということは、このエラーの原因は別の箇所にあると考えられそうですので
一旦ソースを見直してこようと思います。
……何処がダメなのか想像がつかないけど……

791:名前は開発中のものです。
08/02/17 15:28:06 yekEWnFq
score = ?;
score=?;
両方試してみた?
後スペルチェックとか

792:名前は開発中のものです。
08/02/17 15:48:55 F5p9Y4ne
"Variable name expected" が出るのはたいてい
"score" をすでに変数名以外に使っちゃっているとき。
変数名が青じゃなくて紫になってたらそれだ。
オブジェクトとかスプライトに "score" って付けてない?

793:787
08/02/17 19:47:57 wXzkSK3W
>>792
確かに紫になっていました。でも"score"なんて名前を付けた覚えはない……
と思ってたらありましたよ、"score"という名のルームが!
気をつけて名前を付けてきたはずだから、こんな間違いはしていないと思い込んでいました…

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

お二人方、どうもありがとうございました。

794:名前は開発中のものです。
08/02/17 21:31:14 H3L0qkMh
>>786
ありがとうございます
そして重ねて質問なんですが、
マスクの使い方も教えてもらえないでしょうか?

795:名前は開発中のものです。
08/02/18 06:03:43 P6ufyrMd
>>794
マスク=当たり判定かな、違ってたらすまん
でも俺説明下手だから
URLリンク(gamemaker.main.jp)
を参考にするといいんだぜ!

796:779
08/02/18 14:05:15 wD+9YlvR
ロード時間の件ですが、
スプライトのロードよりも、
キャラ変数の用意に膨大な時間がかかっていることが判明。

execute_fileで大きなファイルをロードすると時間かかるんですね・・

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

変数の代入程度なら、自前でデータファイルを作って処理をしたほうが良いだろうね。
バイナリ形式のほうがよいかもしれない。

798:名前は開発中のものです。
08/02/18 21:26:12 ZmedX/dg
>>795
解決できました!
ありがとうございます!

799:名前は開発中のものです。
08/02/18 22:39:56 tcJyICZc
>>796
変数を使いまくるとロード長くなる?
どのくらい変数使ってるの?

800:779
08/02/19 22:43:31 x/RhMfeZ
あー、いや、変数の用意自体は一瞬なんだけど、
execute_fileでやってるから変数が多くなるとテキストも長くなって
時間がかかってしまうわけで。ゲーム内部に入れてしまえば0.1秒もかからないし、
配布時には内部に入れてしまおうかなぁと思ってる。

今数えたら5000個くらいだった。それ×4。
なんかこの設計自体に問題がある気がしてならない。


801:名前は開発中のものです。
08/02/21 10:47:14 QLrlpKAR
すいません、擬似的に空間の歪みを表現しようと思い、
sprite_create_from_screenとsprite_assignで
ゆがませる空間のスプライトを作成し、
sprite_set_alpha_from_spriteをかまして
そのスプライトを用いたオブジェクトを拡大/縮小しながら表示させ、
オブジェクト消失時にsprite_deleteってやってるんですが、

この処理するたびに物理メモリが一定量ずつ減っていってしまいます。
sprite_deleteしてるからメモリは開放されるはずなのに…
何故でしょうか。

802:名前は開発中のものです。
08/02/21 12:22:17 TNE50/I9
>>801
書かれていることだけをこちらでver 6.1にて実験してみたけど、
処理するごとにメモリ消費されてしまう現象は確認できなかった....
ちなみに、こんなソースです。レジストバージョンしか動きません。F1キーで略説でます。
URLリンク(gamdev.org)

sprite_create_from_screen() で作成したスプライトも全て sprite_delete() されてるか再度確認されてみては。

803:801
08/02/21 13:03:03 QLrlpKAR
素早い返答有難うございます。
帰宅してから試してみることにします。

804:801
08/02/21 18:05:02 hrX+JUXR
>802
只今帰宅し、サンプル確認してみました。

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

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

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

有難うございました!!

805:802
08/02/22 00:23:23 9TIiCCE7
おお、お役に立ててよかった。
おそらく原因は、sprite_delete() を入れていなかった、もしくはタイミングが悪かった点でしょうね。
問題が解決できそうで何よりです。開発がんばってください。

806:名前は開発中のものです。
08/02/22 00:58:19 GgtMRHOI
公式は、7正式出てから動きまったくなし?

807:名前は開発中のものです。
08/02/22 22:28:56 EnGdlCfo
>>806
だね
もうあれでほとんど安定してるし
得にバグとか更新とかもないし
更新されるのは8が出てからかもね
8が出るのも相当後だと思うけど

ところでGameMakerって外部ファイルtxtとかって読み込めたっけ

808:名前は開発中のものです。
08/02/22 23:22:21 GgtMRHOI
>>807
今出先だからわかんないけど、上の方で外部ファイルから変数を読み込んでって話題があったときにためしたら出来た記憶がある。

809:名前は開発中のものです。
08/02/23 21:16:37 3ZZOv+FT
Draw the value of scoreの使い方がよく分からない・・・
誰か詳しく説明してください。お願いします。

810:名前は開発中のものです。
08/02/24 00:38:27 410jBEd1
>>809
使い方と言っても、xとyにスコア表示したい座標入れるだけなんだけど…
とりあえず(0, 0)のままでも画面左上に何かしら出るでしょ。

アクションをDrawイベントに置くこと、Visibleにチェック付けておくこと、
オブジェクトをルームの中に置いとくこと、以上3点忘れずに。

811:809
08/02/24 10:24:15 +SnWXLhW
>>810
Visibleにチェックをつけるという意味がよくわからなかったが、
ちゃんと動きました。ありがとうございます。

812:名前は開発中のものです。
08/02/24 11:48:45 2Py4k7Q8
Object Properties

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

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

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

うっかりしてると>>810が言った3つを忘れてしまいがち。
見直してて原因を見つけたとき「そりゃ表示されるわけねーわなw」となる。

813:名前は開発中のものです。
08/02/25 16:38:49 N0LtIPkd
オブジェクトのイベントにある
outside view が働いていない気がする

814:名前は開発中のものです。
08/02/25 17:48:56 NE2+oADS
>>813
バグだろうねぇ。公式のコミュニティにも話題が出てたよ。
URLリンク(gmc.yoyogames.com)

現状だと、outside view イベントのかわりに boundary view イベントを使って、
そこで以下のコードを書くと、期待通りに動くようだ。

/* view 0 に対して、処理する場合 */
if (x-sprite_xoffset+sprite_width < view_xview[0]
|| x-sprite_xoffset >= view_xview[0]+view_wview[0]
|| y-sprite_yoffset+sprite_height < view_yview[0]
|| y-sprite_yoffset >= view_yview[0]+view_hview[0]) { // スプライトが完全に view から外に出たかどうかを判定している
  // ここにコードを書く
}

コードが書けないなら、 if の()内の式全てを
Test Expression (?の描いてある八角形のアイコン) の expression に貼り付ければOK。

ステップイベント内で同様にやっても多分OKだが、
毎ステップ判定処理をしてしまうんで、処理コスト的に不利だろう。

815:名前は開発中のものです。
08/02/27 15:04:31 imokwZIU
中国奇形動物の画像【苦手な方は閲覧を御遠慮下さい】
URLリンク(d.hatena.ne.jp)
鼻二つに眼が三つの子牛. 頭一つに身体二つの子豚. 単眼の子豚. もはや原形を
とどめない子豚. 4本足のヒヨコ・・・ (ここではヒトの奇形は詳しく紹介しませんが、
中国語「畸形」(簡体字・繁体字ともに)でインターネット検索をしたら・・・)

奇形や病死した牛や豚も加工されてしまえば見分けが付きません。
URLリンク(detail.chiebukuro.yahoo.co.jp)

中国、奇形児発生の原因とみられる重金属汚染
URLリンク(iwasero.blog66.fc2.com)
・毒性の強い添加物や防腐剤を使用するケースが多い
・重さをごまかすのに牛や豚に水を注入したり、大量の食塩を食べさせる

【海外】中国:環境汚染
URLリンク(blog.livedoor.jp)

腐った上海の海、必見グーグルアース
URLリンク(temple.iza.ne.jp)
地球上いたるところに湖がありますが、中国の湖ばかりが蛍光色に
光り輝いています。異常です。

中国の蛍光色7色に輝く河川
URLリンク(hinden.at.webry.info)
病気になったら抗生物質に汚染された魚を食べて治すという。すごい「薬膳」ですね。


816:名前は開発中のものです。
08/02/28 18:44:34 o8q2cNq4
ちょっと興味あるけど自機の移動も作れないしGMLとかわけわかめでもうだめだ

817:名前は開発中のものです。
08/02/29 02:55:26 x+l1o480
強制はしないけど、興味があるんだったら、いきなり作りたいものを作ろうとせずに、まずはチュートリアルに沿って一度作ってみるといいよ。
逆に、作りたいものを作るためにはどんなことを覚えなきゃいけないか、って感じで入ると滅入ると思う。
チュートリアルの通りに作って、わからなくなったらExampleを見て、どうやってるのかを参考にしたり。
GMLを使わなくても、シンプルなゲームなら十分作れるから、GMLに触れるのはある程度慣れてからで十分。

最初のうちは、「何が起きたらどれをどうする」といったことを決めていく、と考えるといいかもね。
右を押したら右に行く、弾が自機に当たったら爆発する、とか。
「チュートリアルなんて面倒」とか思わずに。無駄にはならないよ。

818:名前は開発中のものです。
08/03/07 01:56:07 /zU2Jm/L
これ商用で配布とかは可能なの?
どこに書いてあるかわかんないんだけど

819:名前は開発中のものです。
08/03/07 02:03:53 li5Lf13v
確か可能なはず

820:名前は開発中のものです。
08/03/07 02:58:15 r5pkyD7y
URLリンク(www.yoyogames.com)

821:名前は開発中のものです。
08/03/07 21:49:20 /zU2Jm/L
>>819,820
サンクス


822:名前は開発中のものです。
08/03/10 16:38:14 qJ6+/ltX
>>819,820
セブンイレブン

823:名前は開発中のものです。
08/03/11 20:45:46 EJkJUT5l
親インスタンスの設定と当たり判定の設定がまとめを見てもわからない・・・
GM7だとやり方が変わってるのでしょうか?
もしそうなら誰か設定の仕方を教えてくれませんか?

824:名前は開発中のものです。
08/03/11 21:53:46 c68BSDCd
別に変わってないはずだけど
ParentとかBounding Boxが見つからないって話だったら
まず File >Advanced Mode にチェックつける

825:名前は開発中のものです。
08/03/11 22:02:17 EJkJUT5l
>>824

advanced modeにチェックを入れたら見れるようになりました
ありがとうございました

826:名前は開発中のものです。
08/03/16 11:21:30 7GR4thT4
インスタンスIDを使って、当たり判定の位置調節をしているのですが、
存在するIDを指定しているのに、時々そんな変数しらねぇよといわれてしまいます。
おそらく、instance_changeの時に何か起こっているのだと思うのですが・・
立ち状態のインスタンスのIDを保存して、攻撃やダメージの際に、
instance_changeを利用しています。

立ちインスタンス←ここのIDを保存している
└攻撃1インスタンス
└攻撃2インスタンス
└ダメージインスタンス

if(adjust){
if(player == 1 && global.cpu_1){
x = (global.com1).x + (global.com1).hspeed + posx;
y = (global.com1).y + (global.com1).vspeed + posy;
}else if(player == 2 && global.cpu_2){
x = (global.com2).x + (global.com2).hspeed + posx;
y = (global.com2).y + (global.com2).vspeed + posy;
}else if(player == 3 && global.cpu_3){
x = (global.com3).x + (global.com3).hspeed + posx;
y = (global.com3).y + (global.com3).vspeed + posy;
}else if(player == 4 && global.cpu_4){
x = (global.com4).x + (global.com4).hspeed + posx;
y = (global.com4).y + (global.com4).vspeed + posy;
}
}

827:名前は開発中のものです。
08/03/16 13:35:59 V0YG+k5o
インスタンスを変更すると、1ステップの間そのインスタンスは
「存在するけど存在しない」みたいな不安定な状態になるらしくて
「instance.variable」みたいにドット使って変数を参照するとエラーになる。
やっかいなのは、インスタンス自身は存在するので
instance_existsとかでチェックできないこと。

対策としては、with使ってその中で変数使えばエラーは出ない。
with (global.com1) {
other.x = x + hspeed + other.posx;
other.y = y + vspeed + other.posy;
}
みたいな感じで(withの中ではotherが元のselfになるのに注意)

インスタンスの変更は変数の継承がらみでもややこしい問題があるので、
できるだけ使わずにすませた方がいいよ。
この場合、オブジェクト一つだけでよくない? 当たり判定はmaskで変えられるよ。

828:名前は開発中のものです。
08/03/17 10:22:50 RBuRFwrN
>>827
なるほど・・わかりやすい説明ありがとうございます。
ダメージモーションの種類が4、攻撃の種類が40、その他死亡モーションや、
予備動作などがあって、一つのオブジェクトで作ると、
俺の頭がこんがらがってしまったので分けましたが、
実際のところは分けないほうが最終的にわかりやすいんだろうなぁ・・。
やっぱり自分の力量に応じて仕様というか、
ある程度妥協した方が結果的にいい場合もあるんでしょうね。


829:名前は開発中のものです。
08/03/17 13:07:23 0WhHqNl0
モーションってのがただ単にスプライトのことだったら、スプライトの入れ替えだけで済むし(sprite_indexの変更)、
全てのスプライトを1つにまとめて、subimageの値を決めることでも解決する。(image_indexの範囲指定)
スプライト以外だとしても、そのインスタンスの状態(ダメージ、攻撃中、移動中等)で場合分けをするといいだろうね。(step内でswitchを使って場合分け)

インスタンスを変えるということは、今あるインスタンスを削除して、新しくインスタンスを作るということ。
敵を攻撃したり、ダメージを受けたりする度に自分が生まれ変わるってのも変な話だよね?
インスタンスを変えていると、システム的なエラーだけじゃなく「エラーメッセージは出ないけど、自分の意図した通りにならない」というエラーも起こりやすい。
だから、場合分けをインスタンスの変更でするんじゃなくて、オブジェクトの中で場合分けをするように作っていく方がいいよ。

830:名前は開発中のものです。
08/03/17 20:51:48 zfMhFuyL
さっきレジストしたんですが、バックアップCDってのは別にいらないですよね?

831:名前は開発中のものです。
08/03/17 21:11:55 9xiWBLkG
特定のボタンを押したり画面内のボタンをクリックしたらいったんその画面の動きを止めて
画面上に別のメニュー画面などを表示させたいのですがどうすればいいでしょうか。

832:名前は開発中のものです。
08/03/17 22:38:19 lI4Ks6j6
>>831
お手軽なのはshow_menu。当然メニューとしてはしょぼいけど。

キー操作だけでよければ、keyboard_waitでループ回しつつ
キー処理をしてメニューをがしがし描き変えるという方法がある。
サンプルで付いてくるasteroidsが参考になるかな。
ただ、このやり方はメニューの構成が複雑になると厳しい。

一般的なのはポーズする時にグローバル変数を設定しておいて、
他のオブジェクトはその変数が立っている間動きを止めるというもの。
ただ、止めないといけないものは意外とたくさんあるので(gravityだとか
alarmだとかアニメーションだとか)、ゲームが複雑になるにつれて
ちゃんとメンテするのが難しくなってくる。正直労力に見合わない。

本格的にやるなら、background_create_from_screenで
今の画面を背景画像に設定してから
instance_deactivate_allでインスタンスを全部非アクティブにしてしまう。
それからメニュー用のオブジェクトを配置する。
これならマウス使ったりメニューオブジェクトを動かしたりするのも自由だし、
メニュー抜ける時の後始末さえしっかりやれば一番実装しやすいと思う。


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