【2D】ゲーム作成ツールGameMaker part5【マンセー】
《Game Makerの特徴》
@ コリジョン(当たり判定)/スプライト/マップ/サウンド再生など、2Dゲーム作成にかかせない機能が充実
@ なにかと便利なイメージエディタを内蔵
@ プログラミングの知識はあってもなくてもよい
@ *.exe(単体実行可能)形式でゲームを出力できる
@ 作ったゲームは自己責任の元で自由に配布できる(作ったゲームを売る場合のライセンス料さえ不要!)
@ キーボード、マウス、ジョイスティックからのキー・ボタン入力をサポート
@ イベントドリブン型なのでスマートにゲームを構築できる
@ 組み込みスクリプト言語「GML」により、さらに細かい処理が可能
@ エンジンはDirect X
※有料登録(25ドル・20ユーロ・20ポンド)するとゲーム起動時のロゴ表示が消えて画像の回転や3D、エフェクト機能などが追加されますが、
基本的に無料で充分使えます。
《Game Makerの欠点》
@ 英語ソフトなので、英語が読めないととっつきにくい
@ 特にver8.0では、コードエディタ内で日本語が文字化けするため更に使いにくい
@ ツクール類とは違い、ゲームの「動き」から設計しなければならない(それがまた長所でもある)
>>1乙
横から悪いがテンプレ加えといた。
テンプレ書いてるときに見つけたんだが、
8.0のコードエディタ内では日本語が文字化けするけど、アクション入力欄のアクションアイコンにマウスポインタを当てたときには
ちゃんと日本語で表示されるんだな。
新スレ乙
ごめんなさい。新しくスレが立っているとも知らずスレを重複させてしまいました。
この板は最近知ったばかりなんですが削除依頼はどこに出せば良いのでしょうか?
そっちの方でレスついてるけど、別に緊急性なかったら削除依頼なんてしないでいいよ
このスレが落ちるまで残ってたらPart6に再利用するだけのこと
ベルトコンベアとかエアーマンの風みたいに「接触しているときある方向のスピードを加算する」
っていうのを作りたいんだけど接触しなくなったら加算した分を引くのってどうすればいいの?
スレ立て乙です
>>8 スピードいじるんじゃなくて、接触している間だけ x+=2; みたいにするといいですよ
あるオブジェクトを1回クリックしたら別のスプライトを表示させ、
それをもう一回クリックしたら元のスプライトを表示させるにはどうすればいいのでしょうか
別のスプライトを表示させることはできますが元に戻すことができないです
>>10 スプライト変更前のsprite_indexを変数で取っておいて、
戻したくなったら取っておいた変数の内容をsprite_indexに代入すれば良いと思う(違っていたらごめんなさい)
例えば
//生成イベント
prevSPR=sprite_index;
//スプライトを元に戻す(スプライト変更前に入れて下さい)
prevSPR=sprite_index;
if(スプライト変える)
sprite_index=hogehoge;
//スプライトを元に戻す時のコード
if(スプライト戻す)
sprite_index=prevSPR;
13 :
名前は開発中のものです。:2010/12/11(土) 17:27:12 ID:0axGmQYz
良スレ保守
14 :
名前は開発中のものです。:2010/12/12(日) 13:17:29 ID:2xqxHWSX
前スレで、旧バージョンはレジストできないってレスがあったけど
PC買い換えたりした場合はどうするんでしょう?
GM7で作っていたものをGM8で編集したりとか出来るんでしょうか?
>>15 PC買い換えたときはよくわからんが、
GM7で作っていたものはGM8でも編集やEXEの書き出しが何も問題なくできるよ。
12/31まで25%Offだそうなので、『The Game Maker's Apprentice』のPDF版とか買ってみない?
付属CDのソースは、買ってからメールで問い合わせればリンク送ってきてくれるし。
プロモーショナルコードは
APRESSHOLIDAY2010
書くとこミスったみたいだね
日本語ヘルプってバージョン6みたいだけど
7でも問題ないのか
コード記述の際に文字化けするのが一番厄介だわ
日本語をサポートしてくれマジで
22 :
名前は開発中のものです。:2010/12/17(金) 19:08:03 ID:jpdmeH8B
英語が読めないのを愚痴ってるんじゃないよ
日本語が使えないことを愚痴ってるんだよ
コメントに日本語が使えたりdraw_textで日本語が使えたら素敵
25 :
22:2010/12/17(金) 22:47:39 ID:jpdmeH8B
>>23 途中で送信してしまった...orz
>>21 激しく同意。
俺に英語力があれば…
Markさんに要望メールやらフォーラムでUnicode対応してくれ。とか言語ファイルに対応してくれ。って発言できるのに・・・orz
GameMaker6が出たときにdraw_text()で日本語が使えなくなったんで、
メールでunicode対応をお願いしたことあるけど、
即効Unlikely suggestionsに放り込まれてたなぁ。
GameMaker8のベータテストが行われてたときに、
専用フォーラムでコードエディタで言語が表示されない問題について何度か騒がれてたけど、
多言語対応はあまり考えていない態度だったし・・・。
絶対に課金なんてしてやらないでござる
このツール使ってゲーム作ってるやついんの?
いつか作りたいとは思ってる
使いこなせないけど
じゃあ今からやろうぜ
皆は効果音って何使ってる?
無料で使えるものをネットから拾ってきたり
動画から音を抽出して切り貼り、動画は自分でいろんな音作れるからおススメ
35 :
33:2010/12/20(月) 19:26:28 ID:0xbccmIL
>>34 なるほど、動画から音声を抽出して切り張りですか。
けっこう便利そうですね。 ありがとうございます。
権利関係は気をつけてな
37 :
名前は開発中のものです。:2010/12/20(月) 21:07:08 ID:DRgOE8ef
2Dゲー特化で作るならHSP使うよりもこれ使ったほうがラク?
レジストしないと透過処理が1種類だけだったり画像の回転がツール側で出来なかったりとだから
使えるならHSPのがいいんじゃないのか?
簡単なアクションやシューティングなら楽に作れるけど
GM8なら透過PNG使えるぞ
2Dなら覚えやすさとかそういう点から言ってもHSPには負けないだろうね
細かい所で競うと適わない点もあるだろうけどさ
ネットワークとかは試した事がないからわからん
GMには3Dも期待したい
現状の単純さで3Dが使えるようになれば本当に最強だよ
ザ・マッチメイカァズ
なるほど
つまり画像の回転は使わないからおkかな
簡単にスプライト描画ができてBGが二枚あれば大丈夫
最大の欠点は日本語だよな
これさえどうにかなれば、ホント最高のツールだと思うんだけど。
日本語ってのはつまりコメント書くと文字化けするってこと?
よくあるインストール先フォルダの名前が日本語だとまずいなんたらかんたらは関係無い感じかな
GM8だとエディタが日本語に対応してないってことじゃ?
ツール自体が英語なのは慣れればどうとでもなるし
コメントを日本語で書いとけば後ですぐ分かるからな
PNGだと中途半端な透過も完全に再現してくれんの?
pngを使えば画像の通りに透過される
インスコしてみた
こりゃすごいな。ほんとすぐにゲームが作れちまう
凝ったシステムのアクションも作ろうとすれば楽に作れるしナ
プレイヤーを常に画面の中心に据えて、左右移動に合わせてマップをスクロールさせるのってどうやればいいのかな?
バックグラウンドと、キャラの動き回るマップ、敵キャラとプレイヤーは別にする形で
ごちゃごちゃ書いてしまった…
ようは配管工のおっさんのアクションゲームのような挙動を使いたいんです
room設定でviewを使用して、プレイヤーキャラへの追従速度を一瞬にすればいいんじゃね?
強制スクロールは頑張ってスクリプト組め!
ありがとう!
強制は全く考えてなかったんだけど、プレイヤー以外のオブジェクトを同じ方向に動かす方針で組めば行けるかな
viewで表示されてる画面上部にライフとかスコアを表示したいんだけど、移動すると当然のごとく消えちゃう
そこでキー入力に同期させると、今度はプレイヤーが傷害物に引っ掛かってる間に先に行ってしまう
何かいい方法は無いでしょうか?
表示位置を view_xview、 view_yview 基準にすればいいんじゃないの?
draw_score の
xに view_xview+??
yに view_yview+??
に設定する。もしくは、
drawさせるオブジェクトをstep normal内で、
jump to the position をつかって、
x にview_xview
y にview_yview
とかやって、drawイベントでドローさせたいものをRerativeに設定する、とか。
詳しくは上二つの変数をヘルプで検索してみて。
ありがとうございます!
やってみます
yは固定でxを操作キャラと同じにすれば良いんでは
あるインスタンスからマウスまで直線を描写したい時に
↓のようにインスタンスから一定の距離をあけて
draw_lineを使って描写するにはどうすればいいでしょうか?
● ――――――◎
| \
| \
| \
| \
| ◎
|
◎
すいません自己解決しました
lengthdir使えば良かったんですね・・・
スパゲティコードおいしいれす(^p^)
自分で関数とか作ってメイン処理はキレイにしたほうがいいのかな
もう何がなにやらで頭痛くなりそう
矢印キーを短い間に二回入力でダッシュできるかな、と心配だったが出来た。流石だなこのソフト
移動元と移動先の間に壁オブジェクトが無いかどうか判定すりゃいいだけの話
GM7で作ったゲームって64bit版windows7で正常に動くのかな?
triggerの使い方がイマイチわからん
"Trigger events"の項目を見てみたところ、プロ版のみで使える機能のようです。ユーザー定義イベントだとか。
原理的にはStepイベントに条件文書くのと変わらないと思うんだけど
一度定義したら複数のオブジェクトで使い回したり、
Save/Loadできるから他のゲームでも再利用できるのが利点なのかな。
ヘルプにある例だけど、例えば「Ctrl+Aが押されていたら何かしたい」という場合
普通ならStepイベントあたりで
if (keyboard_check(ord('A') && keyboard_check(vk_control)) {
// 何かする
}
というコードを書くんだけど、かわりにTriggerで
return (keyboard_check(ord('A') && keyboard_check(vk_control));
という条件式を登録してやれば、Ctrl+Aを押した時にそのイベントが発生する。
ちなみにこの「return 条件式」という文は
「if 条件式 { return true; } else { return false; }」と書くのと同じこと。
使い道としては、標準のイベントにない「ジョイスティックのボタンを押した時・離した時」
というイベントを自分で定義したり、
高速で移動するオブジェクトの衝突判定をcollision_lineでやって
イベントを発生させるってことができそう。
GMはwaveファイルとMIDIファイル どちらがメモリを多く使うんだろう
良スレ保守
mp_gridの使い方がイマイチ分からん
左右にブレる追尾弾とかそんな感じのに使うんじゃね?
74 :
72:2011/01/01(土) 19:32:47 ID:0yd+pduY
>>73 なるほど…そういった使い方が有るのですね 参考になります。
ごめん、てきとう言った
SLGとかでユニットが障害物をよけながら目的地に行く時用だな
効果音の再生スピードとか変更できないのか。
スローモーション演出作ろうかと思ったけど、音だけ普通なままになっちゃうな。
sound_background_tempoはどうなのよ、使ったこと無いけど
擬似3Dって出来そうじゃない?
パノラマ画像使ってさ
Proにアップグレードしたいんだけど購入にクレカ絶対必要なんかね
Proにして何の機能使うんだよ
お前になんぞ説明しても理解できんだろ
こいつプロやで
プロになれば自ずと分かることなんだな、俺がんばるよ
>>82 PayPalを使うにしてもクレカは必要だよ
webmoneyをペイパルに換える業者とかあったはず
手間かかるし割高になるけどどうしてもっていうならありかも
規制か?
draw_textでアンチエイリアスのかからない文字って描ける?
ゲーム設定のinterpolate colors between pixelは関係なさそう
yoyogamesにあるgmkを見てみると文字のスプライトをdraw_spriteしてるわけでもないし
>>92 ありがとう
スクリーンフォントの縁をなめらかにするオフでいけた
この状態でexeを作ればOKみたいだね
スーパーマリオのようなゲームを作ってるんですが、
落下中に限り、R_rakkatyuuというスプライトを表示する。といった方法はどうすれば出来るのでしょうか?
落下中は全くアニメーションをしなかったり、
着地しても、操作しないとR_rakkatyuuがずっと表示されたままだったりで、全く分かりません。
よろしくお願いします\(__ )
ジャンプの仕方は?
壁オブジェを地面にしてジャンプしてるなら
地面と接触中にプレイヤーオブジェクトのsprite_indexがR_rakkatyuuなら地面との衝突イベントで通常に戻す処理を
もしくは落下して地面についたときにvspeed(だったか?)
もしくはy位置を調整してる部分に通常に戻す処理を
落下中、つまりvspeedが正の値になるとR_rakkatyuuのスプライトに変わるようにすればいい
左右の反転はimage_xscaleを1,-1にすれば右向き左向きと変えられるぜ
ルームに配置したタイルIDの取得方法とかどうすりゃいいの
なんか無駄に複雑になるか、コードでタイル配置してID記録しておくしかないとかやりにくいんだけど
できないのはお前だけ、低脳でゆとりな自分を恨め
>>96 俺も今試してみたけど、GMLを使うなら
>>96と同じ方法しか思いつかない。
強いて加えるなら、別の配列にタイルの種類とかタイルの範囲の情報とかを取っておいて、
必要に応じて添え字を連動させてそこから情報を読み出すくらいだな。
レジストしてるならマップ構造とか使うと楽かも。
釣りかもしれないが
>>97はより良い方法を知ってるんだろうか。
場所がわかってるならtile_layer_findするだけなんだけど
ルームに配置してあるタイルを全部探して一覧にしたいってことなのかな?
だとしたらループで回してfindするか(depthが一定でなかったら厄介だけど)
idを0から適当なところまで増やしていって、tile_existsで存在確認するとかいう手がある。
でも、どういう状況でタイルIDが必要なのか気になるな。
実現したいことによっては、別の手段(オブジェクト使うとか)の方が楽かもしれない。
ありがとう、あるスプライトのタイルを条件に画面移動させたりとかしたいので
そのタイルIDを取得する方法を探していました
ルームに先に配置すると、位置調整とかやりやすいんだけど
コードを使って配置すると位置調整とか面倒で面倒で・・・
obj化して使えばいいんだけど、タイルを使って簡単にやれる方法は無いのかな、と思って質問しました
変数tempにinstance_id[n]を代入したくて、
temp = variable_global_array_get('instance_id' , n)
ってコードを書いたんですが、tempの中身が0のままなんです
このvariable_global_array_getの使い方って間違ってますか?
書き方は合ってると思うけど、instance_idみたいな組み込み変数に使えるという保証はない
素直に temp = instance_id[n]; じゃいけないの?
>>101 instance_id[n]はグローバル変数じゃなくてローカル変数だよ。
それでちゃんと読み込める。
だから
>>102の書き方で間に合う。
簡単なパスで動く足場でプレイヤーが一緒に動くようにはできました。
ですが複雑なパスでpath_positionを使ってプレイヤーを移動させる向きを変えるのはあまり賢くないように思えたので質問します。
どんな関数をどのように書いて使うと良いのでしょうか?
複雑に動く足場をパスを使わずにやりたいと?
それともそれに乗ってるオブジェクトの位置移動や向きの方向を変えたいと?
配列に位置情報を何十個と格納して
それをステップ毎に読みにいって、参照,計算,反映した後値に+1
配列の最後まで行くと今度は-1ずつしていく
これで位置移動はできるけど、path使ったほうが楽なんじゃないの?
A地点まで来たら回転軌道とか
B地点からは縦にジグザグしながら横移動とか
そういう区切りに着くたびにifとかで計算しないといけないのなら
作業量的にpathのが楽だと思う
足場の向きを変えるための不可視オブジェクトを何種類か作っておく
(例えば↑のオブジェクトにぶつかったら上向きに変わるとか)
それらのオブジェクトをルームに配置してやれば簡単に軌道が作れる
スピードを変えるオブジェクトとかも作ってやると色々面白い動きができるよ
108 :
104:2011/01/18(火) 19:39:16 ID:fbzAY7tc
ステップ毎に足場の移動前の位置と足場の移動後の位置を計算
出た結果を足場の上にあるオブジェ全てのx,yに加算で
複雑な軌道でもオブジェ着いてくると思うけどどうなのかな?
銃を撃ったあとに若干隙を作りたいのですが
プレイヤーの操作がきかない硬直状態ってどう作れば良いのでしょうか?
変数を作って、0の時は動ける。1の時は動けない。みたいにする。
>>111 できました!ありがとうございます!
ショットをキー入力していてかつrigid=0だったら動かすようにして、撃った後rigidを1にする。
STEPでalarmEnabled=0かつrigid=1だったらalarm[0]を適当な値、alarmEnabledを1にする。
alarm[0]が0になったらrigidとalarmEnabledを0にするというかんじにしました。
もっと良いやり方があれば教えていただけると嬉しいです。
rigidが0以上、かつ rigid が delay_shot_time 未満の場合 rigid+=1
rigidが上記以外の場合 rigid=0
rigid==0 だったらショットを撃てるように、撃った後 rigid=1。
delay_shot_time = 5; //5秒後に撃てるようになる
if(rigid>0&&rigid<delay_shot_time*room_speed) rigid += 1; else rigid = 0;
if(rigid==0){
撃つ処理;
rigid = 1;
}
賢いかどうかは知らないけど、自分でやるならこうする
アクションの方は面倒だから自分でやってくれw
タイムライン使わなくても時間制御できるんか
これは参考になる
timelineはイベント中の行動制御に使ってるなぁ
弾発射とかのディレイ制御なら
>>113みたいにやって
会話イベントしながら旋回させたりとかやるならtimeline
alarmはどうなんだろうこれ、使い道は分からん
>>115 Alarmはどうだろう・・・ 自分は時限爆弾とかに使ってるけど
Alarmは別に問題ないんじゃないかな
>>112 のようにフラグとカウンタ分けるもよし
>>113 のように一まとめにするなら、rigid 変数がいらなくなって
alarm[0] > 0 でセットされているかどうかチェックすればよし
イベントフローのタイミングが問題になることがあるかもしれないけど
まだ規制かな
暫くは書けそうだ
スレ汚しスマソ。
mb_textで漢字を使ずにひらがな、カタカナ、英数記号のみで使うにはどうしたらいいでしょうか
>>121 容量を節約したかったり、単に漢字がいらなかったりするなら
全角のスプライトを分割した後に、カタカナがあるimage 2までを残してそれより下を削除すればいい。
それだとmbtextが普通に使える。
ひらがな・カタカナ・半角英数記号のみをまとめて入れた画像から文字を切り出して使いたいなら、mbtextでは無理。
自分で使い道に合った関数を一から作るしかないだろうね。
どうもありがとうございます
64bit環境でもGM動きますか?
DLして試してみれば?
すみません
そろそろPC買い換えたいなと思ってたので質問しました
他は知らんけどGM8ならWIN7/64で何の問題も無く動いてるよ
インスタンスIDの番号に上限があるのかという無駄な心配をして検証してみた
50000000まで行った
本当に無駄だったけど、なんか参考になればいいと思ったの…
あ、ごめん補足
50000000以上いく
上の書き方だと50000000が上限みたいな書き方だね
そこまで確認したってことだけですた
mbtextの文字にブレンドカラーを使えるようにするのってできるかな
スクリプト内のdraw_sprite_partをextにすればできそうな気がするけど
たぶんそれだけじゃ駄目なんだろうなあ
>>128-129 特に理由がなければ32bitでサイズ確保するだろうから符号付きでも20億は余裕じゃない?
>>130 色つけるだけならdraw_sprite_extでやってる
>>131 ありがとう参考になった!
以前GM製ゲームで耳ぶっ壊されるかと思った経験あるんだが、音がおかしくなるバグって修正されてる?
>>132 draw_sprite_extだと文字表みたいなの丸々描画されちゃわない?
draw_sprite_part_extだとするとmbtextが受け取った文字データを関数の値に入れるって感じなのかな
>>134 すまん、GM8で日本語表示するためにmbtextをベースに作り直したモノの話をしてた
たいして違わないとたかをくくって話してたけど結構違うのかな
文字に対応したスプライト番号でインスタンスとして表示ってだけならdraw_sprite_extで普通にいけたけど
キーを押したらスリープ もう一度押したら解除ってどうやればできるだろう
>>137 シンプルにやるなら
if(keyboard_check_pressed(vk_space))
{
screen_refresh()
do keyboard_wait() until keyboard_check(vk_space)
}
検索すればもう少しましなのが出るかも
外部のテキストエディタでコード書いてる人っています?
やっぱコメントに日本語使えないのは痛いから、外部で書いてそれをコピペして作ろうかと考えているんですが
なにかいいエディタがあったら教えてください。
日本語の使えるGM5.3で7.0の日本語マニュアル参照しながらコード撃つ
試すときは最新の8.0にコピペしてやってる
NoEditorとかNotepad++(EUC-JP対応版)なら自分で強調表示を作れるから良いよ。
作ったテキストファイルを独自の拡張子(俺の場合は.gmscr)で保存すれば、
対応エディタでの強調表示の他に、GameMakerを開かなくてもコードを見ることができるからお得。
サクラエディタオススメ
>>140 7.0の日本語マニュアルってヘルプドキュメント?6.0のは公式であるのは知ってるけど7.0もある?
>>143 すまん、今見たら日本語版ヘルプドキュメントのバージョン 6.0 だった
6.0以降の日本語ヘルプは無いはず
145 :
名前は開発中のものです。:2011/03/04(金) 09:02:59.29 ID:gYV5jqov
64bitOSで問題なく動きますかか?
>>144 サンクス!あったらほしいと思っただけなのよ
日本語対応してもらうより自分が英語に対応した方が早い気がするね
138だけど
>>137のもう少しマシなのを作ったよ
と思ったけどコード書いたら規制かかった…まんどくせ
やってることだけ書くと、
1.ポーズ変数を作る
2.ポーズになる直前の画面をキャプチャしてスプライトとして登録・描画
3.ポーズになってたら自分以外のインスタンスを非アクティブ化
4.ポーズ解除したらさっきの登録したスプライトをメモリから削除
これだけ!あとは自分でなんとかしてくれ!
レジストしねーとつかえねーじゃねーか!!
sprite_create_from_screenってレジストだけだっけ?
ならそれだけ省いて、instance_deactivate_all(1)を使ってDrawイベントでボーズ中の画面を出すとかどうだろう
ゲーム画面だしたままにしたいならそれじゃ不満かもしれないけど
レジストくらいしろよ
ゲーム製作なんて数ヶ月はかかるのが普通なんだから
その時間を思えば2000円なんて安いもんだろ
proは良いぞ
ブレンドカラー使えるしパーティクル使えるしエクステンション使えるし
すべてのユーザーがレジストしてるわけじゃない
なら未レジストでも使える機能かどうか、きちんと書いておくべきだったと思う
>>149みたいな言い方はあれだけども
148だけど、確認せずに書いたのは申し訳なかった
一応調べてみたんだけど、レジストしないと使えないのはdraw_primitive〜とかだよね?
一時的にメモリにsprite_create_from_screenでスプライトを作ってdraw_spriteするくらいできそうなもんだけど
ヘルプにもレジストしてないと使えない関数としては書いてなかった
めんどくせ、ちょっとサンプル作ってくる
ちょっと調べてきたぜ
sprite_create_from_screenがレジスト機能みたいだな
This function is only available in the Pro Edition.
6.0の日本語ヘルプだと
レジストしないと使えない機能なのに書かれてなかったりするなこれ
まぁポーズさせるぐらい簡単だろ
1、ポーズ変数でチェック
2、ポーズ中には処理が発生しないようにifで分岐
3、1度ポーズ状態になったときに全てのインスタンスのhspeed等を保存
4、戻すときに3を逆にやるだけ
うむ
ついでに未レジスト用にも
すべてのオブジェクトに「Control」という変数作る
Pauseオブジェクトからポーズ状態ならステップイベントでwith(all) Control = falseにして
各ステップイベントの行頭にif(!Control) exit って書いておくだけでもまぁできるけど
これだけだとimage_speedが保存できなかったりするから注意なんだけど 一応こんな方法も一時期やってた
image_speedが一貫して0か1で制御できればなんら問題はないんだけどね
>>157のやってることとほぼ同じですわ
連投すまそ
修正:
>>156とやってることほぼ同じ
ポーズって
var c;
c = 0;
while (c != ord('P')) {
keyboard_wait();
c = keyboard_lastkey;
}
これじゃあ駄目なんか?
>>138で書いたけど、それだとキーボード以外の入力を受け付けなくなるから割と不便なんだよなあ
駄目ではないと思うけど
Proは良いし20ドルくらい払っても構わないけど1バージョンのみってのが引っかかるんだよな
俺は6しか使った事無いが機能考えれば7の方が良いかなと思ったけど8も出てるし今後もっと良い機能が追加されたのが出るかもしれない
キー以外も受け付けたかったら
while (true) {
io_handle();
if (keyboard_check(ord('P')) break; // Pでポーズ解除
if (mouse_check_button(mb_left) && position_meeting(mouse_x, mouse_y, obj_button))
break; // ボタンをクリックしたら解除
// その他必要なマウスやキーの処理
screen_refresh(); // 場合によってはscreen_redraw()
sleep(1000 / room_speed);
}
みたいにすればこの中でメニュー処理とかもできる
ちょっと頑張ればアニメーションとかもできるよ
pause 状態を管理するオブジェクトを作成してactivate、deactivate 切り替えるのが楽
ループを自分でやると閉じるボタンが効かなくなることがある
Begin step
//アニメーションをさせたくない場合 下2行をコメント解除
//instance_activate_all();
//screen_redraw();
instance_deactivate_all(true);
//instance_activate(parent_menu_object) //メニュー表示などをする場合
End step
instance_activate_all(); //アニメーションをしない場合、この行を消す
キー入力は普通にkeyboard event に作ればいい
最初に質問した人ではありませんが
参考にさせてもらって使わせていただきました、ありがとうございます
>>162 確かにバージョンで金取られるのが悔しいのもわかるけどGMに限ったことじゃないだろ
今後よくなるかもで手が出せないんならずっと手出せないんじゃねーかな
167 :
164:2011/03/10(木) 20:21:28.20 ID:1TAXMbhC
アニメーションさせる場合が間違ってたので修正
pause 管理をするオブジェクトのdepthを一番高く設定(depth = 100000 ぐらい)
Begin step
instance_deactivate_all(true);
//instance_activate_object(parent_menu_object) //メニュー表示などをする場合
End step 必要なし
Draw event
instance_activate_all();
Keyboard event(ポーズ状態にするとき)
instance_deactivate_all(true);
164 だと他のEnd step event が動いてしまうので修正
文字列の入った配列のサイズを取得するにはどうしたらいいだろう?
何故かわからないけどvariable_local_array2_getを使うとエラー出るんだよね
まだまだ理解不足だなあ
168 自己解決した
GM8だけれど
インスタンス名からオブジェクト名を得るのは簡単なん?
object_get_name(インスタンス)
だとならないんだが・・・
171 :
170:2011/03/12(土) 00:32:25.78 ID:csZUew4U
with(インスタンス)で自己解決しました
自分が思い込んでた間違いと
うまくいった結果を載せてくれよ
173 :
170:2011/03/12(土) 12:59:33.29 ID:csZUew4U
object_get_name(インスタンスID)でオブジェクト名が取得できると思ってたけど
パラメータはオブジェクトIDしか無理なようなので
var obj_id;
var obj_name;
with(インスタンスID)other.obj_id = object_index
obj_name = object_get_name(obj_id)
でできました
174 :
168:2011/03/12(土) 17:16:39.71 ID:H04pfBlp
地震でHDDとんだけど・・・
思い込んでた間違いは、variable_local_array_getで値が存在するかしないかが返ってくると思ってた
実際は代入されている値が返って来るから文字列か数値かで処理を変えれば問題なかった
>>173 なんでそんな遠回りなんだw
obj_name = object_get_name(インスタンスID.object_index); だけでいい
ついでだけど、varで宣言した変数はインスタンス変数ではなくローカル変数になる
だからwithの中から参照する時にotherを付けるのは間違い。何も付けなくていい
176 :
170:2011/03/12(土) 20:40:53.73 ID:csZUew4U
すげー今更だけどスプライトでPSDファイル読めるのな…便利すぎて屁が出た
あげ
179 :
名前は開発中のものです。:2011/03/20(日) 18:15:56.73 ID:n9f7tcZ5
みんなは敵のAIとかどうやって組んでいるんだろう・・・
>>179 シューティングゲーム作ってるけど、
自機とか自機弾の速度や方向に応じて自機の後ろにつかせてみたり攻撃の避け方を変えてみたりしてる
他にも自機の攻撃方向を学習して敵全体で共有するってのも考えてみたけど、バランスが崩壊しそうだからやめた
GMはAI作るのに役立つ関数が多いから作りやすくて良い
ボンバーマンですら中々難しいが格ゲーとかもうキチガイの領域
下手すると勇次郎クラスの化け物になるし作れる奴は凄いよな
ビーム的な物の当たり判定にcollision_rectangleあたりを使いたいのですが
範囲内にオブジェクトがあった場合、そのオブジェクトより後ろを判定外にするにはどうするのがスマートでしょうか?
分かり難いので図で説明するとこんな感じです
● 始点 ○ 終点 □ 範囲 ★ オブジェクト
□□□□□□
●□□□□□□○
□□□□□□
↓途中にオブジェクトがあると
□□□★
●□□□□□□○
□□□□□□
思いついた限りでは★オブジェクトからもcollision_rectangleを後ろに伸ばし両方に干渉する場合〜といった所ですが
どうもかなり複雑になってしまう上、斜め等に対応させると非常に面倒かなと思います
皆さんならどのようにしますでしょうか。よろしくお願いします
GMLscriptsのcollision_triangleじゃいかんの?
>>183 ありがとうございます。教えて貰ってなんですがあまり理解出来ず…
何となくこんな感じかなというのは出来たのですが
B
A
C
こんな感じで3点を取って
B
A
■
C
オブジェクト■が僊BC内にある時、Aから(■x,■y)を通る直線A■を延ばしてA■とBCの交点にCを移動
というような感じで変な風に解釈して遠回りをしてるかもしれませんが三角形の当たり判定なら出来そうです
しかしまた質問で申し訳ないのですが点A,B,Cを取ったとして三角形ABCを当たり判定として使うにはどうすれば良いでしょうか?
日本語ヘルプを見た所、衝突判定は点、線、矩形、円しかなくこれらを組み合わせて三角形の範囲を作る方法は思いつきませんでした
線を無数に引くとか強引な方法は好ましくありません。寝ボケておかしな見落としをしているかも知れませんがご教授お願いします
GMLscriptsって言うサイトがあってそこに三角形衝突判定のコードがあるんよ
他にも色々便利なのあるから見ておくといいかも
ありがとうございます
Proではないので実行は出来ませんでしたが何となく分かりました
畜生
スプライン補間のスクリプト作ったのに
もうGMLscritpsにあるじゃんかよ
自分は何か自作する前に必ずGMToolBox見てる
ここ見てると普通にWindowsアプリ作れそうだ
楽しいのはわかるけど、ちょっとだけ勉強が足らないみたい
だれか8のヘルプ翻訳してください・・・
6のヘルプで十分だろ。中学英語レベルで読めるし、わからなければ翻訳かければそんなに苦じゃないけどな
実は最近GMLの項目だけですが翻訳を始めました
直訳だとなかなか進まないので、最低限意味が通じる程度の思い切った意訳をしようと決心した所でうs
いつになるかわかりませんが、完成したら公開する予定でうs
期待大
GM8で、7であったスプライトのスムースエッジはどうなったのでしょうか?
sprite_add関数にはsmoothの引数があったのですが、スプライトの設定画面では7にあったようなチェックボックスが見当たらないのですが。
あとsprite_add関数の説明にあるremovebackとはどういう意味でしょう?
ヘルプを翻訳にかけてもいまいち意味がわかりませんでした。
Global Game SettingのInterpolate colors between pixelにチェックを入れれば色補間が有効になります
removebackは背景色(左下のピクセル)を透過させるかどうかだと思います
GM8では個々のスプライトでスムースエッジを設定するわけではないのですか
ありがとうございました。
>195 >197
基本的に7にあったものが消えたりはしてないと思う。変更はあるかもしれないけど。
sprite_addをヘルプで検索すればsmoothがある事くらいは英語読めなくてもわかるだろ
removebackはそのまま、背景を透過(削除・リムーブ)するかどうか。
sprite_add(fname,imgnumb,removeback,smooth,xorig,yorig)
>196は質問の意図と答えが合ってない
>195
追記。
スプライト編集画面で、images->Smooth Edgeを選べば関数でなくてもできる。
7ではチェックボックスでそんな事ができたのなら、8ではその機能はフィルタにまとめられたみたい
8.0でもスプライトに外部イメージ画像ファイルを読み込み選択する画面で設定できるはず
右下のあたりにスムースエッジとかの4つの項目がねーか?
あとどうしても分からないのなら透過PNGにしてしまえば
その辺の細かい透過は気にしなくても良くなる、たぶん重くなるけど
やっぱり翻訳なんて無理だ
GM6ヘルプに無いirandomやrandom_rangeの存在を知ったから、というだけで気軽に手を出すような代物ではなかった
>202
まぁヘルプを隅々まで見るのはいい事だから色々な関数や機能がある事を知るのは大事だとは思うが
ヘルプも見ないでグダグダ言ってる奴よりまし
こういう時こそwikiでみんなの力を結集させる時なんだがな
分かる範囲だけでも新しい関数の翻訳をしてくれると非常に助かります。
GMLだけ翻訳してみる。193ではないけど。
昨日はじめてGame playのヘッダ内のDeactivating instancesまでしか翻訳してない。
ちょくちょくうpしてくれるとテンションあがる
>>206 応援してる!
マジがんばれ!超がんばれ!!
206だけど。
今のところ6から8にかけての変更はほとんどなくて、モーションプランニングと実数計算の関数に少し追加があっただけ。
だからもう少し大幅な変更が見られたら途中でもうpできるようにしたいね。
理解できるかは別として普通に翻訳するだけだけどな。
いつの間にか8.1がアナウンスされてたのか
better accented character supportって言っても、きっと日本語サポートするわけじゃないんだろうな…
それなら即買いなのに
あれ?ダウンロードはまだなのか
8.1ってどこでダウンロードできるんですか?
アナウンスされてたのかって言ってるだろ。誰がリリースしたと言ったんだ。
8.1きたな
スクリプトエディタ試したけどやっぱ日本語駄目だった
でもいい加減7に対応したいし、とにかく導入するしかないのかな…
ちなみに起動速度上がってるらしいけど、誰かGM7と比べてみた人いる?
なんで7と比べるんだ?8のバージョンアップだろ。
ルームエディタの更新 ・・・ 操作的な意味で、オブジェクトを右クリックメニューから呼び出して編集する機能など
コードエディタの更新 ・・・ コードエディタの高速化、アクセント文字のサポート、コード補完のサポートなど
EXEファイルの暗号化 ・・・ 今までより安全
2D、3Dのレンダリング ・・・ 速くなったのと24bitのZバッファをサポート
マウスのホイール(中クリック)を使った新しい機能と、少しだけGMLも追加されたみたいね
起動速度の高速化はアナウンスされていない
>210のbetter accented character supportもアクセント文字のサポートだから強調表示の更新だろ 日本語じゃない。
長い棒状のオブジェクトのimage_angleを変更させて坂道を作ろうとしたのですが、どうもうまくいきません。
直角三角形の高さは
底辺*tan(角度)
ですよね。
坂道用オブジェクトとのコリジョンイベントで以下のようなコードを書いてみたのですが、
xが長くなるにつれ、yの位置が坂道オブジェクトの描画されている位置より低くなってしまいます。
image_angleでは正確な角度にはならないのでしょうか?
y = other.bbox_bottom - abs(x - other.bbox_left) * tan(other.image_angle)
>216
三角関数がとるのはラジアン、image_angleは度だからdegtoradで変換する必要がある
あと、イメージが回転するとそれに合わせてbbox_bottomとかも更新される
(回転した後のスプライト全体を囲む矩形になる)から計算合わなくならね?
>>217 おお上手くいきました。
ありがとうございます。
回転した時のbboxの位置ですが、いろいろな角度で試してみた結果特に問題はありませんでした。
評価版の8.1はひどいな
本体起動時に表示される広告
ゲーム背景にずっと表示される広告
ゲーム終了時にさらに表示される広告
実行ファイルのサイズがかなり膨れ上がる
レジストしているならそのままアップグレードすればいいんだろうけど
評価版は8.0のほうが明らかによい
皆さんはランダムな敵の動きをどう制御しているのでしょうか?
毎回32移動するとして周りの八方向の内ソリッドオブジェクトの無いいずれかにランダムとなると
自分は以下のようにやってますが非常に面倒です。repeatとか使えばもっと簡略化出来ますが…
if place_free(x+32,y){r=1}
if place_free(x+32,y+32){r_d=1}
if place_free(x+32,y-32){r_u=1}
if place_free(x-32,y){l=1}
〜〜〜
ここからまた
if(r=1 and r_d=1 and r_u=1 〜〜)
if(r=0 and r_d=1 and r_u=1 〜〜)
〜〜〜
というように目に見えて非効率的な方法しかよく分かりません。
途中送信してしまいましたが
ランダムに四方八方のいずれかに移動する際の効率的な方法をご教授願いたいです。
よろしくお願いします。
効率的というのがどのような効率かわからないけど
移動量32 で 八方向にランダムだったら
xm = irandom(2)-1; //もしくはround(random(2))-1
ym = irandom(2)-1;
if(place_free(x+xm*32, y+ym*32)) {
//移動させるコード
}
のように移動方向をランダムの対象にすればいいんじゃないかな
後半の判定条件見ると、毎回必ず八方向のどれかに移動しないといけない
(どこにも移動しないというのはナシ)なのかな。
だとすると、まずどこが空いているか調べておいて、その中から選ぶのが良いかと。
// 空いている場所を調べて配列に入れる
count = 0;
for (ix = -32; ix <= 32; ix += 32) for (iy = -32; iy <= 32; iy += 32) {
if ((ix != 0 || iy != 0) && place_free(x+ix, y+iy)) {
vx[count] = ix; vy[count] = iy; count += 1;
}
}
// 配列の中から移動先を選ぶ
ii = floor(random(count)); x += vx[ii]; y += v[ii];
>>223 配列ってのが何なのかよく分かりませんでしたがやっと理解出来ました。
これは便利ですね。ありがとうございます。
プログラムなんてやらずにGML使ってるから配列とかfor文の得体が知れない
GMLもスクリプト言語だしプログラムの一部なんだから少しは学んでほしいわ
ループや条件分岐すらわからないならゲーム製作なんてできるわけがない
そういうの無しでもゲームが作れるのがGMなんだがな
GMLなしでも作るだけ作れて、GMLを使えばもっと色々できるって感じかね
ループや配列くらいは覚えといた方が何かと楽だとは思う
個人的にはPro版でGMLじゃないとやってられない
自分はGMLでやらなきゃ正直使いづらいなあ
ActionScriptなんかよりはるかに楽なスクリプト言語だから覚えた方が得だとは思うんだけどな
GM8アプデしたら動かなくなった件w
俺も止まったw
Game Maker Updaterが怪しいね
最新のアップデートはインストーラがあって、こっちならイケるっぽい
8.1.69でフォントのアンチエイリアシングコントロールを追加したと書いてあるがそんなもんどこにあるんだ
再インストールしてきたら出てきたよ☆
Lite 8.1 広告だらけだけどスプライトの回転が使えるようになってるね
CharSet 指定できるみたいだけどフォントだけじゃなくエディタにも連動しないから誰得な機能
値上げしたから機能充実・追加があったのかと思ったけどそんな感じではないな
もうなんていうか、金払ったら負けなツールだよなこれ
GMオワコン化の始まり
まあ、単純なゲームしか作らないならレジストしなくても十分だね
何気に有料機能であるリソースの置き換え機能はゲームが肥大化してくると重要
価格の大半はロゴ消しの価値
流れぶったぎってすみませんが、質問させて頂きます
無料版だと、どのバージョンがおすすめでしょうか?
テンプレで8.0の文字化けについて記載されていたので少々気になりました
慣れてきたら悪魔城的な2Dアクションを作ってみたいと思っているのですが…
>>239 あれがないと、メモリの使用量がとんでもないことになるよな
大規模なゲーム作るならレジストは必須だろう
>>241 今はもう8しかダウンロードできないんじゃなかったっけ?
無料版は8以前も手に入る。無料8.0は外部から落とす必要がある
エディタ中の日本語が気になるなら7あたりがいいと思う。
ただしレジストするなら最新版一択になっちゃうという感じかな
日本語でレジスト方法について書かれている説明ってないでしょうか?
245 :
241:2011/04/26(火) 04:00:06.20 ID:OFuVootN
回答ありがとうございます
ひとまず7を入手しました、しばらくは7の無料版を使ってみようと思います
レジストは操作に慣れてきたら考えようかなと…
個人的に英語のエディタに慣れるといちいち全角キー押すのが面倒になった
日本語のコメントが書けないだけで他の機能も使えるしレジストしたほうが便利
というかアクションコマンドのコメントには日本語書けるんだけどな 何故か。
コメント書くだけなら英語でも構わないんだが、mbtextの引数で日本語書くときが困る
って言ってもせいぜい100〜200パターンくらいだから
いっそ外部ファイルに打ち込んだのを読み込んで変数にぶちこんだ方が早い気もしてきた
>>247 ファイルから配列に1行おきにループで代入してる
テキストファイルあまり見られたくないならテンポラリファイルに展開するようにすればあんまり問題ないしね
これでタワーディフェンス作りたいんだけどGML使わないとやっぱ無理かな?
たぶんGMLのが簡単だと思うけど
アクションだけでも問題無いと思う
>>250 GMLのが簡単ってこともあるのか
まだGM自体触ったばっかだからもっと使ってみる
アクションだけでも関数とローカル変数を使えば大抵の事はできるよ
プログラムを全くやった事が無いならアクションから始めたほうがいいと思う
アクションで覚えた事はGMLに移る時も無駄にならないし
>>248 そうなるよね
文字列と対応するIDを別々のリストにいれておけば参照する時楽かな
>250-252
GMLのが簡単っていうのは表記ミスの発見や変更が加えやすいから簡単って言う意味だろうなあ
アクションでも同じ事はできるけど正直見づらくて、同じ事やろうと思うと結構グチャグチャになる
あとアクションだと一個ゲーム作って次を作るときに再利用しにくい
ifやforをたくさん使うようになると、GMLで書いたほうが分かりやすくなる
↑のサイト見て気になったんだけどaction_系のコマンドってヘルプに乗ってる?
検索かけても引っかからないから今までずっと知らなかった
タイムラインGMLで呼び出せないのかと諦めてたけどこれで随分楽になる。すごい助かったよ
紹介したサイトにも書いてあるんだけど
action関数はGM自体に含まれているんだけど、初心者の混乱を避けるためにヘルプには載せていないみたい
さらに引数のガイドもコードエディタで表示してくれないからあまり支持されていないそうだ
上記のサイトで引数についての説明もされてるから見れば完璧だとは思う
ちなみにタイムラインはtimeline_indexで指定できないの?
自作でタイムライン作っちゃうからあまり既存のタイムラインは使ったことがない
Show Infomationで全部そのままGML表示してくれりゃいいのに
マウスにオブジェクトがついてくるってアクションあります?GMLうたなきゃだめかな?
マウスの位置格納してる変数参照して
オブジェクトの位置をそれに合わせればいいんじゃね?
普通にMove Towardsのイベントにmouse_xとmouse_y指定すればいいんじゃねえの
コードが書けないなら既存のイベントで何ができるか、どうやったらできるか考えるべき
企画書流し込んでゲームが出来上がるソフトなら誰も苦労しない。
>>259 ド素人プログラマってのがバレバレになるけど
timeline_index = (呼び出したいタイムラインのname)
って感じで前にやってみたんだけど呼び出せずに他どうやるかわかんねってなって諦めてた
元々作ってたタイムライン流用したくて、ダメだったら259のように自作タイムライン作るしかないかなとは思ってた
どうせタイムラインもコピペ流用できないしGMLで自作したほうが後々の為ではあるんだろうなあ…
普通にtimeline_index = timelineの名前 でいけたと思うが
position,speedの設定し忘れや、timeline_runningがfalseになってて動いてないとかかもな
timeline自体に使ってる名前が重複してるか、有効ではない名前になってたりする可能性も有りか
素早いレスありがとうございます。timeline_runningをtureにしたら無事いけました
というか上の変数もヘルプにのってなかった…これヘルプのみ教科書じゃ網羅できないってことか
もうちょい色々使って調べるようにしてみます。本当ありがとう!
267 :
名前は開発中のものです。:2011/04/30(土) 20:06:21.61 ID:W0WXxwKu
ついさっきDLしたばかりの無知で悪いんだが、
簡単なモノって大体どれくらいのモノならGMLで作れるの?
ストファやスマブラとかの格ゲーとかでもいける?
268 :
名前は開発中のものです。:2011/04/30(土) 20:21:09.42 ID:W0WXxwKu
ごめん↑は「GML無し」での間違い
>>267 いけるいける
簡単なモノって大体どれくらいのモノなら鉛筆で書けるの?
みたいな話だからやり方次第としか言いようがねぇよ
自分でスマブラのようなゲームを作ったことはある
格ゲーは作れるしSTGも作れるしアクションも作れる
だが楽かって話になるとそれは別問題だ
まず聞く前に自分で試してみてどのくらい出来るのかやってみる気概がないと後々切ないよ
270 :
名前は開発中のものです。:2011/04/30(土) 20:47:07.56 ID:W0WXxwKu
>>269 ふむ、了解した。
楽じゃないのは承知の上だから大丈夫なんだが、
英語が怖いから5.3インスコしたんだけど
やっぱり7.0や8.0のがいいのかな?
両方インストールして両方試してみれば良いのに
特にこだわりがなければ7や8で構わない
英語ったってそんな難しいものはないし困ったらエキサイト先生で構わない
英語がある程度読めるとYoYoGamesのサンプルやスクリプトを参考に出来て便利
7や8だと透過pngを使えるから,スマブラやストリートファイターのようなエフェクトがリッチなゲームを作るには便利
あと5.3だとVista以降で動かないかもしれない
とりあえずまずは自分で弄って試行錯誤して悩むのをお勧めする
272 :
名前は開発中のものです。:2011/04/30(土) 21:12:22.72 ID:W0WXxwKu
>>271 そ れ は 盲 点 だ っ た
アドバイスdクス。
とりあえずブロック崩し作ってくる
質問先読みでもしようか
全部消えたら
んじゃ
バーが壁にめり込んで動かない
馬鹿にすんなよwww
>274 あるあるw
ところで>272はなんでGML以外で作ろうとしてるんだ?
管理しやすいし少しでも楽にするならGMLに慣れちゃったほうがいいと思うよ
あと>273のIDに感動した
>>272 もちろんエロいブロック崩しなんだろうな?
やっぱプログラムってところで壁を感じてるんじゃないかな?
やってることはアクションと変わりないんだけどね
280 :
名前は開発中のものです。:2011/05/01(日) 17:07:17.89 ID:24HhuA0O
>>277>>279 そうなのか?
Cやろうとして失敗した奴なんだけどね俺は
>>278 そりゃもちろん!
で、バーが壁にめryは何とか回避したんだが、
崩す前の絵をブロックにする方法が良く分からない。
一個一個別のオブジェクト作らないとダメなの?
ブロックに使うインスタンスオブジェクトAに
一定区切りでバラバラにした1枚の画像をsubimageに当てはめておいて
インスタンスオブジェクトA生成→生成したインスタンス群のsubimage変更
みたいな感じでいけると思うが
282 :
名前は開発中のものです。:2011/05/01(日) 17:24:20.44 ID:24HhuA0O
283 :
名前は開発中のものです。:2011/05/01(日) 19:10:07.81 ID:24HhuA0O
>>281 元気良く飛び出したのはいいんだが、早速二行目で詰んだ。
「一定区切りでバラバラにする」って分割画像って奴の事?
>>283 そうそれ
1枚の画像をそれで分割して、subimageを何枚も作っておく
あとはメインアクションのChange the spriteでブロックごとにsubimageの画像を変更すればいいだけ
285 :
名前は開発中のものです。:2011/05/01(日) 20:28:48.12 ID:24HhuA0O
>>284 アドバイスdクス
一応脱衣ブロック崩しにはなったよww
ブロックの座標に合わせてdraw_sprite_partしたら分割する手間が省けるかなと思ったり
楽をするための仕組づくりに手間かけるのもプログラミングの醍醐味よ
287 :
名前は開発中のものです。:2011/05/01(日) 20:42:32.65 ID:24HhuA0O
>>286 それをExcuteCodeの中にぶち込んでどうにかすれば
あの長ったらしいIfのアイコンを並べなくて済むわけですね、わかります
今度は同じ物をGMLで作ってみるよ
頑張れ、風邪ひく前に頼むよ
289 :
名前は開発中のものです。:2011/05/02(月) 00:16:28.55 ID:D5lQKg2j
>>288 ゴメン…画像は勝手にパクってる奴だからうpるの無理
パンツ穿いてこい
ヘルプやら
>>257やら見てたら何とかGMLで出来たよ。
何とかやれそうだ、おまいらありがとう。
で、日本の非公式だとかwikiは現在では忘れられてる状態?
長らく更新されてないけど
>289
Wikiは更新されてない箇所多いけどある程度役には立つから見て損はないよ
日本非公式はわかりづらいし、イベントのことまで書いてあるからどうだろうなあ
役に立つのはmbtext関連かな。
公式フォーラムを翻訳しながら眺めてるだけでも割と有意義だと思う
291 :
名前は開発中のものです。:2011/05/02(月) 18:11:25.40 ID:D5lQKg2j
>>290 そーなのかー
教えてくれてdクス
そろそろレスしすぎかと思うんで
自重して一人で修行の旅に出てくるよ。
わかんないことあったらまた聞くかもしれんが、
よろしくお願いします
訊く前にまずバックアップ取ってから試すのを忘れるな
初心者ですみません、どうしてもわからなかったので質問させてください。
もしも気に障ったならスルーしてもらって構いません。
現在GML無しで横スクロール型のアクションゲームを作っているのですが、ジャンプした後や、高い所から落下した時に落下モーションを取ろうと思っています。
ジャンプして上昇中に上昇モーションを取ることはできるのですが、落下モーションに移行させるコツがわかりません。
何卒ご指導いただけるとありがたいです。
上昇時と落下時のspeedの違いでモーションを変えればいいだけ
負の値ならモーションAに正の値ならモーションBに
>>294 なるほど!
わざわざ回答頂き、ありがとうございました。
マルチプレイの方法について質問です
日本語版ヘルプを読んだのですが
親側
mplay_init_tcpip(mplay_ipaddress())
mplay_session_mode(true)
mplay_session_create(sesname,playnumb,playername)
子側
mplay_session_join(numb,playername)
こんな感じのを適当なオブジェクトにでも入れれば接続出来るのでしょうか?
接続されたとして互いのデータはどのように共有されるのでしょうか?
mplay_data_writeで変数?の共有は出来るのでしょうか、
しかしルーム、オブジェクト、操作、など普通のゲームと同じ様に作っては複数人でのプレイはとても出来るように思えません
非常に単純な通信だけでも作ってみたいのですが、もし良ければご教授願いたいです。よろしくお願いします
専門外だが何度も呼び出すようなモノでもないんだろうし、user_definedイベントとかに入れちゃって接続する時とかホストを立てるときに呼び出せば楽そうだね
変数の共有だけど1,000,000の共有領域があるって書いてある。
番号を指定してやれば「親側の指定番号に含まれる内容を共有」することになる、という印象
単純な通信なら、インスタンスAを親側で動かして、子側で同じインスタンスAが動くか試してみるとか
親側のルーム移動で子側も移動されるのかとか、これは通常じゃ多分されないけど。
mplay関数が結構多いから眺めてても楽しいね 今度何か作ってみよう
共有領域にルーム情報とかがあれば、それを各々の固体のオブジェクトが参照して色々とできるんじゃない?
固体Aが動く→共有領域の情報に差異があれば→共有領域に位置情報格納→描画前に各々の固体で情報更新
マルチプレイなんて触ったこともないし、ヘルプ見て思ったことを書いただけだけど
スレがやけに伸びていると思ったら質問ばかりか
と思ったらエロいブロック崩しか
いいぞもっとやれ
マルチプレイでエロいブロック崩しとか胸が熱くなるな・・・
負けると1枚着せられるのか
オチオチ抜いてる暇もない
こんな糞下らない発想を素人でも容易くゲーム化出来るのは最高の旨み。マルチプレイは訳分からんけど
こんな感じのツールでコンシューマー用のゲームが作れればゲーム業界は活発になるだろうし斬新な作品も沢山出そうだ
何より素人がコンシューマーゲーム開発出来るなんて夢みたいな話じゃないの
負ける・・・?ナニを言っているんだ
協力してブロックを崩すに決まっているだろう
ゲーセンであったような
壁からの自機移動範囲を四角で囲んで
切り取っていくと裏の絵が表示されるタイプのゲームのがマルチにはよさそうだけどな
クイックスか
ギャルズパニックじゃねーのか?
お前ら詳しいなw
もう作っちゃえよ
マルチプレイ用のDLLならフォーラムで公開されてた気がする
>>302 MMDとかがそうだけど、ネットでの集団製作文化みたいなのができると今後面白くなると思うだよなー
たしかにGM単体でもいいから大きなコミュニティがほしいとは日々思う
公式フォーラムがまさにそんな雰囲気だけど日本にない・・・共有する感覚が少ないし、著作権の主張が強いからな
描画した図形を回転させるのはPROじゃないと無理なのでしょうか?
>>308 pro版クレカ必須、日本語使いにくいで新規の人が入りづらい
使い慣れた人には折々のアップグレードは話題にするような追加機能がないってことで
結局人もネタもそれほどないんだよ
非公式フォーラムが廃れたのは惜しい反面しょうがないとも思う
>>309 お勧めしないけれど、最新lite 8.1 は回転できる
それ以外は回転画像を用意する必要があり
8.1Liteは広告が異常に多いとか聞いて触ってもいないわ
GMで敷居が高いって事はないと思うけど、まぁ色々あんだろね
>309は描画した「図形」の回転だよね スプライトじゃないんなら出来るんじゃないかな。
まぁ面倒だけど、計算させるとか
スプライトのアニメーションが、EditSpriteのSpeedもRoomのSpeedも同じ30なのに、実際にプレイすると本来より早く動くのですが、これはどう修正すればいいですか・・・?
EditSpriteの方のSpeedはあくまでプレビューだから関係ないと思う。
どっかでimage_speedをいじって1以上とかにしてるオチじゃないの?
image_speed = 1で早いと感じるなら0.2とか0.3とか
>>314 回答いただき、ありがとうございます。
EditSpriteとRoomのSpeedが同じでもプレビューの速度が実際に一致するとは限らないのですか。そういうもんなのですね。
左右移動時にアニメーションを左右使い分けているのですが、どうも挙動がおかしいのです。
アニメーションの変更は、別途歩行アニメーションのオブジェクトを用意してChange instanceを利用しています。
通常時は普通に動作してくれるのですが、特定の条件でインスタンスの親を変更させた後(プレイヤーキャラの変身で見た目と挙動を変えるためです。)、
移動アクションのコマンドを通常時とまるまる同じにしたのに、今度はアニメーションの最初の数コマまでしか表示されずにまた一コマから動くという妙な動きしかしないのです。
コマンドが同じなのに異なった挙動を取るので、もうさっぱりです・・・・。
わかりづらい内容でごめんなさい・・・。説明しづらいので、もしも回答しにくかったら、スルーしてください;
個人的で悪いんだけど、アニメーション如きでインスタンスを消したり生成したりするのはお勧めしない。
アニメーションを切り替えるだけならsprite_indexでスプライトの指定を変えた方が遥かに楽だしバグを回避できる。
アニメーションについてはバグなのか仕様なのかわからないけど、スプライトのサブイメージ数がチェンジする前のインスタンスのものを引き継いでるとかそんな香りがする
よくわからんけど
>>316 こんな説明に、丁寧に回答いただき、重ね重ねありがとうございます。
まさしくおっしゃる通り、サブイメージ数を引き継いでました。親の枚数を増やしたら通常通り動きました!
本当に感謝いたします。
実はまだGMを触って2週間程の初心者でして、スレ汚し大変失礼しました。
sprite_indexですか。ちょっとわからないので調べてみます。
subimageの切り替えをimage_speedじゃなくて変数を用いて使えば
A状態だとsubimageの0-6を使用、B状態だと7-12を使用みたいな感じにもできる
まぁ
>>316のやり方が楽だと思う
>>319 なるほど、sprite_indexの意味がちょっとわかりました。
こっちの方が管理が楽そうですね。
ちょっと工事してきます。
回答いただけた方、本当にありがとうございました。
>>316 instance_changeすると、オブジェクトのプロパティで設定できる項目
(depthとかvisibleとか)は新しいオブジェクトのデフォルト値に置き換わる。
それ以外の変数は、チェンジ前のものがそのまま引き継がれるというルールっぽいです。
というわけで
sprite_index は新しいものに変わるが
image_index, image_speed は今の値をそのまま引き継ぐ。
インスタンスの変更を使うなら、これらの変数は
createイベントあたりで初期化しておくのが無難。
アンドゥ機能って無いんですか?
>322
アンドゥは個別にあるだろ アイコンまであるのに。
何に対して言ってるのかまったくわからん
アンドゥトロワ
プレイヤーを左(もしくは右)の方に置いた状態で横スクロールするために
//プレイヤーが右向きならglobal.muki=1
if(global.muki == 1) x = 120 + obj_player.x;
else x = -100 + obj_player.x;
y = obj_player.y;
というコードをstepで実行するオブジェクトを作って一応うまくいったのですが
なんだかスクロールが微妙になめらかじゃない感じがします
原因わかる方、ご教示してくださると幸いです
気のせいだったらすみません
room設定は
width 960
Height 480
View in room X 0 Y 0 W 480 H 320
Port on screen 同上
Hbor 240 Hsp 9
Vbor 160 Vsp -1
としています
どういう状態かよくわからない
プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする?
それとも強制スクロールでプレイヤーオブジェクトを画面外に出ないようにする?
すみません
目指しているのは、マリオのような通常横スクロールで、プレイヤーが画面の真ん中より進行方向逆側をキープしつつの
スクロールです
進行方向(プレイヤーオブジェクトの向いてる方向)の画面を多く見せたいのです
プレイヤーが逆方向を向いたときは、向いたがわの画面を多く見せたいのです
○をプレイヤーとすると、
右向きの時はこんな感じで、プレイヤは画面上はその位置をキープして
○
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
左向きの時は、実際の位置は変えずに、こういう感じにするのを目指しています
○
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
う〜む…なんかうまく説明できません
申し訳ない
>>326 >>プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする?
すみません。見逃していました
たぶん仰る通りのことを目指しています
たぶん透明のオブジェクトを作って
viewはそれを追従するようにしてるんだと思うけど
それならHspの値を変更すれば追従速度が変わるんじゃないかな
少数点とかの細かい値は指定できなかったと思う
Step じゃなくて End step に置くっていうのはやってみた?
ご教示ありがとうございます
End stepに置いたら上手くいきました!
原因は実行の順番にあったのかな
>>329 ずばりその通りにしています
原因は透明のオブジェクトの方にあるようでした
ありがとうございました〜
>>330 イマイチStep系統の使い勝手を分かっていませんでしたが、ちょっとわかったような気がします
ありがとうございました〜
皆は外部ファイル(セーブデータやミッションデータなど)はどうしてる?
自分はミッションクリア式のゲーム(例えばイキキ様のはかいマン)を作っているけれども、外部ファイルをどんな風に扱えば良いのかなと
携帯からすまん
どうしてるってどういう意味?
セーブデータならexeと同じフォルダに適当なフォルダ作ってその中に入れてるな
暗号化したければお好みで
exeのあるフォルダにsaveフォルダ作って暗号化して放り込んでる
335 :
332:2011/05/17(火) 16:56:20.38 ID:73LY8Wv3
スプライトを読み込むとメモリ上ではbmpになるけど、メモリ上でもpngのまま扱う方法ってないのかな?
連番画像を読み込んだ時のメモリ使用量が辛くなってきた
ちょっとdllの作り方調べるくらいじゃ判断がつかない
ごめん、上のはpngを読み込むならpngのまま、gifを読み込むのならgifのままってことね
ファイル形式のままメモリ上で保持するっていうのはない
読み込む画像データを少なくする手段を考えるほうが手っ取り早いはず
シーン毎に必要な画像だけ裏で読み込んでいらん画像は破棄するとか
8.1になってから半角カナ使えなくなった?
突然すみません、質問させてください。
アニメーションgifの特定のsubimageの時にwaveを鳴らすって処理はできますか?
例えばアニメーションの4番目と8番目が拳を振り下ろすシーンで、その時に打撃音を鳴らすといった事は可能でしょうか?
素人の質問で恐縮です。
もしよろしければ回答頂けるとありがたく思います。
俺のやり方
効果音が鳴ったかどうかの変数を作っておき、image_indexが3以上になったら変数をtrueにして効果音を鳴らす
if image_index < 3
{
se_flag = 0;
}
else if image_index >= 3 && se_flag == 0
{
sound_play(効果音);
se_flag = 1;
}
あ、8番目も鳴らすのか、ならこうかな
if image_index < 3
{
se_flag = 0;
}
else if image_index >= 3 && se_flag == 0
{
sound_play(効果音);
se_flag = 1;
}
else if image_index >= 7 && se_flag == 1
{
sound_play(効果音);
se_flag = 2;
}
他にも効果音を鳴らす行動があるなら、配列とかも作ってどこで鳴らすかとかもやるといいかもね
a[0] = 2;//鳴らす箇所の数
a[1] = 3;//鳴らすimage_indexその1
a[2] = 7;//鳴らすimage_indexその2
sound_ids = 効果音1
if(!sound_isplaying(効果音1)){//効果音1が再生中では無いなら
for(i=1;i==a[0];i+=1){
if(image_index==a[i]){//image_indexがa[1~a[0]]の値ならば
sound_play(効果音1);//効果音を鳴らす
}
}
}
ありゃ、修正ミスだ
たぶんこれで大丈夫なはず
a[0] = 2;//鳴らす箇所の数
a[1] = 3;//鳴らすimage_indexその1
a[2] = 7;//鳴らすimage_indexその2
sound_ids = 効果音1
if(!sound_isplaying(sound_ids)){//sound_idsが再生中では無いなら
for(i=1;i==a[0];i+=1){
if(image_index==a[i]){//image_indexがa[1~a[0]]の値ならば
sound_play(sound_ids);//sound_idsを鳴らす
}
}
}
>>341-344 回答ありがとうございます!
おかげで出来ました。ありがとうございました!
延々と右にスクロールするボスステージを作りたいのですがステージをループさせるのは可能なのでしょうか?
またボスが登場するときなどに画面を揺らす効果を付けたいのですがよくわからないので教えていただけないでしょうか?
なんとなくviewに関係ある関数を使うのだとは思うのですが・・・
ループの方法はいくつか思いつくけど全部力技だからもっと賢い人のレスに任せた
画面を揺らすのはviewで合ってるよ
view_*portとview_*viewの区別が最初はつき辛いから注意
簡単に言うなら、view_*viewがビデオカメラのレンズで
view_*portはビデオで撮った内容を映写するためのプロジェクターだと思えばいい
view_enabled = true; //view機能をONにする
view_visible[0] = true; //0番目のviewを使う
//まずはカメラで撮りたい場所を決める
view_xview[0] = 0; //ルーム内の座標x=0と
view_yview[0] = 0; //座標y=0から
view_wview[0] = 640; //幅640pixel
view_hview[0] = 480; //高さ480pixelの範囲をカメラで映す
//撮った内容をスクリーンのどこに映写するか決める
view_xport[0] = 0; //座標x=0と
view_yport[0] = 0; //座標y=0から
view_wport[0] = 320; //幅320pixel
view_hport[0] = 240; //高さ240pixelの範囲に映写する
こうすると、カメラで撮った範囲がスクリーンの左上に320*240に縮小されて写るはず
(スクリーンの大きさは640*480ってことにしとく)
ここまで出来たら、view_xportとかview_wportとか色々変えて
何が起こってるのが自分で理解してみるといい
丁度プロジェクターをいじってるような感じだね
次はview_xviewとview_yviewを変えてみる
これはカメラを動かすことと一緒だってわかるはず
それが出来たらあとは簡単
画面を揺らすってことは、つまりカメラを揺らすってことだから
view_xview[0]とview_yview[0]を適当に変えればOK
昔苦労したから色々書いたけど、とりあえず自分で色々触ってみるといいよ
ちなみにGMLじゃない方法は知らない
特定オブジェクトのインスタンス数を調べるにはどうすればいいのかしら
>>349 つ instance_number(obj)
ニホンゴヘルプヲヨメコノヤロウ
GM8.1はbGMスクリプト使えないのかなあ・・・。
Illegal array index in script "bGM_play".
trying to access argument[3], but only 3 arguments have been supplied.
ってエラーでて起動できないです。
>>352 そのエラーをまんま翻訳すればわかると思うが。
要は値が足りてないってことで、以前のGMで省略できてたところが
8.1では省略不可になってるってこと。
>>353 うう、つまり自分で修正コード入れない限り再生できないってことですか。
GMLを最近学び始めた俺には少し厳しい・・・・。
修正の必要はないと思うけどな
bGM_play(filename, volume, is_loop, pan, pitch);
だからループやパン・ピッチの値を全部入れればいいんじゃね?
>>355 お、おおおお!たったこれだけのことだったのか・・・!
危うくGM7で再出発するところでした。再生できました。
本当に感謝します。
くだらない質問でスレ汚しすみませんでした。
省略不可になってるとか、どんどん使い方が厳しくなっていくな
横着するなってことなんだろうが
よこしま氏は省略した時のスクリプトをちゃんと組んでるんだけど
値を見るタイミングがそのコードを見た後だったのが関数のコール時点に
変更になってるせいだと思う。YoYo側はそっちのほうが楽にエンジン作れるからいいんだけど、
ユーザーにとっちゃ厳しい変更だよね。
GMLからSet time lineみたいにタイムラインを使いたいのですがtimeline_add()の()部分にタイムライン名を入れるだけでは使えないのでしょうか?
Wrong number of arguments to function or script.とエラーが出てしまいます
なんでニホンゴヘルプ読んでから質問しねーんだよぉぉぉぉぉ!!
timelin_addは引数をとらない。そしてそれはタイムラインを新しく作るための関数だ。
タイムラインを開始するには
timeline_index = 開始したいタイムライン と代入して
先頭から開始したかったら timeline_position = 0 にして
さらに、GM8以降だったら timeline_running = true にする。
>>361 ありがとうございます
ヘルプのtimeline_indexは(番号)だとか書いてあってまた違うものだと思っていました
代入する物なのですね
コードの中でaaa = x+yと書いた場合、以降aaaと書く度に計算されてるんだよね
ステップ中に一度出した計算結果を、再度計算抜きでそのまま参照する方法ってある?
計算内容によってはいくらかパフォーマンスが上がりそうな気がする
aaaという変数にx+yの計算結果が入っているだけ、計算式が入るわけじゃない
その計算結果を出すために毎回計算しているという事は無いんですか?
スクリプトaaa「x+y」
スクリプトbbb「hspeed+vspeed」
instance_create(aaa(),bbb(),object)
↑
この場合でもそれは同じですか?
スクリプト呼び出しの場合は毎回計算される
変数を読むだけなら計算された結果の値
step毎にaaa = x+yの計算はされる
計算するための条件をつけるとかで多少は改善できるかもしれないけど
単純な数値だけの計算だと、あまり関係無いと思う
文字を数値に変換したりを毎step繰り返すと重くなるけどね
>>365の場合
x+yの計算→hspeed+vspeedの計算→そしてオブジェクトの作成
なるほど
スクリプトはコードが綺麗にまとまるので頻繁に使っていましたが
内容によっては直接書いたほうが良いという事なんですかね
どうもありがとうございました
条件次第だけど必要なときだけ計算させて使うって方法があるかな
x+y位置の情報を得るなら、キーを押して移動した後に
変数=aaa()とかで結果を入れるようにするとか
移動しない限り変数の値が書き換わらない
x+yというのはでたらめ過ぎたのでもう少しまともに書くと
スクリプトPD「point_direction(x,y,target.x,target.y)」
if (PD() > 0) && (PD() <= 90){ 処理 }
if (PD() > 90) && (PD() <= 180){ 処理 }
if (PD() > 180) && (PD() <= 270 ){ 処理 }
if (PD() > 270) && (PD() <= 360){ 処理 }
このPDの計算をステップ中一度だけに出来ればコスト削減になるのではと考えたのです
スクリプトよりもPD = point_direction(x,y,target.x,target.y)又はvar PD(略)としたほうが良いのでしょうか
処理を分岐させるための変数を「PD」、
point_direction(x,y,target.x,target.y)の計算をするスクリプトを「ScriptPD」
としたときに
PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む
if (PD > 0){ //ついでにこっちのコードもすっきり
if (PD <= 90){処理1}
else if (PD <= 180){処理2}
else if (PD <= 270){処理3}
else if (PD <= 360){処理4}
}
大変為になりました
どうもありがとうございます
何度もすみませんがvarでスクリプトを代入した場合でも
>>370でしょうか?
varは代入ではなく変数の作成。
ScriptPDの返す値は0〜360の整数で、GMLは変数の頭文字に数字が使えないので
var ScriptPD();とするとエラーが出る(はず)
var PD ;
PD = scriptPD() ;
これなら
>>370も一度の計算で大丈夫ですよね?
ごめん、まともに考えてレスしようと思ったけど、処理速度ほとんどかわらんのだからPD=point_direction(x,y,target.x,target.y)でいい。
その後の処理は同じイベントか同じスクリプト内でやるんならvar宣言すれば多少はメモリ節約にはなるけど微々たるもんだから気にする必要はないと思う。
ちなみに単純にPD=ScriptPD()なんてやっても多分何も返してないんだから0が代入されるんじゃない?
スクリプトの最後にreturn(PD)とすればPDに代入されたもんが返ってくる。
でも上の例じゃスクリプト内でvar宣言してないPDは、呼び出したオブジェクトのローカル変数になるしreturnも必要ないし
バージョンによって違うのか知らんが、スクリプトは関数的な扱いだから変数に関数の結果を代入するのならPD=ScriptPD()という書き方が正しい(つかそうじゃなきゃエラーになる)
そしてpoint_direction自体が関数なのだから、二度手間にしてる分余計な処理が増えてると思う。
あとvar宣言は変数の作成ってか、一時的に使う変数みたいなイメージ。
その場でしか使えない変数だから、スクリプト内で使ったらどこにも定義されてない変数になる。(呼び出し元のオブジェクトのローカル変数にもならない)
それとたかだか何十桁の計算をしても処理速度はまず変わらないから気にしない方がいいよ。計算機ですら計算しても一瞬で答えが出るんだから。
長時間に渡ってのレスありがとうございます
基本的な数値計算なら細かいことは気にしなくても大丈夫なのですね
極端な話
>>369でもパフォーマンス上は問題がないと
PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む
↑
この事についてのソースはありますでしょうか
勿論疑っているわけではないのですが、ネット上で見られるなら勉強の為に見ておきたくて
>377
それは間違い。
ScriptPDというスクリプトを参照し、中身のpoint_direction関数を実行、結果を変数PDに代入 という一連の流れをやっている。
PD=point_direction(...)でやった場合は、point_direction関数を実行、結果を変数PDに代入 だけになる。
やりたいことは多分、前ステップとの座標を比較して、違いがあれば処理みたいなイメージかもしれないけど
結局前ステップとの比較と言う「計算」をしている以上毎回計算しなくて済むわけがないからあんまり意味ない。
まぁ処理速度的な話になるならどれにしても大差ないだろうけど
パフォーマンスに関して考え出すなら、GameMakerというよりはベースになってるDelphiを調べた方がいいんじゃないかな
GameMakerはライブラリ的な位置付けになりそうな感じがするから、GameMakeで何も処理しない状態のパフォーマンスから計測していけば、単純にどれだけ時間がかかるか出るかもしれない。
とはいえ1フレーム内でルームの描画、インスタンスの配置、ステップ内各処理、描画処理などなどをやってんだから計算程度じゃ0.000...秒という世界だろうけど。
間違いというのは「PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む」でしょうか
>>370にこのように書かれていたのですが
処理速度的な事を訊きたかったとはっきり書かなくて申し訳ありません
実際に
>>369の様な事がしたいわけではなく同じスクリプトを何度も使っている例として出しただけです
どれも大差無いということならゲームを作る事に集中したほうが良さそうですね
>>379 素人の手の出る領域では無さそうですね
おとなしくゲームの完成を目指します
ありがとうございました
そう。 最終的に計算して代入してるから同じ。
例えば何かしら計算をさせる処理を複数のオブジェクトでやった場合無駄になる。
1ステップで何度も計算する事になるからね。
だから計算させるためのオブジェクトを一つ用意して毎ステップ1度だけ計算させるのがスマートだと思う。
これは個人的なやり方なんだけど、オブジェクトごとに数値をもっていると管理が大変な場合が多いからPersistentな管理用のオブジェクトを作っておくのはおすすめ。
GMLのスクリプト呼び出しはオーバーヘッドがすごく大きいんだよなあ
GMに直してほしい機能のうちの一つだな
あるインスタンスの配列に違うインスタンスの変数の値を使うにはどうすればいいのでしょうか?
385 :
384:2011/06/06(月) 22:54:53.16 ID:YrcUqfkL
あ、配列の添字にです
386 :
384:2011/06/06(月) 23:16:40.20 ID:YrcUqfkL
自己解決しました
単に他の部分でミスしてただけでした
>>370の「PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む」について簡単な実験をしてみた
本当に毎回計算していないのかはわからないけど、それっぽい結果は出た
糞忍法で長文が書けねえので分割
@
スクリプトscr
test+=1
return(point_distance(0,0,mouse_x,mouse_y))
オブジェクトobj
クリエイトイベント
test=0
ステップイベント
scr()
ドローイベント
draw_text(0,0,scr())
draw_text(0,10,test)
これを実行するとx0,y0からマウスまでの距離と変数testが表示され、変数testは1ステップ毎に1増えていく
A
ドローイベントを
draw_text(0,0,scr())
draw_text(0,10,scr())
draw_text(0,20,test)
これを実行するとマウス距離が2行表示され、変数testは1ステップ毎に2増えていく
B
ステップイベントを
SCR=scr()
ドローイベントを
draw_text(0,0,SCR)
draw_text(0,10,SCR)
draw_text(0,20,test)
これを実行するとマウス距離は2行表示されるが、変数testは1ステップ毎に1増えていく
以上
Aはスクリプトを2度呼び出しているからpoint_distanceの結果は変わらないけどtestを2回加算している事になる。
毎回計算しているっていうのと毎回加算しているっていうのは微妙に意味が違うような気はするけど、確かな結果だね。
スクリプトを呼び出した時点で計算はされている。
それを変数に「一度」入れれば同じ計算を1ステップ内で何度もする事はない。けど何度も計算しなければならない状況もあるから注意。
使い方次第だとは思う。
>>391 なぜだか結果の変わらない物を使った方が良い気がしてた
スクリプトに返させる値をtesterに変更してAの様にするとtest,tester共に2づつ、Bの様にすると共に1づつ増えていった
実験の結果から「PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む」は(おそらく)正しい
これは
>>363の望み通りの物だと思う
hspeedとかを徐々に増やす、減らすようにすればいいだけじゃないか?
test
忍法帖orz
>>393 左右移動にhspeedを使って、プレイヤーオブジェクトの生成イベントでfrictionを0.3程度に設定するとうまくいくかもしれない
397 :
396:2011/06/12(日) 20:29:55.89 ID:HJZIl/jx
ver.8.1にて。
テストプレイしかしてなかったから知らなかったぜ。
exe吐き出したら画面にロゴ残しやがった。
これPro化しないとまともに配布もできなくなったのかよ…
当初の段階だと、8.1 Liteはexe化すらできなくする予定だったのを
ロゴ付きならできるようにしましょうと変更されたんだよ
結局商売だからこういう流れになるのは仕方ないんじゃないかな
購入する予定がないなら8.0 使えばいいと思うよ
GML使える人ならHSPとかに移ったほうがいいレベルの糞ツールになりかけてる
ツール作るならまだしもゲーム作りなら手軽さが数レベル違うわ
Proって言ってもせいぜい数十ドルだろ?
払った方早い
あらかた完成してから気が付いたからもう買うしかないんだけどね。
てか40$って値上がりしてたのか、これまた知らんかった。
20ドルでも高いと思って渋ってたのをやっと買おうと思ったのに値上げ…
普通に1万以上するツールが溢れてる中に比べれば日本円にして3200円程度なら安いだろ
GMLは割りと色んな言語に通じるものがあるがHSPは微妙だし
日本語入力ができないとこ以外は結構いいと思うけどな
8.1 が高いか安いか言われると若干割高な気がするな
GM自体高機能なソフトじゃないし
値上がりするのはしょうがないけど
毎回中途半端な機能を適当につけて新機能ですっていうのは正直やめてほしい
通販で2個セット+おまけで1万円の大特価と同じ印象を受ける
最初から40ドルです、どうですか。ってのなら良かったかも知れないけど
つい先日まで20ドルだったのが何が増えたのか良くわからないバージョンアップで倍になるってのが心理的に来るなあ
高いだの他のツールのがいいだの言うなら買わなきゃいいしGMを使わなきゃいい
割に合った開発環境をそろえるだけの根性も知識もないからGM使ってんだろ 文句言うな
何様だよ
使ってて糞な仕様変更されたんだから文句言うに決まってんだろ
タダ飯食って不味いと言うのか
ツールによっては年間更新料で数万取るようなツールもあるし、強制で仕様変更されるのが普通
過去のバージョンが残ってて、未だに無料で使えるならマシだろ
文句を言うならタダ飯でも食わなきゃいい話
他ツールの普通を語ってどうするわけ?
GMの話題なんだけど?
語ってるんじゃなく比較してるんだよ
GM高いよな、クソだよなと文句を共有してるのがGMの話題ではないと思う
それならいい所を見出して、うまく使う方法を考える方がよっぽど有意義だろ
最近あった値上がりや無料版のゲーム内ロゴはGMの話題だが
大した機能も追加されてないのにうまく使うもなにも無いだろ
それにそう言うならうまく使う方法を教えてくれよ
当然考えてあるんだろ?
比較的ASやJSライクなGMLというスクリプト言語はかなり親しみやすいし、実際は他の言語の入門としても使えるだろうね
Delphiの開発の敷居が一気に高くなった中でDelphiベースのアプリケーションが作れるソフトがGMだけだし
仮に金を払ってもDelphi XEより遥かに安い。勿論機能も劣るけどデータベースとかまで使わないだろ
更に8.0以降、特に8.1はiPhoneアプリの開発も出来るようになってるだろ。それをロイヤリティを取らずに商用で使えるツールなんてまずないぞ
値上がりやロゴなんて7.0になる前からあるものだし、個人的な感想を共有するのは自由だけどネガティブ方向に持ってって何も生まない議論をするだけ無駄だろ。
それなら文句を言う前に使うのをやめろって話をしてるだけ しかもタダで使ってるなら文句を言える立場にないだろ
なるほどなるほど
で、個人的な感想を共有するのは自由なんじゃないの?
こんなの一時的な話題じゃん
そもそもなんで文句を言う前に使うのをやめろ、と言える立場にいるの?
何も生み出さない馴れ合いなら他所でやれってハッキリ言わないとわからんのか
立場的な問題じゃなくGM自体の評価を無駄に下げたくないだけ。
互いに無駄に酷評する立場でもないだろ そこが気に障ったなら謝るよ。
この議論も何も生み出さないからとっとと切り上げたいんだが、そろそろいいか?
おいらっち他ツール使ってるんやけど?w、みたいのが来たと思って絡んだ
今は反省している
試食があったので食ってみたらまずかった
「これ不味いな」と言ったら隣に居たおっさんが突然顔を真っ赤にして説教してきた
言いたい事はわかるけど試食とタダ飯は違うからな
GMで外部エディタを設定できるけど、Notepad++とかに設定してスクリプト編集して保存すると警告みたいの出るんだよね
外部エディタの設定まではできるけどその後の使い方がいまいちわからない
上手い事使ってる人がいたら教えてほしい
GMの形態とタダ飯は違うからな
>>420 煽る暇があったら警告の内容を書くもんだよ。フリーダムすぎるだろ
外部エディタは設定すると、外部エディタが起動する前に
GMの一時フォルダにスクリプトのコピーをとったランダムな名前のテキストファイルが作成され
外部エディタはそのテキストを操作するだけ。
保存は別名保存ではなくそのまま保存
外部エディタを閉じると本体のスクリプト内容が更新される
仕様として外部エディタ起動中はGMの一切の操作はできない
GM誰得使えない機能のうちの一つ
何か仕様変更とか値上げとかでGMをクソ扱いした事に対して騒いでるみたいだけど別に誰もクソ扱いしてないよね
ただ値上げしちゃって買い難いとかその程度の話題だったのによくここまで騒げるよね
批判を批判して、その批判をさらに批判する
みんな自分が絶対正しいと思って
ゲーム作成ツールは多少糞でもいい金になる
ぼろい商売っすなぁ
どうでもいいな
それはそうとds_grid_writeってかなりの曲者っぽいな
試しに100x100のgridを書き出してみたらものすごい容量になって吹いた
入ってる変数の型が判ってるならバイナリで直書きした方が軽い
まあ今回(8.1)から割とこまめにアップデートが来るのがせめてもの救いか?
GMよりいいソフトってなにかあるの?
MF2みたいなコードが書けないのは論外
思い付く限りないよ
金額まで考慮して挙げるならGM6あたり
なんかブレンドモード変更するとスプライトが1ドット分太るんだけど前からこうだったっけ?
新しいバグなんて事は無いのかな
マルチプレイを作成中なのですが、ヘルプの説明が不十分すぎて全然わかりません
とりあえず、ローカルIPの固定と、ポートの開放は行ったのですが、
ホスト側のIPがグローバルなのかローカルなのか、参加側のIPがグローバルなのかローカルなのか・・・
その4通りだけでなく、いろいろ試しましたが全然つながりません
ひとりで2つ起動してやるとつながるのに・・
自分じゃやったことないけど
YoYoGamesのフォーラムにもっと高機能っぽいDLLがアップされてた気がするから
いっそそっちを試すのもアリかも
ヘルプが不十分かは謎だが
39dllってやつ?英語だけどがんばってみる
ヘルプの説明はガチで適当だよ・・・
機能として使えるかどうかは別として
mplay は順序立てのヘルプだけじゃなくてチュートリアルもあったと思うけどな
39dll使ったらできました!ありがとうございました!
思ったより簡単だったなあ
しかしラグが・・・アクションゲームはやはり無理か・・・
>>433 そうそうそれ、って言おうとしたらできたみたいで良かった
探せば結構色んなことができるからフォーラムマジおすすめ
SLGとかTCGならラグも気にならないんだけどね…
ラグあまり気にならないレベルにできた
やべえめちゃくちゃ面白いこれ
アクションゲームでラグほとんど無く出来たのか?
そうなら超羨ましいんだがw
俺もネット対戦できるアクションゲーム作りたいぜ
いや最初の状態と比べたら相当よくなったって感じか
キーを押したときに情報を送って、1秒間に5回座標送ってラグを直す
たまにワープするけど問題なく遊べる感じ
なるほど
GameMakerでも結構まともなマルチプレイのゲームを作れるっぽいんだな
わくわくしてきた
また問題点がでてきた・・・
39dllで例えば4人対戦とかするとき、サーバーじゃない人同士での情報の共有ってできないのかな
今のままだと、ポート開放してる人しか部屋をつくれなくて、部屋に入る人はその人のIPを知らないといけないから
俺がサーバーになって、部屋を作る、部屋に入るの選択画面になった時点で実はもう俺の部屋に入っていて、
その下に擬似的に部屋を作るようなシステムを作ってるんだけど、他人同士で情報が共有できない・・・
>>430 やっぱりなんかおかしいな
色反転
draw_set_blend_mode_ext(bm_inv_dest_color,bm_inv_src_color);
draw_self();
draw_set_blend_mode(bm_normal);
なぜかスプライトが上下左右に膨らむ、四角なら丸っこくなる
さらにスプライトの絵を別の物に描き直して再度ゲームを実行すると
描き直したスプライトの絵が膨らんで描画され、なぜか描き直し前のスプライトまで一緒に描画される(こちらは膨らまず)
修正小出しにして、アップデートするたびに課金を要求するのか、ボロい商売だな
アップデート来たぞ
>430のブレンドモードは直ってなかった
バグとして報告すべきかなどうやるのか知らんけど
あと日本語が使えるようになった
でもコメントだけにしといたほうが良さそう
ゲーム中に出すメッセージとかは普通に日本語化できるしな
マジか>日本語
8を持ってても8.1は再課金しないといけないんだっけ?
8.0 をスタンダードにしていれば、8.x へのアップデートは無料が保証されているはず
448 :
名前は開発中のものです。:2011/07/05(火) 00:39:10.57 ID:C2W0zrsg
ゲームの中で動画再生ってできますか??
できるんだったらやり方も教えてくれればありがたいです
449 :
名前は開発中のものです。:2011/07/05(火) 00:45:05.37 ID:C2W0zrsg
a
450 :
名前は開発中のものです。:2011/07/05(火) 00:46:13.07 ID:C2W0zrsg
↑すみません!間違えて書きこんでしまいました!
ゲーム画面中に動画再生するのは無理。
あるかどうかは不明だけど
>>432の言うYoYoGamesのフォーラムで、そういう機能の外部DLLを探すか
アニメーション用に用意した画像を切り替えながら、音を流すかしかないだろうな
453 :
名前は開発中のものです。:2011/07/06(水) 17:18:24.06 ID:0vJqpPm3
いやよく読めよ・・・
>>452が言うようにDLL探せばそれくらい普通に出来る
ググっただけでGmmovieとか出て来たからこれ使ってみれば?
フォーラムとか説明が英語ってだけで敷居高く感じるからなあ
DLLとかは初心者にとっては得体のしれない物なんだよ
gmmovie.dll を試しに使ってみたが、動画を背景のように扱うことは出来ないみたいだねぇ、残念。
これは便利そうと思って試したら最初で躓いた
{
room_caption = "FPS: " + string(fps);
draw_set_font(font0)
draw_text(0,0,"fps= " + string(fps)) ;
}
「font0」をデフォルトのまま作成して
空オブジェクトをルームにおいてSTEP実行したがテキストが表示されない。
room_caption の部分は動作しているのでスクリプトは動いているはずなんだが。
日本語環境だと英語も使えないとか?
自己解決
STEPイベントじゃなくてDRAWイベントじゃないとダメなんだな・・・。
stepイベントのタイミングでも、実際には画面バッファには書き込まれてる。
だけど、drawイベントに入るときに背景やら何やらで全画面が再描画されるから反映されない、
という仕組みであることを覚えておくとよいよ。
へえそれは知らんかった。
surface以外でその情報が役に立つ場面ってあるかな?
>>457 stepとdrawで躓くのはGMLで誰もが通る道、だと勝手に思ってる
draw以外でも再描画する命令を使えば描画できたりするんかいな?
2つの直線が交差する座標を計算したいのですが
どのようなコードを書けばいいでしょうか?
分かっているのは、2つの直線の始点と終点だけです。
酒に酔った勢いで、うろ覚えで間違ってたり遅いかも、細部は調整必須
{var ax0,ay0,ax1,ay1,bx0,by0,bx1,by1;//0:始点 , 1:終点
ax0=argument0;ay0=argument1;ax1=argument2;ay1=argument3;
bx0=argument4;by0=argument5;bx1=argument6;by1=argument7;
global.calcx=0;global.calcy=0;//結果
var sl_a,sl_b;sl_a=(ay1-ay0)/(ax1-ax0);sl_b=(by1-by0)/(bx1-bx0);//傾き
var ArrayA,ArrayB;//行列式Ax=B
ArrayB[0,0]=ay0-sl_a*ax0;ArrayB[0,1]=by0-sl_b*bx0;
ArrayA[0,0]=-sl_a;ArrayA[0,1]=-sl_b;
ArrayA[1,0]=1;ArrayA[1,1]=1;
var detArrayA;detArrayA=ArrayA[0,0]*ArrayA[1,1]-ArrayA[0,1]*ArrayA[1,0];//これ名前忘れた
if(detArrayA==0){global.result=false;return -1;}//解なし
var invArrayA;//逆行列
invArrayA[0,0]=ArrayA[1,1]/detArrayA;invArrayA[1,1]=ArrayA[0,0]/detArrayA;
invArrayA[0,1]=-ArrayA[0,1]/detArrayA;invArrayA[1,0]=-ArrayA[1,0]/detArrayA;
//交点計算
global.calcx=invArrayA[0,0]*ArrayB[0,0]+invArrayA[1,0]*ArrayB[0,1];
global.calcy=invArrayA[0,1]*ArrayB[0,0]+invArrayA[1,1]*ArrayB[0,1];
global.result=true;return 0;}
detArrayAが行列式でAx=Bは行列方程式だね、どうでもいいけど
>>463じゃないけど
>>462のために一応解説すると、簡単に言えば連立一次方程式を解いてるだけだね
つまり
直線@:y = ax + b
直線A:y = cx + d
のa〜dをそれぞれの始点と終点から割り出して、あとは交点を計算するだけ
それを一般的にやるなら行列方程式になるんだけど、もし複雑だったら
a〜dを割り出した後
x0 = (d-b)/(a-c); //交点のx座標
y0 = a*x0 + b; //交点のy座標
だけで足りるはずだよ
ただし a = c の場合はエラーになるから注意
>>463-464 ありがとうございます。
数学は苦手なので、原理はよくわかりませんが、コピペしたらうまくいきました。
while(x=1 && y=1)
とした場合、x=1とy=1の両方が真の場合ループが継続するのでしょうか?
それとも、片方のみが真の場合ループになるのでしょうか?
同値判定は==な
&&は見たまんまアンドだから二つとも真でないと全体が真にならない
GMは()内の=は==として扱う
delphi は同値比較が=で、代入が:=だから部分的な記述としてはいいんだけど
delphiの演算子も混ぜて使えるってのはこれから覚える人にあまりよくないよなあ
全体的にみるとGMLはプログラミング勉強用として優しくない仕様だと思う
GMLの演算子はhelpにあるexpressionに合わせるのがいいよ
変数の定義が必要ないから、文字変数と数字比較しちゃってエラーはいたりするよね
>>466 実験してみたけど、片方が偽だとループが終わるね。
逆に||だと両方偽の時ループが止まる
こういうさ、簡単にそれこそ20秒で確認取れるようなコードをさ
なんで自分でやって確認しないのかすごく気になるんだけど
実際に作成中のゲームのコード内で思いついて、実験するには色々組み合わさってるのゲーム内で確認しなきゃならなくて面倒
かといってわざわざ新しく実験用の組み上げるのも面倒、というかどうすれば実験出来るのかって感じじゃないの
ものによっちゃそうだけど
>>466くらいなら簡単に実験できるじゃん
デバッグウインドウで結果見るだけでもいいし。
まあ今でこそ新しい関数は簡単に組んで勉強したりするけど
始めたての頃はその辺要領つかんでなかった気もする
そろそろ8.1有料版に移行しようと思ってるんだけど
8.0とくらべて不具合があるのは
>>430くらい?
リネームしようとすると何故か検索になる不具合もなかったっけ
あと操作性の面でRoomのCtrl+右クリックと右クリックの動作が入れ替わってるのと
ホイールがスクロールじゃなくて拡大縮小になってる
まあ8.1はアップデートが頻繁にあるからいずれ修正されるという期待は持てる
しかしこんなに修正があるって事はバグもたくさんあったって事
8.0はアップデートなんて無かったけどバグ関連はどうだったんだろう
>>477 これ見てみたら結構怖いバグあるな
file_copyが動かなくて8.1放置してたけど修正リストにあって吹いたわ
もしかして8.1からmbtext使えなくなった?
コードエディターがUnicodeになったとかstringのフォーマットが変わったからなのか・・・
日本語描画中心だったから本当に困った
mbtext初めて知ったけどこれは便利そうだな
ありがとう
8.1から引数が省略できなくなったと聞いたことあるけど
前は勝手に0が入ってたけど今はちゃんと(0,0,0,0)とか書かないとエラー出る
いやそのエラーではないんだ
最新版だとGlobal Game Settingでエラー吐く吐かないの設定できるようになってるし
もうちょっと詳しく言うと、mbtext("あいうえお", 0, 0)で座標(0, 0)に何かが描画はされるんだけど
"あいうえお"じゃなくてまったく意味不明の文字列なんだよね
jfontmakerとmbtextはSJISコード対応のだったはずだから、
もしかしてGMの文字列のコードが変わってて、そのせいでうまく読めなくなってるのかなと
とかなんとか言ってみたけど、mbtextのソースすら理解できない俺にはこれ以上わからないんだ
もし似たような状況になった人がいれば教えてほしい
連カキコすまん
↑の例はmbtextじゃなくてmbtext_drawの間違い
Version 8.1.106 から、コード上のマルチバイト文字を内部でユニコードとして処理するようになったため、現状 mbtext_draw() を使用することは不可能。
mbtext_draw() をユニコードで処理するように書き換えるしかないかも・・・かなり面倒なことになりそうだけど。
しかし、draw_text系は6.0の時から表示結果が変わらないし、何のためのユニコード対応か、理解できない。
完全に終わったな、日本語の表示すら不可能になるとか……
これだから海外製のツールは糞なんだよ
全てのツールがこんな糞国の言語に対応してくれると思う方がおかしいんだよ
しかし確かに前まで使えてた物が使えなくなるってのは改悪以外の何物でもないな
ユニコードに対応したといっておいて対応できてないのが問題な気がする
エディタ中だとカーソル位置がずれたり文字位置ずれたりで
テキスト描画はフォントの仕様で描画できないし
大体強制ユニコードならフォント設定欄にあるcharset設定しても意味ないじゃない
頑張ってくれてるのはわかるんだけど、8.1はまだオープンベータっぽいのは否めないよね
エディタをユニコードにしたのも苦肉の策って感じだった
文字位置ずれるんじゃ殆ど使い物にならないし・・・
日本語描画が出来なくなったら本格的にGMがオワコンになってしまう
image scale にマイナス渡すと画像もマスクも狂うのか
反転分の画像やるのめんどくさいな
mod もそうだけどやってはいけないことがあるなら
それっぽい値を返すのではなくエラーや警告をだしてほしいよ
まじかよ、xscaleに-1とか指定して反転するの使ってるのに
バージョンアップしたらダメになるのか……
いや逆に8.1だと修正されてる
画像が状況によっておかしくなるのは少なくとも7.0の頃にはあって
8.0だと反転したり画像の一部がスクリーン外にあると表示が乱れるバグがある
みんな最新版使っているわけじゃない
今のところ最新版だと日本語回りが完全自作しないといけなくなったり
まだ見ぬバグがありそうだし様子見の人もいるんじゃないかな
GMに限った話じゃないけど有料なら移行する理由がなければ移らないと思う
極端な例だけど外人作成の去年完成したIjiってゲームは5系の奴で作ってたらしい
前から興味あって、今日DLしてみた。
楽しいなこれ
世の中の人間プログラミングが難しいものとして考えすぎ
主観だが外国語を習う程度の難しさでしかないというのに
難しいじゃん
外国語習うよりよっぽど簡単だよ
話すための言葉っていうのは時代とともにどんどん使いやすく変化していくから、新しく覚えようとする人には覚えにくくてしょうがない
その点プログラミング言語は、あらかじめ構文が決められてて例外もないからそれだけで相当覚えやすいわけだ
プログラミングできなくてもゲームが作れるGMのスレでどうしたの?
褒めて欲しいの?
プログラミングできなくてさーせん
外国語より相当難しいと思うけど
インクルードだかなんだかとかそういう「お決まり事」だけでもう限界
Cだとソフトが必要みたいだしそのソフトでも単純にソースコードだけじゃなく色々あってややこしい
BASICとかHSPみたいに単純だと良いんだけど。自由度を上げようとするとそうなってしまうのかね
GMLは2Dゲーム専用言語としてはかなり使いやすいよね
素人質問申し訳ないんだけど、悪魔城みたいなノリのMAP移動頻繁にする探索タイプの横アクションって初心者には作るの難易度高い?
画像さえ用意できるのならGMならどうにでもなるレベル
なるほど、サンクス。
頑張ってみる
更新でコードエディタのバグ直したとあったから確認してみたけど
全く変わってないように見えるな
試しにユニコードで日本語描画やってみたけど、漢字だけはどうにもならないな
フォントを画像化すると中国語と韓国語も含んでしまうからリソースが無駄に膨れ上がってしまう
フォントまわりは更新のたびに悪化の一途をたどってるな
いつも悩むのだけどSFCのマリオカートみたいな2Dなのに奥行きのあるゲームってどうやって作ってるのだろう
DOOMだっけ?ああいう感じのはパノラマ画像使って作れるのではと思ったのだけど、
レーシングゲームみたいに複雑にうねった道で奥に進んでいくってのはどういう仕組なのかな
2D画像をなんとか変換して奥行きもたせてるんじゃなかったかな
イメージとしてはぺらい紙を目線に平行にするみたいな
拡大縮小を駆使したらGameMakerでもできそうだけど、実際どうなんだろう
SFCのマリカーはコースにうねり、起伏など高さがない疑似3D(2D)
64、wiiのマリカーは3D
2Dだと平面を走っているだけだから基本的にうねったりはできない
複雑なのを作りたければ3Dを覚えるしかない
game makerで3Dはまだ人柱用な気がする。エディタも3Dに適してないし
というか、素直にUnityとか使った方がいいような>3D
>>491 8.0でimage_xscale=-1にしてみたが絵も判定も何の問題もなかったぞ
もしかして判定も反転するのをことをいってんのか?
たまに縦に1〜2ピクセル伸びる問題なら確認したが
491じゃないけど、かなり前に確認したやつ
ttp://www.gazo.cc/up/51568.png 全部同じ画像でどれが何に対応しているかは忘れた
ドット絵調の奴だとすごく汚く見えるんだよなあ
判定はしらん。丸めの段階で画像と当たり判定はずれる
結構前に公式フォーラムで判定がおかしくなるという話題は見たことはある
>>512 うーんわからないな。GM8使って1年過ぎたが俺は一度も起きたことがなかったよ。
そういやsprite editerが止まるバグも俺は一度もなかったし…パソコンによるものなのかな。
とにかく情報ありがとう。
値上がりしたとか言う話題出てたけど、前のバージョンのも高くなってるの?
ていうか前のバージョンのまだ課金出来るの?
素人がまず最初にやるべき事とか、参考にするべきサイトとかのオススメある?
サンプルゲームを日本語ヘルプ見ながら弄って多少覚えた
最新版の追加機能とか全然わからん
ちゅうがくせいれべるのえいご()
>>516 サンプルゲームか、なるほど。
ありがとう
俺は8.1が出た直後8.0を課金したよ。両方使えると思ってね。
でもアップグレードできなかったよ。アップグレードできなかった人はのは結構いたみたいだ。
8.0liteは今ダウンできないぽいけど俺は前に持っていたから課金できたよ。
image_angelの代わりとして使えるものってある?
素人+not課金だからよくワカンネ
スプライトエディターのAnimation -> Rotation Sequenceで回転した絵を作って
オブジェクトのimage_indexを欲しい角度のサブイメージ値に変更すればできる
ただしこの方法だとアニメを付けるのが難しいのと細長いスプライトでも大きな正方形にしないといけない
メモリも大量に食うしな
8.1からはLite版でもimage_angleが使えるようになってるよ
draw_sprite_extも解禁されてるけど、image_blendだけは使えない
524 :
名前は開発中のものです。:2011/08/17(水) 00:55:18.81 ID:ziSuWo4f
とりあえず,mbtextを日本語に対応させるのには成功した.
うおおおおおおお本当か
8.1でってことなら救世主じゃないか
対応表作ったのかマジで乙
情熱のなせる業だなw
5.3だかなんだかの旧verでやってる初心者なんだけど、やっぱり日本語対応差し引いても新しいやつのがいい?
8.1対応きたあああああああああああああああ
触ってみたけど、本当に日本語描画できるじゃないか、感動した
Unicode8からSJISへの写像を手で作ったのか…その努力に感謝する
見たところ、第二水準漢字には対応してないみたいだね(手で作るならそりゃ大変だけど)
だったらリンクにあるUnicode対応表から自動で(u8_bit1, u8_bit2, res_bit1, res_bit2)を割り出せないかな
素人の発想だからあれだけど、その対応表をcsvか何かにしてから読み込んで
それを(u8_bit1, u8_bit2, res_bit1, res_bit2)の組に変換するコードを組むとか
あとはそれを出力したファイルをGMで読み込んで
res_bit1[u8_bit1, u8_bit2] //(u8_bit1, u8_bit2)に対応するres_bit1
res_bit2[u8_bit1, u8_bit2] //(u8_bit1, u8_bit2)に対応するres_bit2
を定義するとかすれば手作業は省けるかもしれないけど
これだと配列のサイズが大きくなりすぎて問題かな
>>530 UTF-8からSJISへの対応表は、りーどみーに書いてある「JIS第一水準漢字・文字コード表」から自動生成させたものだから、そこまで手間はかかってなかったりする。
同じような感じで第2水準漢字も対応表があれば、実装できそうなんだけどなー
って書き込んだけど、普通にあったわ
ちょっと作ってくる
とりあえず、第二水準漢字にも対応させてみた
ダウンロード場所は、
>>525 と同じ所
といった独り言みたいになってるけど、これまた自分での確認だけでは不安だから、誰か試してみてほしい
早すぎるだろ!
仕事終わったら早速試してみるわ、ありがとう
GameMakerはじまったな
開発言語変わったとかどこかで見た気がするんですが
バージョン8以降になってから動作速くなったりしてます?
まだ7つかってるんですが。
久しぶりにスレ開いたら神降臨ですか。
日本語はsprite_partで一文字一文字書いていたからマジ助かる。
>>533 マジで乙
まだあんまり触ってないんだが、忘れないうちに記号の×が表示されないのだけ報告しとく
個別に報告しても役に立たないのはわかってるが・・・
いないんじゃないか。内容的に小中学生向けの本だし
内容が簡易であっても英語わからないとさっぱりだろうし
逆に英語が堪能なら付属のチュートリアル見るなりフォーラムで質問するなりしたほうがいい
いや、図示されてるから英語さっぱりでも内容まったく分からないということはないんじゃなかろうか?
まあでも、小中学生向けの本だな。
542 :
名前は開発中のものです。:2011/08/28(日) 01:43:08.09 ID:/6xx2dSK
質問です。
これ使ってAndroidで有料ゲーム作れますか?
あと、プログラム言語は何を使うの?Java?
544 :
542:2011/08/28(日) 02:04:41.25 ID:/6xx2dSK
自己解決した。
公式のWikiみたら「You can even sell them. 」ってあったから大丈夫そうだな。
ドキュメント漁ってライセンス調べてみるわ。
あと、言語はGMLって専用のスクリプト使うみたいだ。
スレ汚しスマン。
ゴメン、GameMaker以外での使用も不可だった。一応全文載せとく。
Resources
This folder contains all the resources (graphics, music and sound effects)
needed to create the games in the book plus a few bonus ones as well. There
is a subfolder for each chapter containing the corresponding resources.
In purchasing this book, the authors and publisher grant you permission to use
these electronic resources in your own Game Maker games, including for
commercial use. However, redistribution of these resources is prohibited, as
is their use for games not made with Game Maker.
Games
This folder contains editable versions of all the games created in the book.
There are generally several versions of each game showing them at different
stages of construction. There is a subfolder for each chapter containing the
corresponding game files. You are permitted to use these as the basis for
your own games. However, redistribution of the original games is prohibited
and the authors retain copyright of all the game concepts and names in this
book.
>>545 contentsを見る限りこれはゲームデザインの本じゃないよ
良くも悪くも"GameMaker"の入門書でしかない
>>548 うん、勘違いしてたわ。ゲームデザインの事は学習曲線ぐらいしか載ってないね。
続きのCompanionはサンプルゲーム3つのうち2つ(ZOOLは素材利用不可)はApprenticeの規約と同様。
(後、いつだったかフォーラムで"RPGの製作本も出るといいなあ"とかいう、コメントがあったけどたぶんそれは無いだろうなあ...)
●The Game Maker's Apprentice
なんでこれ突然
>>1に入ったの?
>>550 作者本人も執筆してるから、入れといた方がいいかなと思って。
最近頻繁にあったアップデートが無くなったな
一段落ついたのかな
今ブロック崩しを作ってて、ボールの反射で詰まってるんですけど、
参考になりそうなソース付きのブロック崩しはないでしょうか?
できれば反射の部分をBounceアクション使わずに処理してるやつがいいのですが……
なんでBounceだとダメなの?
横からぶつかった場合はhspeedを逆に、縦からの場合はvspeedを逆に、で良いんじゃない
他に方法があるのかもしれんけどhspeed=hspeed-2hspeedとか
>552
かもしれんね
スクリプトエディタの表示は改善される見込みがなさそうだが
それ以外は安定してきてるんだろうか
>>554 Bounceアクションだとごくたまにですが、L字型に並んだ壊れないブロックの内側とかに当たったときなどにスタックするんです
それでも今自力で作った反射よりはバグは少ないんですが……
あとボールが当たった面によって反応が違うブロックとかも作ってみたいので(PC98のぶろっくでポンみたいなの)、どうせ当たった面を判別させるなら
反射もそこでやらせたほうが都合がいいだろうと思いまして
GMじゃなくても、衝突した面を判定する方法(特にカドに当たった時の処理)が説明されているサイトなり本があればいいのですが……
俺の方法はダメなの?
>>558 単体のブロックの4面の真ん中の方に当たったときはそれで問題なく動くんですけど、カドにあたったり、並んでるブロックの境界に当たったときは
意図した通りの動作をしてくれないんです。スタックしたり一瞬止まったりとか
どっちかというと反射の方法よりその前の衝突面を判定する処理がうまくいってないんじゃないかと思います
ブロック崩しは正確さうpオプション入れた反射アクションで問題なかったけどな
ゲームの中の物体というのは連続的じゃなくて、数ピクセルずつとびとびに動く
衝突した時、ボールはすでにブロックの中にめりこんでいるわけだから
それが縦の辺に当たったのか、横の辺なのかという判断は実はけっこう難しい
ブロックを対角線で4つに区切って、上下左右どの領域にボールがあるか見るとか
より厳密に、移動前後の位置を線でつないでどの辺と交わるか計算する方法とかあるけど
必ずしもゲーム的に自然になるとは限らないしね。
不具合出ないようにするなら、まず縦横どちらかに反射させるか決めて
その方向にブロックがあったら、別の方に反射させるようにすればいいんじゃないかな。
縦横両方ともふさがっていたら、もと来た方向にはね返させるとか
GML に慣れていれば簡単だけど、そうでなかったらかなり面倒かも
動かないブロックで上下左右判別有だと下のようになる
(ボールからBlock(Solid属性)に対してコリジョンイベント)
x = xprevious;
y = yprevious;
move_contact_solid(direction, 32);
if(place_meeting(x+sign(hspeed), y, Block)){
hspeed *= -1; //左右
}
else if(place_meeting(x, y+sign(vspeed), Block)){
vspeed *= -1; //上下
}
else{
vspeed *= -1; //例外として角
hspeed *= -1;
}
GMのコードエディタって検索履歴消せるのかな。見当違いなワードが候補に出てきて鬱陶しいのだがw
ヘルプとかに書いてあったらスマソ
たぶんレジストリのFindStr0~16消せば消える
置換の方もReplStr0~16で
ありがとう。でもめんどくさいからいいわw
ブロック崩しのことで以前質問したものですが、
ボールの判定を矩形にして、四隅で判定を取ることで問題が解決しました
色々とアドバイスを頂きありがとうございました
sprite_replace_spriteなどでCPUに負荷をかけた場合、sleepでCPUを休ませた方がいいでしょうか?
その場合どれくらい休ませればいいものなのでしょうか?
なぜ休ませたいのか知らないけどいらない
重たい処理の後にsleep使っても
sleepの待ち時間だけゲームが止まるだけ
ビジーループで一つのスレッドで集中処理させないようにするのとは話が違う
ループ処理中でもなければ、特にsleepする必要はないんですね。
ありがとうございました。
スレッドの話が出たからフォーラムにあるマルチスレッドのDLL使ってみたけど
安定しないね
マシンによってエラーが出たり出なかったりする
stringとかrealで出した値を変数として扱うことってできる?
例えば親オブジェクトがfluit、子オブジェクトにapple、orange、grapeがあるとして
プレイヤーが果物を取るたびに果物の種類をグローバル変数で+1していきたいとした場合
親オブジェクトにプレイヤーが果物を取った時、 global.(果物名)+=1 みたいにできたら便利なんだけど
今のところそれぞれの子オブジェクトにglobal.apple+=1 、global.orange+=1、global.grape+=1の様に書いていて面倒
variable_global_set(name,value)
指定した名前で変数をグローバルで定義し、数値を代入します。
variable_global_array_set(name,ind,value)
指定した名前で1次元配列をグローバルで定義し、[ind]に数値を代入します。
variable_global_array2_set(name,ind1,ind2,value)
指定した名前で2次元配列をグローバルで定義し、[ind1][ind2]に数値を代入します。
variable_local_set(name,value)
指定した名前で変数を、現在のインスタンスのローカル変数に定義し、数値を代入します。
variable_local_array_set(name,ind,value)
指定した名前で1次元配列を、現在のインスタンスのローカル変数に定義し、[ind]に数値を代入します。
variable_local_array2_set(name,ind1,ind2,value)
指定した名前で2次元配列を、現在のインスタンスのローカル変数に定義し、[ind1][ind2]に数値を代入します。
これらは使えないの?
最近触ってないから書式とか合ってるかわかんないけど
果物アイテム取得時に
Flute_get(object_get_name(id)); //取得したインスタンスIDのオブジェクトネームを取得
↓Flute_getの中身↓
global.flute_name = Argument[0]; //グローバル変数flute_nameに取得したオブジェクトネームを格納
if(variable_global_exists(global.flute_name)){ //flute_nameのグローバル変数が存在するかどうか
//↓存在している場合、該当グローバル変数の値を取得し、それに+1する
variable_global_set(global.flute_name,variable_global_get(global.flute_name)+1);
} else { //存在しない場合
variable_global_set(global.flute_name,1);//グロ変数flute_nameに1を代入
}
return true; //戻り値にtrueを格納
今試そうとしたけどglobal.(オブジェクト名)だとエラーでますね
global.fruit_(オブジェクト名)でやるとしたらどうやるのがいいでしょう
配列使った方が簡単じゃないかな
オブジェクト名というのは実際にはオブジェクトのインデックスを指していて
これは0から始まる数値だから、そのまま配列の添字として使える
果物を取った時には、親オブジェクトで global.fruit[object_index] += 1; とする
それぞれの個数を参照するのは global.fruit[apple], global.fruit[orange] みたいな感じでOK
面倒なのは初期化だけかな。配列の要素がまだ存在しない時だけ0にしてやりたいから
ちょっとインチキくさいけどCreateイベントで
variable_global_array_set("fruit", object_index, variable_global_array_get("fruit", object_index));
フルーツオブジェクト作った順番がバラバラだと、内部のインデックスが連番にならないんじゃないか?
オブジェクト名をfruit0~fruit9みたいな感じで、末尾の数字だけ抜き出して配列の参照に使うとか
>>574 ルーム作成時に、フルーツ名のグローバル変数を全部初期化しておくのなら
variable_global_set(object_get_name(object_index),variable_global_get(object_get_name(object_index))+1);
の一行でglobal.fruit_(オブジェクト名)の代わりにできるはず
あと
>>573は忘れてちょんまげ、普通に間違ってて使えねーww
>576
それぞれの要素が区別できればいいから連番である必要はないよ
配列の添字の上限は32000なので、そこまでオブジェクト作らなければ大丈夫
使わない要素ができるのが気にいらなければ
ds_mapで、オブジェクト名ないインデックスなりをキーにして管理する手もあるね
コードの設計を見直した方がいいと思うけどなあ
global.fruit_apple とか静的にアクセスしたいなら
はじめからどこかで global.fruit_apple = 0 のように書くべきだし
variable_ で動的に変数を作成するなら global. ではなく
変数を介して variable_ 関数で取得する必要がある
1つのオブジェクトを指定した領域だけを可視化する、あるいは不可視化するような事は可能でしょうか?
例えば○■■▲■■■☆■■■☆ こんなオブジェクトの
↑ここの領域↑ だけを以下のように表示するというような感じです
■▲■■■☆■ (他の部位は透過)
>>575,576
配列ですか
オブジェクトインデックスは大きな数字なので、ヘルプによればメモリをたくさん使ってしまいそうですね
どのくらいなのかはわかりませんが
配列はまだ勉強不足なので調べてみます
ありがとうございました
>>578 そのglobal.fruit_apple=0も親オブジェクトでまとめてやりたいんですよ
>579
draw_sprite_partは?
もしくはdraw_sprite_part_extとかdraw_sprite_generalでもよし
レジスト版じゃないなら、その部分だけ切り取ったスプライトを用意するのが一番早い
>>581 ありがとうございます
しかしレジスト版ではありません
また、動くオブジェクトを絶対座標で切り取るとなるとその部分だけ切りとったスプライトだと膨大な数が必要になります
○■▲☆の4種類のスプライトを用意して
可視領域内に入ったら非透過にして、範囲外にでたら透過するようにすれば?
>>582 draw_sprite_partはLiteでも使えるよ(6.0〜8.1)
ヘルプ見れば、レジスト版専用のものには目立つ注意書きがある
バージョンによっても変わったりするから、使えないと決めつけずまず確認しようぜ
テストプレイだと何ともないのに、Create executableで作った実行ファイルを動かすと、たまにウィンドウがガタガタ揺れたりするんですけど、
同じ症状が出てる人いませんか?
OSはWin7Pro64bitです
久々にゲーム作ろうと思ったけど旧verなくなった?
糞拝金主義の微妙な糞ツールなので使わないでおきましょう
デフォで日本語が使えるScratchに乗り換えるべきか
591 :
名前は開発中のものです。:2011/10/24(月) 00:39:51.59 ID:X7f5x7Mn
昔のバージョン消したのか
しょうがないとはいえなんか寂しいな
HTML5って8.1に追加機能じゃなかったのか。というかやたら高いな
日本語描画中心、っていうかノベルゲーみたいなゲーム作ってるんだが
>>525で神降臨してたのでようやく8.1に乗りかえれるぜー・・・
って思って実装したら外部ファイルから読み込んだ文字は表示出来ないことを知った
7のファイルを読み込んだ時のエディターの文字化けと同じ感じになる
オワタ・・・それともYo Yo Gamesに直談判しかないか・・・
外部ファイルのテキストをUTF-8に変えるじゃだめなのかな
久しぶりのアップデート来たな
>>595 あ ん た が 神 か
おかげで読み込めたよーありがとう
あとは改造したmbtextを8.1に対応させるだけだ
>>597 なるほどねー元々Unicode対応で画像化したフォントを用意するのか
文字描画の仕組みをもう少し理解したら使えるかも
ちょっくら触ってみる
レジストしようと考えているんだけど、
yoyogamesのアカウント(?)があらかじめ必要なのか?
横スクロールゲームを製作中なのですが、
地面をx軸に左へスクロールすると同時に右から新たに地面(左の地面と同じ素材)を生成するにはどうしたらいいでしょうか。
601 :
599:2011/11/03(木) 20:51:10.96 ID:8v2tPhlf
すいません、解決しました。
普通にレジストできたw
>>600 地面ブロックをOutsideRoomで右端に移動させれば良いんじゃないかな
598だが、
>>525で全角の"〜"が表示されないと思ったら
元のユニコード対応表で1バイト目がE3になってた(GMで調べたらEFだった)
なので対応する部分をE3からEFにコピペするとよろし
割とよく使う文字だと思ったから念のため報告しとく
日本で3Dゲーム作ってる人いないかな
海外だと人口多いみたいだしYoutubeとかでも講座動画見たいのが結構あるけど
興味あるんだけど英語で解説されてもよく分からない
表示するだけとかなら結構簡単みたいだけど
色々動かすとなると長々としたプログラムになっちゃうみたいだしやっぱり日本語の解説が欲しい
GM使うなら英語読むのは覚悟しないと
ただでさえ少ない日本GMユーザー、その中でこれまた少ない3D
そこから新たに解説を作ってくれるなんて人は残念ながらいない
日本語wiki等もかなり前から全く動きが無いし日本語GM6ヘルプに頼りつつ
活発な公式のフォーラムを見ていくしかないだろうね
3Dも割と色々出来るようだし最近のアップデートでも強化されてるようなのに残念だ
2Dはだいぶ自由に扱えるようになったけどそれはやっぱり先駆者達あったからこその物だからなあ
ファイル操作で馬鹿やると、どこが変なのか探すの大変だなあ
おかげで、それなりには理解したけど
変数をtxtに出力して管理してるんだけど、これって、指定した行の文字だけを削除するとかってできる?
2行目に入れた3を削除して、そこに8を入れる。とかをやりたいんだけど。
現状、いちいちtxtを削除させてから新規に同じ名前のtxtを作成させてるけど、我ながら頭の悪い方法としか思えないぜ
>>607 俺もそれが面倒だと思ったので、iniファイルを使う方に変えた
txtと違ってファイルIDがないからゲーム中で同時に1つしか管理できないけど、データの位置を何行目じゃなくて文字列で指定できるから、
その問題が一瞬で解決する
普段はリストで管理して、書き出す機会は減らすってのじゃだめなの?
610 :
607:2011/11/12(土) 10:40:26.70 ID:eyvAIjBZ
リストってなんぞやと思ったら、listなんてものがあったとは
現状、思考錯誤の末の汚いコードだしiniかlistで書き直すことにするわ
過疎かと思ったら、返信が早くてありがたいです
現状ここが日本唯一のGMコミュニティなのか
連想配列ができればなぁ
画面のズームイン/アウトをさせたいんだけど、
view_w/hviewやview_w/hportを変更して、
その値をwindow_set_region_size()に入れても変化がない
window_set_region_size()の使い方が間違ってるのかな?
画面拡大縮小なら
view_wview[index], view_hview[index]
だけでいいはず
>>614 本当だ。ありがとう
では、もう少し突っ込んだことを聞かせて頂きたい
1. room作成時viewサイズを320*240で表示
2. room作成時viewサイズ640*480→320*240に変更
1.の時にゲームウインドウを最大化しspriteを表示させると、
ドット補間というかぼかしたように拡大してくれるんだが
2.の時はそれがなく、ドットが目立ちカクカクして見えてしまう
これは何が問題なんだろう
GameMakerの仕様としてデフォルトのフルスクリーン機能を使うと
ドットがにじんでしまうというものがあるので、どちらかというと1の方が問題かも。
拡大してカクカクに見えるのは低解像度向けの小さい画像ならしょうがないかと
カクカクにしたくないなら解像度にあわせてある程度大きい画像を作ると見栄えがいいと思う。
フルスクリーンにする場合で、にじみが気になるときはウインドウのキャプション外して
display_ の関数でディスプレイに合わせてウインドウの大きさを変えて・・・
というような疑似フルスクリーンを作る必要がある
>>616 小さい画像で作っているので
1の方をキープできればと思ったんだ
これを任意に制御するのは難しそうだね
丁寧な回答をありがとう、すっきりした
いつの間にかGame Maker HTMLってのが出てたのか
誰か触ってみたヤシ居る?
619 :
名前は開発中のものです。:2011/11/23(水) 16:52:36.58 ID:dB8XYENA
11/28がCyber Monday SaleでApressの電子書籍全部$15らしい
『The Game Maker's Apprentice』とか『The Game Maker's Companion』が気になる人はそんときに買えば?
レジストしたいんだけどアカウント登録ってどうやるの?
Emails don't matchって言われるけどフリーアドレスじゃ登録できないってことなのかな?
8.1だったらプロダクトキーの入力だけでよかった気がするけど
メアドも必要だったっけ?
画面の左上に残りライフを表すマークを表示したい。
でもドロースプライトではアニメーションするスプライトが表示できない。
そこでオブジェクトでライフを作って、jump to pojitionで画面左上から一定距離の地点に移動し続けてもらう(ステップイベントで)。
しかしそうすると画面の移動より1ステップ分送れて描画されるためライフ表示が画面の移動に一歩遅れる感じになる。
そこで移動ポジションに操作キャラの移動スピードを+してみる。
すると今度は端に来て画面が止まったときにおかしくなってしまう。
なんかいい方法ないですか?
ドローイベントのサブイメージ番号に変数を利用することで自己解決!
お目汚し失礼しましたー!!
突然申し訳ありませんが、日本語での講座とか解説のオススメってどこかありませんでしょうか…。
もしくは横スクロールアクションのお手本的な勉強になるようなフリーゲームがあれば教えていただきたいです
とりあえずサンプル眺めて基本的な使い方の流れを学んで、
後は非公式サイトの情報で横スクロールアクションの主要部分、重力落下とかジャンプとかそういうのを学んでいくのが楽かな。俺はそうだった
日本語版ヘルプがあると更に捗る
最近ならニコニコとかに講座動画ないかな?
>>625 今まさに重力関連で行き詰まっているところです…。
もう少し色んなサイトを探して、講座動画も見てみます。
ありがとうございます
ジャンプボタン長押しだと高く、短くだと低くっていうのに戸惑った記憶があるわ
これ相当いいツールだな
お手軽だし、GMLやればちょっと突っ込んだこともできる
ただ、エディタとかデバッガあたりの動作がイマイチ
特にデバッガは以前開いた状態で開いてほしいな
このあたりレジストすれば改善する?
>>628 レジストしてるけど、改善されない。
GameMakerはエディタと言語仕様が微妙なのが残念すぎる
デバッグ機能で復元できるのは変数の閲覧設定だけ
インスタンスの状態をまるまる保存、復元したいならgame_save()でroomの状態が
全て保存されるので自分でデバッグ用オブジェクトを作れば以前の状態というのもできないことはないよ
GMは対象との距離が0.5未満を当たってない、0.5以上を当たってると勝手に判定するのが厄介
632 :
628:2011/12/06(火) 01:06:20.71 ID:MpnaFec0
>>629 >>630 レジストしても使い勝手は変わらないのか・・・
でもまあ安いし、バージョンアップに期待してレジストしてみるわ
ありがとう
game_save()はいいこと聞いたw
ゲーム中にフラッシュを再生したりとかできるんだろうか?
動画自体再生無理
だから何十何百という画像ファイルを
連続表示させる感じでやれば
動画はいけるかもな
外部DLLとかであるかは知らない
なるほど
メモリめちゃくちゃ食いそうですね。
単純なループアニメ程度かできるのは。
レジストすればsplash_系の関数が使えるようになるから
avi、mpg、wmv あたりの動画は標準機能で使える
マジかよレジストしてくる
room移動の時に使えるアクションコマンドでのエフェクトみたいのを他で使うことはできませんか?
ルームのPersistentをオンにしておいて
Restart Roomをエフェクト付きで実行するのはどうかな
公式フォーラムのメンテはいつおわるのですか?
2Dゲーで背景だけ3Dにしようと思ったんだけど、
d3d_start();を入れると、画面が上下逆になるんだけど(多分左下が0,0になるため)
どうにか画面を上下逆転させずに3Dを使う方法ないかな
これじゃあまりにもやりにくすぎるぜ
3D部分をひっくり返してそのあとカメラをひっくり返しとけばいいんじゃね
ふうむ、少し試したけど90度画面を反転させることに成功したわ
あと90度反転してくれよ!
_____ _
/ ___ / | | / ̄/
__ / / <ゝ / /_ / ̄  ̄/ / / _
/_ 二 二 __/  ̄.| | ̄ / // \
/ / <ゝ / / |_| / / / /
/  ̄ ̄  ̄/ /\ / / //\
 ̄ ̄ ̄ /__ / ̄ \ \ /__/___/
\/
/ ̄/ /\ _ / /_ _/ ̄/_ __ ___
./ / ._ \/ / // ヽ /_ _/ / / _| |_
/ / ./ /_ / ̄ ̄\ / / ./ / | / /_ / / |_ レ'~ ̄|
/ / / _/  ̄ ̄ヽ|/ _ _/ / _/ \ \ / /| |
\ \/\ . -/ -- / ./  ̄ / / / <_/ \ \ /_ / | |_
\__//__/ ̄ /_./ /__/ \__/  ̄ ̄ .|__| \/
_____ _
/ ___ / | | / ̄/
__ / / <ゝ / /_ / ̄  ̄/ / / _
/_ 二 二 __/  ̄.| | ̄ / // \
/ / <ゝ / / |_| / / / /
/  ̄ ̄  ̄/ /\ / / //\
 ̄ ̄ ̄ /__ / ̄ \ \ /__/___/
\/
Gamemaker使ってた人で他の制作ツール使うようになった人って何使ってるんだろうか
質問です。とあるオブジェクトのステップイベントで以下のようなGMLを書きました。スプライトのサイズは32でルームの1マスも32です
right=0;right_down=0;right_up=0
(こんな感じで他の変数も0に初期化しています)
if (place_free(self.x-32,self.y)){left=2}
if (place_free(self.x-32,self.y+64)){left_down=2}
if (place_free(self.x-32,self.y-32)){left_up=2}
if (place_free(self.x,self.y-32)){up=2}
if (place_free(self.x,self.y+64)){down=2}
(right略)
長々としたGMLですみません。もっと楽な書き方があるのかもしれませんが…
これでこのオブジェクトの左のマスにソリッドオブジェクトがなければleftが2に、となるはずですよね?
しかし同オブジェクトのドローイベントで「if(left=2){draw_arrow〜〜}というように矢印を描写し、正しく出来ているか確認してみると、上下だけが正しく出来ていないようです
下のマスにソリッドオブジェクトがあるのに下に矢印を表示、上のマスに何も無いのに矢印が表示されない、など。上下を間違えて逆にしてるのかとも思いましたがそうでもないようです
自分のスプライト分の座標のズレなども考えて見ましたが一向に改善されません。何か見落としがありますでしょうか?
文章中のif(left=2) ではなくて if(left==2) かな
動かすオブジェクトとソリッドオブジェクト両方のサイズが32で
あたり判定の座標が左上起点だと仮定して
下方向は+64ではなくて+32なはず
place_freeみたいな"place"が付く関数は、指定された「点」を調べるんじゃない
自分のスプライトを指定された座標に置いて、コリジョンが起きるか調べる
だからスプライトのサイズとか余計なこと考えずに、上下左右調べるにはそれぞれ
y-1, y+1, x-1, x+1 を使えばいい。ついでにいちいちselfを付ける必要もないよ
>>649,650
ありがとうございます。
>自分のスプライトを指定された座標に置いて、コリジョンが起きるか調べる
目からウロコです。なるほど言われてみれば確かにその通りです
selfの有無なども教えて頂きとても助かります。何とか問題を解決できそうです
改善されないと思ったらドローイベントにupとdownを書き忘れてました
非常に初歩的なミスで申し訳有りませんでした
そういやUTF8(GM8.1仕様)のstringをSJIS(8以前の仕様)に変換するエクステンション作ったけど需要ある?
mbtextにぶち込む前にこれ使えば、8.1でも今までのmbtextそのまま使ったり
DLLとかとstringの受け渡しができるはず(8.1だと日本語含んでるとバグる)
前者についてはもう解決策出てるからアレだけど、後者で詰んでた自分みたいな人もいるのかなと思い
先月から触っているのですがコード管理に中々手間取ってます。
Gamemakerで紐づけてあるコードをgrep検索とかできないでしょうか・・・?
if (hensu=1){if (keyboard_check(vk_shift)){timeline_index=timeline; timeline_position=0; timeline_running=true; hensu=0; exit;}}
変数1の時にShiftを押すとタイムラインが始まって変数0になるっていうプログラムにしたいんだけど、
上のだと何故かShiftを押し続けている間、タイムラインが始まり続けてるみたいで進まない。離すと進む
キーを押した時点で変数は0になってるからタイムラインが始まるのは1度だけじゃないの?詳しい人解説お願いします
=
==
GMは()内では=は==と同じ意味だからそれは関係ないな
試したけどきちんと一回しか動かなかったよ
たぶん他でhensu に代入されてるような気がする
直接関係ないけど、delphi っぽく書かないなら式評価の"="はやめた方がいい
>>660 ありがとう。まだテスト段階の規模なのでおかしな所がないか探してみる
ところでGMスレで聞くのはスレチかもしれないけど=と==というのはどう違うの?
ググってみても検索演算子と判断されて困った
=は代入
==は値の比較(等しい)
>>662 なるほど、これをやめた方が良いってのは他の言語で困るからかな?
わざわざありがとう
ゲーム作るのにまずテトリスとかからはじめようと落としてみたけど
これって見た感じロマサガ的なRPGにはやっぱり向いてない?
うん。どちらかというとアクション向き
RPGならウディタとかがいいよ
やっぱそうなのか
とりあえずウディタはいくら使えど全然慣れてこないので
こっちで簡単なゲーム作ってみる
簡単なのすら作れなきゃウディタは手も出さずに終わると思うけど
RPGでも簡単に作れるよ
日本語表示するのが問題だけど最新版でもほとんど解決してんだろ?
あれ、作れるの?
でも日本語は工夫してやらんと使えないんだよね
字ついた画像読み込ますとか
まあそんな感じだね
その画像読み込ますのを簡略化した物を作って配布してる方がいるからそれを使えば不自由なく日本語を表示出来る
初心者です。あと質問です。
テンプレート読んだのですけど、プログラム知識は皆無でもできるものですか??
あと、横スクロールアクションも作れますか?
英語ができなくても大丈夫ですか??
スレチだったらごめんなさい..
まあロマサガくらいなら作れるだろうな
他のツールとどっちが楽かはわからんけど
>>647 亀だけど興味があるのはDXライブラリとかUnityとかかなあ
でも公式のコミュが結構充実しててなかなかGameMakerから離れられないんだよね
あとは時間の都合・・・
>>670です。
度々の質問申し訳ないのですが、画像を取り込みそれを使用などはできるのでしょうか....?
>>671さん。
回答ありがとうございます。
プログラムの知識は無くても問題ない
最初はGML抜きでやって、自分の思い通りに動かせるようになったらGMLの移行を考えるくらいで良いと思う
GMはアクションやシューティングが得意ジャンル
英語はできなくても日本語ヘルプよめばある程度は使えるようになるけど
いずれは公式フォーラム読む事になるから出来るに越したことはないな
>>673さん
ありがとうございます!
とりあえずいろいろいじって見ます!
うおおお....ジャンプができネェ....
誰か助けてくれぇ...
>>675 普通にジャンプさせたいだけなら、上方向(90°)に移動開始させて下方向(270°)に重力設定してやれば終わり。
着地時の接地で失敗してるなら、Move to contact positionはオブジェクトと既に接触した後だと正常に移動できない。
その場合は-(vspeed)分だけ移動させてから使うと良い。
着地した後は重力と速度を0にするのを忘れないように。
>>676 もう少しやり方を詳しくお願いします_| ̄|○
頭が弱いので、わからないです...( ; ; )
>>676 すいません。もう少し状況を詳しく報告しますね!
キャラが横にしか移動せず、重力も作り方すらわかりません...そして...
現在わかってないのは
・重力の作り方
・ロックマンの様なジャンプのやり方
・キャラの歩きのモーション?
です....初歩的な質問ですいませんが、答えてくれると嬉しいです(>人<;)
gavity
vspeed
hspeed
sprite
これがわかるようになるまで調べる。
基本英語のサイトが多いけど感覚でわかると思う。
それと日本語のヘルプを読んでみる。
公式の横スクロールアクションのチュートリアル落とすといいよ
段階的に作られてるから情報が一気に入ってこなくて覚えやすい
説明文は英語だけど、読めなくてもGMファイルを開けば何をやってるかは大体掴める
>>679 .680
お二人ともありがとうございます!
公式のやつを一度見てみます!
>>680 多レス申し訳ないのですが、公式のチュートリアルは、過労死のやつですか...?
すいません。英語にも弱くて....
教えていただけると幸いです..._| ̄|○
おまいら・・・優しいな(´;ω;`)ブワッ
お母さんにもらったチョコ食べてくる
>>685 そうですよね。皆さん優しいです
チュートリアルして、ジャンプはできましたけど、床が移動できなくなりましたwwww
頑張ってみます
事実上ここが日本のGMコミュニティだしなー
もっと国内でも普及して欲しい物だな
あっちじゃ3Dとか通信も盛んなようで羨ましい
さらに質問です。何度もごめんなさい...
マップの足場などを雲などにするのはどうすればいいのでしょうか?
スプライトで作ればいいんではないか?
>>691 んー...チュートリアルでは、スプライトでは作ってないみたいなんです
タイルセット...?みたいなものを使いたいのですがよくわかりません...
でも、アドバイスありがとうございます!
visibleを無効にしたゲーム中は見えない汎用足場オブジェクトを作ってルームに配置
雲とかの絵を描いたタイル用背景を作ってそれを足場オブジェクトに被せる
どこか日本の代理店で日本語でサポートとかしてくれないと使用者人口はなかなか増えないよな
俺は、なんかどっかで配布されてたGM6の日本語化マニュアル+GM7で未だに使ってるけど
英語わかんなくても、普通になんとかなるんじゃね?あとはサンプルとにらめっこする根気な気がする。
すでに使ってる人間はそうだろうけど、英語版しかないとこれから始めようって人間がなかなか増えない
全然でないとこ見ると、日本語対応は開発側が完全に見限ってるっぽい?
慣れると使いやすいし、ゲームだけじゃなくていろんな使い道があって便利なんだけどなぁ・・・
動作も思ってるより早いし、付属のエディタがちょっと残念なくらいw
開発者の誰かが日本語はちょっときついみたいなこと言ってた気がする
スクリプトエディタの日本語未対応っぷりからして期待薄だろうな
とか言いつつ、Game Maker Studioには少しだけ期待してる俺がいる
あっちのソフトはあっちのソフトなんだからさ
こっちの言語に対応しない、できないってのも当然だろうよ
ジブリに実写映画作らせるようなもんか
いまだにGM8使ってるけどみんな8.1なの?
8よりは8.1の方がいいんじゃないの?
エディタで全然日本語使えないとか不具合直ってないとか聞いたような
7から8.1使ってるからよくわからないけど
これって旧バージョンはもう手に入らないんだっけ
8.0がほしいんだけど
他サイトにインストーラーあるよ
705 :
sage:2012/02/21(火) 16:28:50.04 ID:AxWLOWIR
失礼します。
ルーム内に被らないようにインスタンスを生成するにはどうすればいいか分かる方いらっしゃいますか?
例えば32*32を1マスとして縦4マス横4マスにランダムに配置するといった感じです。
706 :
705:2012/02/21(火) 16:29:28.82 ID:AxWLOWIR
すみませんsageの場所間違えました。
ある値100を000100みたいに表示するのってどうやるんだっけ
随分前にスレで見た気がするけど忘れてしもうた
GMLの場合、
>>705 position_emptyがtrueになるまで無限ループでランダムな座標を生成し続ける
自前でやるなら配置した座標を配列に保存しておいてチェックしながら配置する
>>707 前の回答ではないと思うが、10で割った回数で数値の桁数を調べて、足りない分だけ左に文字0をつける
>>708のレスをてけとーに書いてみると、aを元の数字とした場合
digmax = 5; //表示させたい桁数、たとえば5
numdig = floor(log10(a))+1; //aの桁数をnumdigに代入
mystring = string_repeat("0", max(digmax-numdig, 0)) + string(a); //必要な数だけ頭に0をつける。aが既に5桁以上なら無視する
って感じかね
log10がわかんなきゃnumdig = string_length(string(a))でもおk
>>709 log10は「その手があったか!」と思ったが、だいたいそんな感じ
俺の場合数学もスマートに書くのも苦手だからifやwhileで固めてpowerで割ってる
その3行の意味は全て分かるから、俺もそっち使おうかな
711 :
705:2012/02/22(水) 12:14:07.90 ID:lxEeg+CY
>>708 ありがとうございます。
色々試してみます。
お前ら教えてくれ
GM8.1で、GMLからウインドウのサイズ変更ポリシーを変えることってできる?
起動時は自由にサイズ変更できるけど、
途中から縦横比固定で変更するようにしたいんだけど……
>>712 アスペクト比固定の有無を途中から変えたいってこと?
やったことないけどwindow_set_region_scale(scale,adaptwindow)あたり使ってみたらどうだろ
普段はscaleを0にしてアス比固定したいときだけ-1にするみたいな
連投すまんが追記
scaleが-1だとウインドウのサイズによっちゃ余白ができるけど
その場合はステップイベントでウインドウのサイズを調べておいて
余白がある場合はwindow_set_sizeで適当にサイズを変更するようなコードを足しとけばいいんじゃないかな
試してないけど多分こんな感じ
check = true; //アス比を固定するかどうか
orig_width = 320; //デフォルトのウインドウの幅
orig_height = 240; //デフォルトのウインドウの高さ
aspect_ratio = orig_width/orig_height; //アスペクト比
//アス比固定したいかどうかチェック
if(check)
{
//横に余白がある場合
if(window_get_width()/window_get_height() > aspect_ratio)
{
//横幅に合わせて縦幅を変更
window_set_size(window_get_width(), window_get_width()/aspect_ratio);
}
//縦に余白がある場合
else if(window_get_width()/window_get_height() < aspect_ratio)
{
//縦幅に合わせて縦幅を変更
window_set_size(window_get_height()*aspect_ratio, window_get_height());
}
}
すまん、余白を消したいなら
横幅に合わせて縦幅を変更するのと縦幅に合わせて横幅を変更するのが逆だわ
大人しく仕事行って来る
717 :
712:2012/02/23(木) 12:31:20.48 ID:dFlmFisb
>>714-716 なるほど
window_set_region_scaleはちょっと触ったけどよく解んなかったんだよな
ちょっとその方針でやってみるよ、ありがとう
ロックマンみたいな画面移動作りたいんだけど全くうまくいかない…
デバッグ時以外はコメントアウトされるプリプロセッサもどきな構文ってGMにありますか?
デバッグ部分のif文のスクリプト処理も軽減化させたいんですが。
ロックマンXみたいなダッシュをしたいんですが、どうすればいいのかわかりません....
誰か教えていただけると嬉しいです
>>718 ロックマンよく知らんけどview使うのが早いんじゃない?
>>719 debug_modeくらいしか思いつかんな
今日8.1ダウンロードしてみたのですが、レジストしてないと
ゲーム画面背景にロゴが常に表示されててかっこわるいです。
古いバージョンではロゴがないようなので、
>>3から落とそうとしたら全部no longer availableとなっていました。
ロゴ無しにしたかったら8.1レジストしやがれということでしょうか?
>>723 無事ダウンロードできました!ありがとうございます!
検索の仕方が悪かったようで、お手数おかけしました。これでロゴ無しすっきりです。
>>718 亀だが、公式フォーラムでtransition_kind関係を検索するとメトロイド系のルーム切り替えのサンプルがあった気がする。
独自でルーム切り替え作るとその辺は楽
効果音とかのリソースを外部読み込みするにはどうやるのが良いのかな
効果音管理用のオブジェクトのCreateイベント内でループ回して読み込むようにしてるんだが
ファイル数が多いとエラーになる
ビルトインのsound系関数は読み込みエラーが多い気がするな
俺は適当なDLL使ってる
公式フォーラムで探すと色々出てくるから見てみるといい
2Dで物理演算のような物を作りたいのですが、オススメのサンプルなどありますでしょうか?
重力で物が落下し、物が下にあるとそれ以上落下しないなどはもちろん、跳ね返りやその際の減速、相手への反作用等々…
サンプルじゃないけど
Verlet積分ってのは便利
GMPhysicsってのをどっかで見た気がするな
あれどうなんだろ
>>729 ありがとうございます
単純な物と難しい物が出てきましたが、難しい方は理解出来ず、単純な方は高速化以外にイマイチメリットが見えず…
難しい分野なようですが式として表されてる事には驚きました
ランダムで何も無い地点に自動的に移動させようと思い以下の様なGMLをCreateイベント内で書きましたが
go_x=0;go_y=0;
while (place_empty(go_x,go_y)){
go_x=floor(random(room_width));
go_y=floor(random(room_height));}
どうも毎回go_x、y共に0固定となってしまいます
最初の宣言の後にwhileが来ており、(0,0)の地点にはオブジェクトが置いてある為、何も無い地点には該当しません
どこに間違いがあるのでしょうか?
place_emptyはスプライトが衝突するかしないか判定する関数だから、スプライトが設定されてなかったら普通に配置される。
あと、判定条件逆じゃね?
「何も無い限り繰り返す」=「何かとぶつかるまでやり直す」ことになってるよ
ちなみにdo〜until使うと判定が最後にくるので、最初の初期化を省略できる
do {
go_x = ...
go_y = ...
} until (place_empty(...))
whileとは逆で「条件文が真になるまで」繰り返すので注意だ
も一つ思い出したので補足。障害物が全部solidという前提だが
move_random(1, 1);
とすると自動的に何もない場所にランダムで移動する
>>733,734,735
ありがとうございます。判定条件逆というのが原因でした
place_emptyの返しを誤解していました。その座標にオブジェクトがない時に真になるのですね
もう1つ新しい疑問なのですが、collision_rectangleやcollision_circleなんかでは指定した空間にオブジェクトがあるか無いかを判別出来ますよね
もし指定した空間内にオブジェクトがあった場合、そのオブジェクトの座標なんかを調べる事は出来ないのでしょうか?
GML内でcollision_rectangleの後にother.xなどを使っても駄目なようでした。よろしくお願いします
737 :
名前は開発中のものです。:2012/03/12(月) 16:35:08.00 ID:EWMM0AFV
stepイベントって3種類あるけど違いってなんなの?
>>737 処理される順番。以下Game Maker Japanより転載。
補足:
Game Makerがイベントを処理・実行するオーダー(順序)が重要となってくる場合もあるでしょう。
ここにイベントのオーダーを示します:
1. [Begin step]
2. [Alarm]
3. [Keyboard], [Key press], [Key release]
4. [Mouse]
5. [Step]
(ここで全てのインスタンスが新しい位置へセットされる)
6. [Collision]
7. [End step]
8. [Drawing]
そういやGame Maker Studioのベータテストが始まるのか
個人的にはAndroid対応とかより細かい動作を改善して欲しいんだよな
起動の早さとかマルチスレッド対応とか
8.1 Standardでパーティクル制御したいんだけど、デストロイヤの使い方がわからん
全然パーティクルが消えてくれないんだけど
createしたあとにregionで領域指定するだけではダメなの?
>740
ありがちな罠は引数の順序
x1, y1, x2, y2 じゃなくて xmin, xmax, ymin, ymax だぞ
後は、円形の使おうとすると円の中じゃなくて外が範囲になるバグがあった気がする
それ以外だったらちゃんとコード示してくれんとわからん
742 :
740:2012/03/18(日) 19:36:32.23 ID:I1Zel2x/
>>741 ありがとう
コード晒そうと見なおしたら解決できたよ
間抜けなことにcreateの引数をミスタイプしてたorz
最新版でも音は変質しちゃう?
Studioのオープンベータが始まってるのに案の定話題になってなくてワロタ
そういう自分もろくに触っちゃいないが
studioは1万か
proが値上がりした分かなり安く感じるな
バージョンアップの買い直しが無ければ手を出したい所だが
調べてみたらAndroidとかiOS用にビルドするためには課金が必要なのね
でもそれを含めても一万円は良心的な気がする
だいぶ前からバグ報告のページがnot found
うおおおお!
ステージ移動とどうやったらジャンプをスタイリッシュにできるかわからん...誰か教えてください!!
多レス申し訳ありませんが、
ロックマンのように、何かのキーでダッシュしたり、ただ立っている時は少しずつ動いたりと(モーション?)などをするにはどうすれば良いのでしょうか?
GameMakerって購入方法はどうなっているんですか?
高校生なのでWebMoney等でないと買えなくて困っています
スレきちんと読んでいませんでした。すみません。
クレカしか無いんですね。
>>750 Vプリカっていうコンビニ払いのプリペイドクレジットがあるぞ
ただGMで使えるかどうかは知らん
>>752 ありがとうございます。
日本語ヘルプよく読んだらPayPalでも買えるらしいので使えなくても大丈夫そうですね。
754 :
名前は開発中のものです。:2012/04/24(火) 12:54:14.92 ID:sUXAv5BI
質問です。
現在銃を撃つのを三連射したいのですが、どうすれば良いのでしょうか...
あとキャラをジャンプ中に左右を入れ替えるといきなりしたに行ってしまいます。
解決方法をご教授いただけると幸いです。
>銃を撃つのを三連射したい
・一回押したら3発自動で連射
・押しっぱなしで連射、3発撃ったら押していても発射しなくなり、再度ボタンを押し直せば3発出るようになる
・押しっぱなしで連射、3発撃つごとに再装填。
<装填後>
1:ボタンを押したままであれば再度連射。
2:ボタンを再度押し直すことで連射。
↑どれ?↑
>キャラをジャンプ中に左右を入れ替えるといきなりしたに行ってしまいます。
・左右を入れ替えるとはどういうことか
・どういうコード・アルゴリズムかがわからないので答えようがない
最初の一回だけ3発連射するだけのコードなら
<Createイベント>
count = 0;//弾を発射した回数
keika = 0;//弾を発射してからの経過時間
kankaku = 3;//発射後次に弾を発射するまでの時間
<Stepイベント>
if(count < 3){
keika += 1;
if(keika >= kankaku){
keika = 0;
count += 1;
//弾発射処理
}
}
今日からGM8.1使い始めたばかりなので
アニメーションの設定の仕方がよくわからないです。
8.0の画面で購入したのですが、8.1のライト版で同じようにSoftWrapのコードを入力してもアクティベートできませんでした。
どうしたらアップデートはできるのでしょうか?回答お願いします。
>>755 一回押したら三連射にしたいです。
あと、キャラの話は右を向いて左を向く時に壁に密着してるとめり込む感じです
>>756 コード...?まだ使い始めたばかりなのでなのが何か...
初心者で申し訳ない....
>>758 8.1は8.0のアクティベーションコードではアクティベートできない
8.1で改めて購入する必要がある
前に無料で8.0から8.1にしたけど期間限定とかだったっけ?
公式にログインしたら8.1のコードあるかもよ
>>761 今公式サイト行って購入ページのCoupon Codesに8.0のライセンスコード入力したら無料でライセンスもらえた
期間限定ではないようだ
さっきはよく確認せずにレスしてごめん
作った動作サンプルとかをアップできるような場所あればいいね
>>764 普通にaxfcとかのアップローダー使えばいいんじゃないか?
日本語入力のチャットバー的なのは作れないだろうか
text_pos = string_pos("//",text);
if(text_pos !=0)
{
text = string_delete(text,text_pos,string_length(text)-text_pos);
}
こんな感じでtextの//を取り除く文を作っているのだけれども、どうも//が認識されないのか、取り除いてくれない。
何かエスケープ文字とか必要なのかな
マルチバイトではないこと前提に
text = "1234567890//asdfg"
出力 1234567890
argument0 = string_pos("//", text);
text = string_delete(text, argument0, string_length(text)-argument0+1);
または
//text = string_copy(text, 1, argument0-1);
>>768 ありがとう。データ見直してみたら、必死に直してた場所に関数が使われてなかったってオチだった
キャラがダメージを受けた時などにSpriteEditorのFadeと同じような効果を使いたいのですが、
もう一個画像を用意する以外に可能な方法があればご教授して頂けませんか?
PROならオブジェクトのimage_blendをc_redとかに変更
元に戻すにはc_whiteにする
>>771 素早い回答有り難うございます。
単色のスプライトにdraw_sprite_ext等で試していたのですが色の組み合わせが悪くて真っ黒になっていたようです。
8.0でwiki通りにdirectory_create("name");と書いたのだけどカレントディレクトリにフォルダが出来ない。
解決したけどdirectory_create(working_directory+"/name");じゃないと出来なかった…
wikiもだけど、日本語訳のマニュアルもpass指定関係は間違ってたりする。
file_find_firstでフォルダ内のデータを検索しても、データの名前が帰ってくるだけでpassは帰ってこなかったりする。
directory_createは7.0以降のヘルプではちゃんと「フルパスを指定しろよ!絶対だ!」と
念押ししてあるがな(6まではなかった)
file_findのは「name」と書いてあるけど、たしかにそれだけで読み取れというのは無理があるか
windowのタイトルバーにスコアを表示させないようにするのってどうするの?
D&Dなら「score」タブの最後にある青いアイコンをドロップしてshow scoreの設定を変える
GMLならshow_score=false
今回はたまたま良かったけど、お使いのバージョンの記載もお忘れなく
できました。丁寧にありがとうございます。
バージョンは8.1でした。
Studio版は
WindowsとMACの実行形式に加えAndoroidやiOS向けにも書き出せるようだけど
まだbeta版ってことはなんかおかしいところあんのかな?
自分が触ってみたときはさすがベータって感じだったな。
今どうなってるのかは知らない。
製品版が出てもXP非対応になるらしいから、手を出すべきかどうか悩む……。
XP非対応か
そりゃ困るなぁ…
将来のこと考えると切り離して開発者をXP対応から解放するべきだろうけど
XPユーザー多すぎて遊んでもらえないのが辛いのう(´・ω・`)
Normal Soundだと音高くなったり低音ボコボコしたりなぜ音変わるの…?
Multimedia Playerだと変わらないのに。bGM使うしか無いのか…
ところで8.1のCouponCodeを入力する場所ってどこですか?
Studioきたね
見てみたら生成したゲームはXPも対応してるっぽい?
触ってみたいけどバグ取れるまで少し様子見かな
785 :
名前は開発中のものです。:2012/05/26(土) 00:53:14.96 ID:rzAPPgiS
studio商法か
高いわ・・・
8.1liteで作ったんだけどこのままレジストするか
それともスタジオ版買うかどうするかな
スタジオ版のほうで8.1liteで作ったのがそのままちゃんと動いてくれるかなぁ?
いつの間にかルームエディターの配置オブジェクトを選んだ時に出るスプライトが
左から数ドット見切れるようになったんだけどなんだこれ
特に問題は無いけど気持ち悪い
スタジオ版ってHTML5、Android、iOSの出力機能がそれぞれ別売りなのかよっ
全部買ったら596ドルってたかっ!
8.1のフルバージョン買おうとメアド入力したのに
一向にメールが送られてこない…
Gmailじゃ駄目なの?
iOSとかで売り物作ろうと思うなら$200も高くないと思うけど、
趣味で作るにはちょっと尻ごんじゃう値段だね。
とりあえずWindows対応版だけでも動作報告ホスィ
メアド入力した後に下に出てくる
GoogleCheckoutのボタン押さないといけなかったのね
入力したメアドにになにか送られてくるのかと思ってた
攻撃を加えると二体に分裂するオブジェクトがあります。
このオブジェクトの分裂する限界は五体までにしたいのです。
しかし、「五体いるときに攻撃しても分裂しない」と書いても、
四体の時に二、三体を巻き込んで攻撃すると六体以上に分裂してしまいます。
これを防ぎ、四体いる時に三体を同時に攻撃してもそのうち一体だけが分裂するようなプログラムを組むには
どうしたらいいのでしょうか?
分かる人どうかお願いします。
同時に攻撃しても内部的には順番に処理してるから5体を超えないんじゃ
しかし実際に動かすと超えてしまう・・・
(instance_number(obj)<5) の時にタイムラインを実行して、そのstep1で新しいオブジェクトを作っている。
あ、解決しました。
新しいオブジェクトを作るとこだけタイムライン上でなくて元オブジェクトの処理でやったらできた。
ありがとうございまーす!
このアプリケーションで、完成度の高い横スクロールアクションが公開されているところを教えてください(;´Д`A
内部構造まで見ることができるととても嬉しいです
GM製の横スクロールアクションで有名どころだと
Iji(*)、AnUntitledStory(*)、Spelunky(*)、Momodoraあたりか。(*)はソース公開
Mod作るならともかく、ゲーム作りで参考にするならサンプル見るのが一番いいよ
こういう時に自分のゲームを出せるくらいになりたい
>>797 サンプルを見たのですが(マリオみたいな恐竜を倒しつつクリアするやつ)、操作していない時のキャラの動きた銃の玉の速度、段数、ジャンプの加減などがよくわかっていません(;´Д`A
いろいろとご教授いただけると幸いです
プログラムを知りたいんじゃなくて、ゲームバランスとかを知りたいのかね?
SPELUNKYってXBLAでも出てるようだけど
gamemakerのエクステンションでXBLA用に書き出せるようなものがあるの?
>>800 ゲームバランス...?
申し訳ないのですが、このソフトをあたつて数日なので、なにがなんだか...(;´Д`A
>>801 そういう機能は無いよ。それは作者がXNAでリメイクしたやつ
dustforceもC++だかで作り直してsteamで出したんだよな
ナイトメアスフィアとか背景歪ませたりしてるけど、あれどうやってやってるのかな
最近アップデートがとんと来ないな
スタジオもいいが通常版もしっかりやってほしいぜよ
すみません、ご存知の方がいたら教えてください。バージョンはGameMaker 8.1 Standardです。
1. オブジェクト名(object_get_name(ind)で取得できる文字列)からobject_indexを逆引きする方法はあるでしょうか?
2. object_indexは、exeが変わらない限りゲームを何度起動しなおしても変化しない、で合っているでしょうか?
あれ、たしかオブジェクト名が定数扱いで、そのままobject_indexの値が入っていると思ったけど。
むしろ、object_get_name(ind)が逆引きの扱いかと。
オブジェクトのobject_indexは、エディタ上で作成していたのなら、exeの再起動どころか exeを作り直しても変わることはない。
ゲーム実行中で作成しているのであれば、実行時の状況によってindexの値が変わると思う。
809 :
808:2012/06/04(月) 02:25:33.35 ID:7cRR5GUF
ごめん 1 に関してたぶん勘違いしてた。
ソース上のオブジェクト名を、ある変数に文字列として持っているような場合に、
その文字列と同じ名前の object_index がほしいってことなのかな。
すると、こうするとよいかも。
strobj にオブジェクト名を文字列で持っているとして、
execute_string("return "+strobj)
とすると、object_indexを取得することが可能。
execute_string()は、実行時に文字列をGMLとしてパースして実行するので、処理に時間がかかるから多用は禁物です。
オブジェクト名とindexの組を最初に列挙してmapに入れておくという方法もある。
起動時に一度だけ実行しておけば後は速い。
ttp://www.gmlscripts.com/script/map_objects もっとも、できるだけ名前に頼らない方が望ましい
というか名前が必要になることの方が少ないと思うんだけど。
例えばファイルのセーブ・ロードに使うのなら、
809の言うようにindexは変わらないのだから、名前ではなくindexを保存しておけばよい。
811 :
807:2012/06/04(月) 23:15:23.71 ID:yBYS/2q1
execute_string(str)!そういうのもあるのか!
ありがとうございます、やりたかったのはまさに
>>809です。
そして用途は
>>810の通りセーブ&ロードです。
確かにobject_indexが変わらないのであれば、わざわざ名前で保存する必要はないですね。
名前のほうが好都合なのは、対象のオブジェクトの定義が存在しない別のexeからセーブデータの中身を操作するときくらいかな。
ぐぬぬ...スタイリッシュに作りたいけど難しい...
何も操作していない時に、ロックマン見たく息してる動作見たいなのをいれるのはどうすればいいですか...?
自機の通常スプライトにその動作してるアニメのスプライトを設定するだけじゃないの?
なんでgamemaker、バイリニア補完つけてくれないん?
816 :
名前は開発中のものです。:2012/07/04(水) 20:34:19.99 ID:QS5yruHi
めんどくさいねん
これってルームを指定して実行する方法はないの?
動作確認がいちいち面倒くさいよぉ
room_goto(room)でルーム移動するとか確認したいルームを一番上に持ってくるとか
819 :
名前は開発中のものです。:2012/07/18(水) 04:16:17.45 ID:CFYx9GHi
constantでもglobalでもなんでもいいから、最初に移動したいルーム(下の例だとroom0)をどっかで定義しておく
global.room_ini = room0;
そんで一番上のルームのcreationイベントで
room = global.room_ini;
しておくとかかな
あとはglobal.room_iniの値だけ変更すればルームを並べ替えなくてもいい
普通にroom_gotoでいいと思うが
それでもいいんだが、いちいちcreationイベント編集するのが面倒なら
もっと編集しやすい場所で初期ルームの設定変えられるようにしておけばって話
例えばこういう設定を一個のスクリプトにまとめとくとかね
まあいくらでも方法あるし好きなようにすればいいとおも
>>818>>819 ありがとうございます。
結局、作業中は最初のルームにステージ選択できるメニューを作って
それでステージの動作確認してます
非公式情報サイト復活か猿でもわかるような解説動画ないかな
敷居高くてオレニハムリダー
解説動画ならyoutubeでgamemakerで検索したら沢山出てくるよ
英語だけど見ればわかると思う
825 :
名前は開発中のものです。:2012/07/22(日) 10:30:51.57 ID:rEZVUkcs
日本語で39dllとかの解説ないんかなー
>>823 動画見ただけでわかろうとせずに、ブロック崩しとか簡単なのでいいから
とにかく自分の手を動かしてみるといいと思う
それくらいのチュートリアル動画なら某動画サイトに転がってたと思うぞ
GM Studio、人柱してきたぞ
日本語通る&日本語表示出来る。
HTML5対応の関係でUnicode範囲が緩和出来るようになったらしい。
使い方メモ。
1.フォントを作成
2.32 to 127とか入っているリストの下の[+]をクリック。
3.12352 to 12543と入力(これだとひらがなとカタカナしか使えないけど)。
(詳しい人向けに言うと、ここにはUTF-16の番地を入れる)
あとはDrawイベントでDraw Textなりをすればいい。
UIも日本語通るようになってる。
ちなみに、フォントは一度画像テクスチャに変換しているらしく、
漢字まで表示できるように範囲指定すると、
テクスチャのサイズがでかすぎて保存出来ないとエラーが返ってくる。
過去のゲームが全然コンバートできなくて、
結構しんどい感じなのでまだお勧めはしない。
(パフォーマンスなども未確認)
過去の資産をそのまま簡単にiOS版作れるのかと思ったら
コンバートは難しいのか
>>829 まだ詳しく見てないんだけど、
スクリプト使わない範囲なら
そのままコンバート出来ると思う。
スクリプトは何だか仕様変更が結構ありそうな予感がする。
まずオブジェクトとかスプライトの名前かぶりがエラーになるようになった。
解消後にコレクション周りとかでエラーが多発して詰まってる。
拡大とかもぼやけるようになっていたりして、
エンジン側の変更も大きい予感。
体験版用意してくれればいいのになーと思った
なるほどGMLのほうも変ってるのね
モーションセンサーとか位置情報を取得できる関数が増えてるのかな?
832 :
名前は開発中のものです。:2012/07/26(木) 20:40:28.61 ID:e5TYrGUN
画像の補正アルゴリズムも変わったのか
>>831 傾きはdevice_get_tilt_x() みたいなので取れると思う。
マルチタッチとかはまだ分かってない。iOSエクスポータ買ってないので。
F9でスクリーンショットとったら絵が固まるんだけど…
描画が更新されてないだけでマウスやキーボードの操作は受け付けてるみたい
適当に作った別プロジェクトではちゃんと撮れるし、何かが悪さしてると思うんだが全く見当がつかない
分かる人いたら教えて下さい
8.1Standard使ってます
>>834 切り分けが大事だよ
実験用コピー作って、
現象が起きなくなるまで
ゲームの要素削っていったらどうか
といってもスクショ機能全然つかわんから俺だったら放置
>>827 人柱超乙
お前のお陰で俺もそのうち買う気になった
今のところDLLの互換性が不安で足踏みしてる
フォントの件だけど、つまり
>>828みたいに使いたい漢字だけ登録すれば
>>827で言ってるエラーは回避できるってことなのかな
頑張ったじゃねーかYoYoGames
>>835 切り分け試してみたけど、すっからかんの状態にしてもダメだった
というか、新規プロジェクトで改めて試したらダメだった
別PCで作った実行ファイルだと正しく撮れることがあるみたい
PC側の問題っぽいわ
スクショなんて別ソフトでも撮れるしひとまず放置するわ、ありがと
838 :
827:2012/08/04(土) 21:23:39.61 ID:KZeRzhhl
>>836 そうそう、そういうこと。
DLL関係はあんまり期待出来ないと思った。
自分で試した範囲だと、よこしま氏のbGMは動かなかったな。
この前更新履歴見たら、「日本語が表示出来ないバグを修正」とか
書いてあったんだよね。良いことだ。
あとは無料版と日本語化パッチと半額セールさえ来れば
日本でのヒットあるで!(ないよ)
それよりも日本語のマニュアルが欲しい
>>838 サンクス、早速俺もお布施してきたぜ
ソフトを丸ごとC++で書き直したんだな…よくがんばったよ
てことでざっと触ってみた感想
・フォント周りはかなり良くなってる(日本語描画もバッチリ)
・スクリプトエディタの日本語表示は相変わらず(8.1と一緒)、慣れれば気にならない
・外部ファイルからスプライトを読み込むなら、pngじゃないと駄目っぽい。
あと非同期読み込み(和訳合ってるか謎)に対応したとか聞いたけどまだ試してない
・使えなくなった関数(obsolete functions)がそれなりにある
(variable_*とかexecute_fileとか。つまりコードをダイナミックに生成するもの)
・単体exeじゃなくてインストーラごと作成する仕様に。
最初は面食らうけど慣れれば色々いじれて楽しい。日本語化したり翻訳後の文章をいじったり
・リソースの管理、共有がしやすくなった。このあたりはベータと一緒
・たまにエラーを吐き出すextensionがある。読み込む関数削ったら普通に動いたりするし、まだよくわからん
・速さについては知らん(エラー吐きすぎて8.1のプロジェクトが動かなかった)
便利な関数が減ってたり、リソースが少なかったりでまだ移行する気になれないけど
よりプロフェッショナルにしようって意気込みが見えて個人的には好印象だな
特にフォント周りには感動したわ。アジア人向けの配慮としては完璧だ
とりあえずまあ、そこまで本格的じゃなくていいって人なら8.1でも十分だと思う
触ってたら楽しかったもんで、長文すまんな
他にもなんかあったらまた書くわ
ゲームのIDごとにハイスコアリストが管理されてるってヘルプに書いてるけど
そのリストのデータはどこに作成されるの?
最近全然アップデート無いな
スタジオできたらもう用済みってか?
スタジオは出たばかりなんだから大目に見ようや
それとは別に開発者の発言見るに8.1の開発にはかなり四苦八苦してると思う
GM9があってもスタジオベースになるかもな
日本語のまとめサイトってどこ見ればいいの?
GM6の頃にやってたけど日本語フォント対応してるなら
ひさびさにやってみたい!
Studioのフリー版が登場
846 :
名前は開発中のものです。:2012/09/10(月) 20:42:43.80 ID:Biq7xysF
おおぉホントだ
ちょっと色々と触って機能を試してみるか
view 座標に小数を使える日はこないんだろうなあ
必要?
ニコ動のチュートリアルを見てブロック崩しを組んだのですが
衝突イベントから反射とブロック消し二つのアクションを起こす筈が
まれに反射はしてもブロックの消し残りが起きてしまうことがあります
(ブロックの端とか側面に当たった時など)
これは
GML などでより堅牢なプログラムを組むことが要求されるのでしょうか?
それと
>>560 さんで話題になったブロック崩し正確さうpオプションとは
反射の設定を precisely にすることなのでしょうか?
GMLじゃないから起きたって事はまず無いだろうね
>>560のはそれで合ってる
ただし玉のスプライトの当たり判定も丸かスプライトの見た目通りにすること
ブロック崩しなら「precise」はチェックしなくてもいいと思うよ
>>850 >>851 レスありがとうございました
スプライトの当たり判定 なんぞやそれ? のレベルなので
まずはニコ動のチュートリアルの続きをやって勉強します
でも消し残りは何と言うか、反射しておいてそれかい(笑)って感じですね
854 :
名前は開発中のものです。:2012/09/15(土) 20:24:21.74 ID:Ct0C+AfS
gamemaker8でゲームを作ろうと思いましたが、
簡単に作ったゲームを実行しようとしてもタイトルが真っ暗になって
フリーズしてしまいます。
gamemaker8で作成されたゲーム(exe)を叩いてもタイトルで
必ずフリーズしてしまいます。他のソフトで作成されたゲームは
問題なく動きます。
OSはWindows7 Proffesional(32bit)です。
原因わかる方いらっしゃいますでしょうか
それだけの情報じゃ
gm8がwin7に対応してないからって推測しか出来ないなぁ
8.1にしてみたら?
856 :
名前は開発中のものです。:2012/09/16(日) 12:08:21.91 ID:mzmQNus1
>>855 ありがとうございます。
これだけの情報じゃ厳しいですよね・・・。
もう一台のWindows7だと問題なく動くんですが
gmだけでなく、exeにされたゲームも動かないのがよくわかっていません。
引き続き調べてみます。
exeが動かないってそれ普通じゃないぞ
ドライバ関連かハードウェア的な問題じゃないのかな。
gamemakerを再インストールしてもだめなら、
gamemaker側で何とかするレベルじゃない気がする。
859 :
名前は開発中のものです。:2012/09/17(月) 21:34:57.46 ID:1W2yI4hD
gamemakerでスマートフォンアプリを作ろう
とかそういった本書いてどっかの出版社に持ち込んだら
出版してくれるかな?
>>856 セキュリティ関係じゃねーの?
ウィルス対策ソフトかなにかを一度切ってみたら
exeが全部動かないというなら、少なくともGMは関係ない。
861 :
852:2012/09/18(火) 00:27:50.93 ID:XuEF0Vb/
ブロック崩し不調の原因は
ブロックを不注意で重ね書きしていたから らしいです
だからブロックが消えるのに衝突が都合2回必要なのでした おそまつ
>>853 ありがとうございます 参考にする前にまず地力をつけないとw
>>859 面白いかもしれないけど日本語非対応なのがネックだな
日本語化パッチとか同封してれば別だろうけど
その上で出版となるとYoYo通さないと駄目なんじゃ?
よく知らないがな
863 :
名前は開発中のものです。:2012/09/18(火) 21:09:14.17 ID:rPCJwWdv
>>857,858,860
ありがとうございます。
どうやらgmは関係ないようです。
やはりハードウェア的な問題でしょうか。
セキュリティ関係のソフトは現在入ってなく
gm以外のexeで動かない物は今のところありません。
ちょっと遠く離れた友人のPCなので
自分で触ることができなくてなかなか厳しいです。
どうもありがとうございました。
スマフォアプリは有料になるから
普通に「gamemakerでゲームを作ろう」のほうがいいな
YoYo側とのやりとりは乗り気になったら出版社側がやってくれるんじゃないかね
失礼します。
現在弾幕STGを作成しているのですが、東方projectのような
3Dっぽい背景を描画するのを試みようとしているのですが、
どう手をつけていいかさっぱり分からず・・・。
どなたか指針だけでも示していただけないでしょうか。
環境はgm8,レジスト済です
3Dモードというのがあって、カメラワークとかを指定して、3D表示させることができる。
ヘルプの一番下の3D Graphics で、詳しいことが書かれてる。
または、draw_primitive系の関数を使って、台形にテクスチャを張り付けるような感じにする。
台形を3Dっぽく見えるように自力で整えるのは高校レベルの数学(三角関数)が必要だから、
その辺の知識も必要。
ニコニコ動画に、3Dっぽく見せてるサンプル動画が上がってる
ttp://www.nicovideo.jp/watch/sm17322258
>>866 ありがとうございます。
色々試行錯誤してみます!
今日からGame maker studio触ってみようと思う。
iOSのアプリとか作ってる人いる?
Studioのver.1.1でいつの間にかoggに対応してたのか
ループ点読み込めるとしたらかなり便利だろうな
>>868 Pro持ってるけどiOSは未経験
ハード上の制約がどれくらいなのか気になるな
iOSエクスポータ高いし誰も買ってないんじゃ無いの
エクスポータだけならまだしもAppleの開発者ライセンスもいるしな
steamのソフトウェア部門にGM来てるじゃん
studioだけで8.1は無いから今後8.1は放置されてくんだろうな
既にそうだし
steamに来たから少しは賑わうかと思ったら全くそんなこと無かった
steamに来てたから気になって見に来たよ
これでノベルゲーム作った人いる?
>>874 海外製で漢字全部扱うの大変そうだしわざわざこれでノベルゲー作る事はないんじゃないかな
もちろん無理ではないだろうけど
何でも作れるもんなあ
でも俺は絵心が絶望的に無いんだよね。ゲーム自体が作れても画像がどうにもならん
上でも出てるけど漢字についてはStudioで解決してる
多分フリー版でも使えるんじゃないかな
>>876 気持ちはわかる
真面目な話、バイト代とか給料から稿料を捻出して外注するのも手なんだぜ
874だけどどうもありがとう。
ノベルゲーじゃなくてもゲームの合間にシナリオ入れたりすることもあるから気になってたんだ。
ちょっと試してみる。
879 :
名前は開発中のものです。:2012/10/05(金) 21:25:45.54 ID:XPRPstj6
そういやGameMakerのフォント機能ってどうなってるの?
それぞれの環境に同じフォントが入ってないと文字化けするの?
もしそうだったらどのフォント使うのがベストなの
公式でstudio買うとsteamキーも付いてくるようになったな
逆はどうなんだろ
買うのはsteamからの方が楽なんだよな
>>879 フォントはたぶん埋め込み
だから文字化けはない
881 :
名前は開発中のものです。:2012/10/08(月) 20:47:58.47 ID:lfDd4v/Y
8.1だけどノベルゲーのベースになるようなものにちょっと挑戦してみるか
チュートリアルからアプリケーションを書きだしてみたんだけど、mp3ファイルだけ
別ファイルになってしまった。
これって.winファイルの中に入れられない?
音楽素材は再配布不可のところが多くて、音楽ファイルが素のまま入ってると怒られそう。
これからGMでゲ製するならstudioでつくった方がよさそうだな。
無印GMだとPCでしかプレイできんのだよね。
そうは言っても$500のマスターコレクションが必要だぞ
steam経由でポチってしまった…Pro版だけど。
有料バージョンはマスコレ含めてあと数時間10%OFFですぞ。
ところで、steam workshopにあるGamemaker製のゲームをプレイしてみたいのだけど、
subscribeに登録してダウンロードまでできるがPlay押しても始まらないんだよね。
うちの環境だけの問題なのかもしれないが、こんな症状出てる人ほかにいるかな…?
うちではプレイできたよ。
試しに最新版8.0落としてみたけどファイル名に付いてるverが1.0になってる
間違えたかな…
studioで作った場合、steamで売り出せるって事でいいのかな。
これからのサポートも手堅いだろうけど、なにか買うだけの恩恵が欲しいな。
steam版インスコしてみたけど、playsoundをセットしても音が出ないわ
再生ボタン押せば普通に鳴るのに、テストしようとrun押してコンパイルするとまったく音が出ない
steam版のバグなのかなこれ?
>>889 Global Game Setting開いてUse New Audio Engineのチェックをはずす
steamのマスターコレクションが20%OFFになったね
昨日までに買っちゃった人かわいそう
updateできねえ
オイラのスチームさんは20%オフセールなんてしてくれていないぞ・・・
バンドル割引が20%オフって事か。
てっきり10%オフが20%オフになったのかと思ってた。
テンキュー
アカウントにログインしてると20%OFFだ
ログアウトしたら499ドルだった
steam起動してGMSみたけど、なぜか20%オフにならないな・・・
ブラウザからじゃないとダメかいな。
GameMakerって、画面の切替にトランジションは使える?
付属のデモや動画を探してみたけど、瞬時切替のゲームしか見つからなかった。
瞬時切替やフェードイン・アウト以外の、クロスフェードやグレースケールの画像をタネにして
色んな見栄えで切り替えできれば導入したい。
>>903 タダで入手できるんだからジワジワと研究してみようと思う。ありがとう。
>>874や
>>881みたいにノベルゲーのシステムとして興味を持ってる人がいるんだな。
俺は今まで吉里吉里にフレームワークを作ってやってきたけど、吉里吉里自体の将来性を考えると、
そろそろ潮時のような気もするので、今現在開発が進んでいるシステムへの乗り換えを検討してるところ。
>>902 ビルトインの関数にこだわらないならなんでも出来るんじゃないかな
クロスフェードとかグレースケールならサーフェス使えばいいと思う
グレースケールはそれ系のエクステンション探さないと駄目かも
うは…10パーセントオフだったのか…次の機会を待とう。
スタンダードはsteam越しじゃないけど持ってるので。
質問があります。
640×480の画像ファイルから64×48のスプライトを作ろうとしているのですが
ツールではなくコードでやる場合
sprite_addを使うと480の縦長のスプライトが出来上がるということになってしまします。
コードからツールを使ったように分割画像を作る方法ってないもんでしょうか?
初歩的な質問ですみません。
GM8.1使用、GMLは少しだけ理解できます。
攻撃モーションに4枚のgifアニメを使用しています。
これをZキーを1度押せば4枚目までアニメーションし
その後少しウエイトを置きたいのですがどうすればいいでしょうか?
ご指導お願いします。
if(image_index = 3){
alarm[0.] = 10;
image_speed = 0;
}
こんなんとか?
簡単にやるなら4枚目のスプライトを以降に沢山コピーする
>>907 よくわからんが640*480の画像を縦10コマ、横10コマに分割して
サブイメージ数100枚のスプライトを作りたいってことか?
それならサーフェスを使うといい
サーフェスにもとのスプライトを描画して、あとはsprite_add_from_surface(だっけか?)かなんかで
サーフェスの一部分をスプライトにするとか
911 :
908:2012/10/19(金) 21:58:34.38 ID:WOn3Xy1b
>>909 勉強になりました、ありがとうございます。
>>910 まさにそれがやりたかったことです。
ありがとうございます。
windows8への対応はどんな感じ?
GM8だと落ちると言われたけど
知らんが、対応できていないとしても、君がまともなゲームを一本作る頃には対応は完了してるから心配するな
無印GMレジスト済みだが、Studioに移行するべきか・・・
無印はもうティッシュのように捨てられたんだ!
GameMaker8.0で初めてゲーム作ろうしているものです
アクションゲームの一面をポップンミュージックのように上からものをおとして
それにあたると死ぬ、耐えきればプロックが消えて咲きに進めるようになる
というところを作りたいです
タイムライン、というもので作ればいいのは分かったんですが、作ってもうまく作動しません
どのようにタイムラインを作ればいいのか詳しく書いてるおすすめのサイトなどはないでしょうか?
一定のタイミングでオブジェクトを生成するなら
タイムラインは Add を押して Indecate the moment に開始までに必要なステップ数を入力し
Actions に右側タグ main1 の Create Instance を指定する。
新しくオブジェクトを作成し Create イベントで main2 の Set Timelineで上で作ったタイムラインを指定する
一定時間ループさせるなら Set Timeline で Loop の設定にし、
さらに main2 の Set Alarm を使いループさせたい時間を入力する
Alarm イベントで Stop Timeline を使う
こういう感じになると思うんだけど文章にするとややこしいな
ありがとうございます
早速やってみます
うーん
できたんですけど
step1 音楽を流して
step5 ポップ君作成
step□ ポップ君を下に動かす
という動作で□が20や30だと動くんですが100などにすると動かなくなります
step間ではなれすぎていると雨後かくなるなどの仕組みがあるのでしょうか
そういうことは無いはず
デバッグモードのときに、緑の十字ボタンを押して
(タイムラインを設定したオブジェクトの名前).timeline_position
例えば、object0.timeline_position のように入力すると
現在のタイムラインの位置を確認できるよ
GameMakerって未だにシェア登録しないと加算合成できないのか?
8.1で、backgroundにGIFアニメを持ってくるのってできる?
慣れてきたらクローンゲームとかアイワナとかじゃなくて
オリジナルを作りたいなぁ
>>922 出来ない
背景をアニメーションさせたければスプライトを使って自作するとか
タイルでもやれるのかもしれないけど俺はよく知らん
>>923 やればいーじゃん
うん、ちょっとずつでいいから頑張るよ
924だが応援してるぜ
クローンゲーはノウハウと注目を得やすい(モチベ保ちやすい)って意味で最初はいいけど
続けてると物足りなくなるよな
その点オリジナルは大変そうだがやりがいはありそう
オリジナルは才能ないやつが作るとクソゲーにしかならないのがな
まぁそんなヤツはクローンゲー作ってもなぜかクソゲーにしてしまうんだが
クソゲーのうちは公開しないで人に見せられるレベルになったらだれか友人にみてもらうよ
クローンゲーとりあえず作ってるけど、
オリジナルも作りたいって確かに思う。
でも発想力に欠けてるんだよねー
技術も無いんだけどさ、根本的にコレだ!っていうの閃かない。
とりあえずタイムラインを使いこなせるようにしたい
今それで花火みたいのつくってみてる
二次創作の同人なんかもそうだけど
俺からするとむしろ他人のフンドシで相撲を取れることがすごいと思う
俺にはとても無理
本人が満足できるか、他人が満足できるか。
アマチュアの製作はどっちかが満たされてれば良いと思うんだよね。両方ならもっといいけど。
そう固く考えるな
作ったものを楽しんでもらえればいいのよ
そんな大げさなゲームつくれないよ、マリオ1~1つくって姉と「マリオってすごいな・・・」
って呟くぐらいのクソゲーかげん
当然公開もしない
マリオの挙動を解析するスレを見つつ、マリオの動きを再現したら全く同じものが40分で作れたぜ
俺は中間まで作るのに一週間かかった
久々に伸びてる?と思ったら結構活動してる人多いのね
同人ゲーとしてイベント頒布してる人もいるのかな
それともフリーで公開がメイン?
タイムライン分けが分からん
SteamのWorkshopで公開すればいいじゃん
他人がGameMakerで作ってるゲームも簡単に遊べるし
「このレベルで公開しても大丈夫なのか(驚愕)」と自信もつくぞ
夢現とかふりーむに登録してフリーで公開したら
1000くらいDLあったから
ちょっと欲出して有料版作ってDLsiteとかで売ってみたけど
10本も売れなかった…
1本(割れ厨が世界に放出するための1本)でないことに誇りを持つべきだ
がんばって強制スクロールをくんでみた
適当なオブジェクト動かしてviewで追わせたみただけだけど
もっといい方法あるのかなぁ
動いてりゃそれでいんだよ
ありがとう、がんばる
最近DLしてゲーム制作の練習してるんですけど
ちょっと詰まっちゃったんで質問です
シューティングゲームでキーを押したら飛行機から弾を発射するっていうのを、弾オブジェクト内のイベントだけで作ろうとしたんですけど
キーを押しても何の反応もありません
飛行機オブジェクトの方に、キー押したら弾が出るっていうイベントをいれたら出来ます
弾の制御は全部弾オブジェクト内だけで行おうと思ってたんですけど無理ですかね
>>946 弾オブジェクト内のイベントってのはゲーム上に生成された弾オブジェクトの実体それぞれに対して発動する
例えば弾オブジェクトに"スコアを+1する"ってキーイベントを登録したとすると
ゲーム上に弾が5個存在していればそれぞれの弾に対して上記のイベントが発動して結果スコアが+5されるし
弾が存在しない場合はイベントが一度も発動せずスコアは増加しない
だから、"弾を作成する"というイベントを弾オブジェクトにどうやって登録しても、
まずゲーム開始時に弾が存在しなければイベントは発動されないから弾は出てこない
だいたいのオブジェクトは別のオブジェクトから生成されるものだと思って我慢しよう
>>947 サンクス
やっぱり無理か
これができたらメンテナンスがしやすくなるって考えてたんだけど、しょうがないですね
そんなに面倒か?
弾の生成だけコントローラのオブジェクトで制御して
弾の挙動は弾オブジェクト内で制御すればいいだけでは
赤ん坊自体に生まれてくるという命令を組み込んだって、
親が赤ちゃんを作らなけりゃそもそも赤ん坊が存在しないんだから赤ん坊が生まれてこれるわけがない
それと同じ事
>>949 それも思ってたんだけど、それなら飛行機オブジェクトのほうで弾インスタンス生成したほうがまだしっくりくるかなあと
好みの問題にすぎないだろうけど
>>950 なるほど
わかりやすい
ゲーム制作楽しいな
ファンネルっぽいオブジェクトとか簡単に作れるし、動いてるのがたまらん
無料版でやってたけどスプライト数制限あるし、steamでstandard買う
円高バンザイ
公式で買ったほうがいいんじゃねえか
今はsteamで買っても非steam版はもらえるのか?
>>952 公式ヘルプには無理って書いてあった
でももうポチっちゃったわ
steam版でもそんなに問題ないよね…
Studioではデバッグモードからコードを実行できなくなったけど、
Studio使ってる人はこの辺不便に感じてる?
あとvariable_local_setとかも使えなくなってるよね。
8.1でこの辺多様してるから気になってるんだ。
関数の仕様変更は面倒だよなー。
俺もそれが原因でStudioへの移行に踏み切れない
steam版と非steam版って何が違うのさ。
steam版だと必ずsteamも動かしていなきゃいけない分、やや負担が掛かりそうな気がしてる。
>>946 と逆のことしたいをだけど
タイムラインで物体Aを生成 時間を設定
物体Aのイベントで自分を物体Bに変える
物体Bのイベントで何秒後に消す・・・
といったことは可能でしょうか・?
ABともにcreateイベントでアラームを設置
アラームでAにはオブジェクト変更、Bにはインスタンス破壊ってのはどうかね
ありがとうございます
やってみます
8.1からStudio Standardへのアップグレードキャンペーンやってるね
ってことはYoYo的には8.1互換がStandardって感じ?
本格的に無印(Delphi)ベースの開発はストップしそうだな…
中途半端な時期にやるから8.1持ってるのに値引き無しでもう買っちまったぜ、キャンペーンならプロが買えたってのに
YoYoって前からこういうとこ適当なんだよな
8.1はもうアップデートも全然無いし終わりだろうな
studioは8.1から変わったり消えたりした関数があるよ
無くても困らないのがほとんどだけどパーティクル関連はアトラクターとかディフレクターが無くなったりで寂しい
962 :
名前は開発中のものです。:2012/11/09(金) 13:13:17.14 ID:M2kBBzKW
しかしstudio高いなぁ
アプリ作るのに4万も出すなら
XcodeとCocoaTouchで作るだろ
プロにアップデートした。HTML5への出力をアドオンにして安くしたのか…
まぁ、出力関連は後で良いよな。高くなるけど。
HTML5の仕様が今後変わらないとも限らないし、
なによりまだHTML5で出すタイミングでも無いしね。
安いがウリだったのにどうしてこうなった
studioってゲーム画面の拡大率指定の機能ある?
前のはglobal game settingで%指定できたのに
>965
オーサリングソフトで$49.99は安い方なんだけどね。
というか、こうなるとスタンダードの意味が余り感じられない。
というか、なんて面倒くさいところにインストールするんだ。
968 :
名前は開発中のものです。:2012/11/11(日) 00:10:58.22 ID:qP8lpaZg
まだHTML5のGUIツールはこれといったのは無いから
HTML5出力だけなら8000円でHTML5作成ツールが手に入るのはいいかもしれない
Webデザインやってる人ならこれでHTML5のサイト作ってプレゼンとかできるんじゃないかな
StudioのHELPファイルでGMLのリファレンスをざっと見てるけど
タッチイベントを検出する関数が見当たらないけど
iOSやアンドロイド向けゲーム作る場合
ヴァーチャルキーでの操作しかできないのかな
Studioはコンパイルに時間かかるのがいかん
それともinclude filesの数によるのかね
>>966みたいなことするにはviewのport使うしかないんか
GameMakerでスコアのツイートボタンとか作れないかな
973 :
972:2012/11/21(水) 06:30:32.31 ID:SflfScEk
スレ建て乙です
これからも質問すると思うんでよろしくおねがいします
いつか答える側になりたいな
質問なんですがGameMaker8.0から8.1にしたところ
ルームを作る際の上下左右の移動が今までと違うようになったしまいました
前は橋のスクロールバーが出ていてそれで動かせていたんですが
今はマウスのグリグリでしか移動できなくなってしまいました
これは8.1でも昔のような移動方法に直せるでしょうか?
無理
慣れればまあ普通よ
ありがとうございます
これで慣れて頑張ります
プロ+html5がスタンダードと同じ値段とかはあ
Black Fridayだから仕方がない
Studio使い始めたんだがextensionの互換性でつまづいてる人っている?
8.1で動いたものが動かなくなって、それ以来Studioは放置しっぱなしなんだよな・・・
ロードマップではエクステンションは1.3ってなってるな