【2D】ゲーム作成ツー ..
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
ありがd
とりあえず遅延を適当に入れて調整してみる
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 アクションは削除、でいいとおもう。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5333日前に更新/345 KB
担当:undef