【2D】ゲーム作成ツールGameMaker part5【マンセー】
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
2010/12/05(日) 09:57:49ID:AN26SQm8●本家(英語)
ttp://www.yoyogames.com/
●GameMaker Japan - 非公式情報サイト(日本語)
ttp://gamemaker.jpn.org/v1/(現在一時閉鎖中)
●The Game Maker's Apprentice
ttp://book.gamemaker.nl/
前スレ
【2D】ゲーム作成ツールGameMaker part4【マンセー】
ttp://hibari.2ch.net/test/read.cgi/gamedev/1240441868/
0285名前は開発中のものです。
2011/05/01(日) 20:28:48.12ID:24HhuA0Oアドバイスdクス
一応脱衣ブロック崩しにはなったよww
0286名前は開発中のものです。
2011/05/01(日) 20:36:04.77ID:v4vaMhb8楽をするための仕組づくりに手間かけるのもプログラミングの醍醐味よ
0287名前は開発中のものです。
2011/05/01(日) 20:42:32.65ID:24HhuA0OそれをExcuteCodeの中にぶち込んでどうにかすれば
あの長ったらしいIfのアイコンを並べなくて済むわけですね、わかります
今度は同じ物をGMLで作ってみるよ
0288名前は開発中のものです。
2011/05/01(日) 23:14:11.68ID:U7TmMKRc0289名前は開発中のものです。
2011/05/02(月) 00:16:28.55ID:D5lQKg2jゴメン…画像は勝手にパクってる奴だからうpるの無理
パンツ穿いてこい
ヘルプやら>>257やら見てたら何とかGMLで出来たよ。
何とかやれそうだ、おまいらありがとう。
で、日本の非公式だとかwikiは現在では忘れられてる状態?
長らく更新されてないけど
0290名前は開発中のものです。
2011/05/02(月) 02:04:01.93ID:UL0eJI8QWikiは更新されてない箇所多いけどある程度役には立つから見て損はないよ
日本非公式はわかりづらいし、イベントのことまで書いてあるからどうだろうなあ
役に立つのはmbtext関連かな。
公式フォーラムを翻訳しながら眺めてるだけでも割と有意義だと思う
0291名前は開発中のものです。
2011/05/02(月) 18:11:25.40ID:D5lQKg2jそーなのかー
教えてくれてdクス
そろそろレスしすぎかと思うんで
自重して一人で修行の旅に出てくるよ。
わかんないことあったらまた聞くかもしれんが、
よろしくお願いします
0292名前は開発中のものです。
2011/05/02(月) 18:12:41.36ID:gIJtv+AV0293名前は開発中のものです。
2011/05/02(月) 21:13:01.66ID:ai/+YG7hもしも気に障ったならスルーしてもらって構いません。
現在GML無しで横スクロール型のアクションゲームを作っているのですが、ジャンプした後や、高い所から落下した時に落下モーションを取ろうと思っています。
ジャンプして上昇中に上昇モーションを取ることはできるのですが、落下モーションに移行させるコツがわかりません。
何卒ご指導いただけるとありがたいです。
0294名前は開発中のものです。
2011/05/02(月) 21:35:41.85ID:gIJtv+AV負の値ならモーションAに正の値ならモーションBに
0295名前は開発中のものです。
2011/05/02(月) 21:47:52.17ID:ai/+YG7hなるほど!
わざわざ回答頂き、ありがとうございました。
0296名前は開発中のものです。
2011/05/02(月) 23:07:06.15ID:n75L3pQw日本語版ヘルプを読んだのですが
親側
mplay_init_tcpip(mplay_ipaddress())
mplay_session_mode(true)
mplay_session_create(sesname,playnumb,playername)
子側
mplay_session_join(numb,playername)
こんな感じのを適当なオブジェクトにでも入れれば接続出来るのでしょうか?
接続されたとして互いのデータはどのように共有されるのでしょうか?
mplay_data_writeで変数?の共有は出来るのでしょうか、
しかしルーム、オブジェクト、操作、など普通のゲームと同じ様に作っては複数人でのプレイはとても出来るように思えません
非常に単純な通信だけでも作ってみたいのですが、もし良ければご教授願いたいです。よろしくお願いします
0297名前は開発中のものです。
2011/05/03(火) 01:36:42.32ID:/zL0KSIx変数の共有だけど1,000,000の共有領域があるって書いてある。
番号を指定してやれば「親側の指定番号に含まれる内容を共有」することになる、という印象
単純な通信なら、インスタンスAを親側で動かして、子側で同じインスタンスAが動くか試してみるとか
親側のルーム移動で子側も移動されるのかとか、これは通常じゃ多分されないけど。
mplay関数が結構多いから眺めてても楽しいね 今度何か作ってみよう
0298名前は開発中のものです。
2011/05/03(火) 08:30:07.55ID:Lm+aiDTQ固体Aが動く→共有領域の情報に差異があれば→共有領域に位置情報格納→描画前に各々の固体で情報更新
マルチプレイなんて触ったこともないし、ヘルプ見て思ったことを書いただけだけど
0299名前は開発中のものです。
2011/05/03(火) 11:04:50.01ID:gTNZKyvsと思ったらエロいブロック崩しか
いいぞもっとやれ
0300名前は開発中のものです。
2011/05/04(水) 13:42:26.84ID:4/6+Iz6C0301名前は開発中のものです。
2011/05/05(木) 01:03:13.97ID:MgqdZdKEオチオチ抜いてる暇もない
こんな糞下らない発想を素人でも容易くゲーム化出来るのは最高の旨み。マルチプレイは訳分からんけど
こんな感じのツールでコンシューマー用のゲームが作れればゲーム業界は活発になるだろうし斬新な作品も沢山出そうだ
何より素人がコンシューマーゲーム開発出来るなんて夢みたいな話じゃないの
0302名前は開発中のものです。
2011/05/05(木) 01:09:17.48ID:JBnJO6ov日本は特に鎖国文化だから技術共有はしたがらないし、ブランド力を大切にするから自社開発エンジンとか作っちゃう大手が多いよね
結局作ってもハードがポンポン出るからそれにも追いつかないといけないわけだし 問題は多いみたいね
このあたりでもどうぞ
ttp://ja.wikipedia.org/wiki/%E3%82%B2%E3%83%BC%E3%83%A0%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%B3#.E4.B8.BB.E3.81.AA.E3.82.B2.E3.83.BC.E3.83.A0.E3.82.A8.E3.83.B3.E3.82.B8.E3.83.B3
0303名前は開発中のものです。
2011/05/05(木) 09:45:30.25ID:1FhwUPBo協力してブロックを崩すに決まっているだろう
ゲーセンであったような
壁からの自機移動範囲を四角で囲んで
切り取っていくと裏の絵が表示されるタイプのゲームのがマルチにはよさそうだけどな
0304名前は開発中のものです。
2011/05/05(木) 11:51:18.22ID:dzP8cXHV0305名前は開発中のものです。
2011/05/05(木) 12:52:19.10ID:2lG465FO0306名前は開発中のものです。
2011/05/05(木) 14:00:01.13ID:WPSiIO8Dもう作っちゃえよ
マルチプレイ用のDLLならフォーラムで公開されてた気がする
0307名前は開発中のものです。
2011/05/07(土) 11:53:33.37ID:icn1PkuPMMDとかがそうだけど、ネットでの集団製作文化みたいなのができると今後面白くなると思うだよなー
0308名前は開発中のものです。
2011/05/08(日) 02:42:21.59ID:wBtB3c8Q公式フォーラムがまさにそんな雰囲気だけど日本にない・・・共有する感覚が少ないし、著作権の主張が強いからな
0309名前は開発中のものです。
2011/05/08(日) 13:29:47.01ID:zV8xakJA0310名前は開発中のものです。
2011/05/08(日) 18:43:24.87ID:CZaxrsDWpro版クレカ必須、日本語使いにくいで新規の人が入りづらい
使い慣れた人には折々のアップグレードは話題にするような追加機能がないってことで
結局人もネタもそれほどないんだよ
非公式フォーラムが廃れたのは惜しい反面しょうがないとも思う
>>309
お勧めしないけれど、最新lite 8.1 は回転できる
それ以外は回転画像を用意する必要があり
0311名前は開発中のものです。
2011/05/08(日) 18:44:17.76ID:A0zRpvOC0312名前は開発中のものです。
2011/05/09(月) 13:09:59.63ID:cjimXQQf>309は描画した「図形」の回転だよね スプライトじゃないんなら出来るんじゃないかな。
まぁ面倒だけど、計算させるとか
0313名前は開発中のものです。
2011/05/10(火) 20:34:03.75ID:Xl95nJbq0314名前は開発中のものです。
2011/05/10(火) 21:03:12.31ID:T8uqKylvどっかでimage_speedをいじって1以上とかにしてるオチじゃないの?
image_speed = 1で早いと感じるなら0.2とか0.3とか
0315名前は開発中のものです。
2011/05/10(火) 21:27:12.48ID:Xl95nJbq回答いただき、ありがとうございます。
EditSpriteとRoomのSpeedが同じでもプレビューの速度が実際に一致するとは限らないのですか。そういうもんなのですね。
左右移動時にアニメーションを左右使い分けているのですが、どうも挙動がおかしいのです。
アニメーションの変更は、別途歩行アニメーションのオブジェクトを用意してChange instanceを利用しています。
通常時は普通に動作してくれるのですが、特定の条件でインスタンスの親を変更させた後(プレイヤーキャラの変身で見た目と挙動を変えるためです。)、
移動アクションのコマンドを通常時とまるまる同じにしたのに、今度はアニメーションの最初の数コマまでしか表示されずにまた一コマから動くという妙な動きしかしないのです。
コマンドが同じなのに異なった挙動を取るので、もうさっぱりです・・・・。
わかりづらい内容でごめんなさい・・・。説明しづらいので、もしも回答しにくかったら、スルーしてください;
0316名前は開発中のものです。
2011/05/10(火) 21:43:52.91ID:T8uqKylvアニメーションを切り替えるだけならsprite_indexでスプライトの指定を変えた方が遥かに楽だしバグを回避できる。
アニメーションについてはバグなのか仕様なのかわからないけど、スプライトのサブイメージ数がチェンジする前のインスタンスのものを引き継いでるとかそんな香りがする
よくわからんけど
0317名前は開発中のものです。
2011/05/10(火) 21:50:01.83ID:Xl95nJbqこんな説明に、丁寧に回答いただき、重ね重ねありがとうございます。
まさしくおっしゃる通り、サブイメージ数を引き継いでました。親の枚数を増やしたら通常通り動きました!
本当に感謝いたします。
実はまだGMを触って2週間程の初心者でして、スレ汚し大変失礼しました。
sprite_indexですか。ちょっとわからないので調べてみます。
0318名前は開発中のものです。
2011/05/10(火) 21:50:53.80ID:Mg3KGJhGA状態だとsubimageの0-6を使用、B状態だと7-12を使用みたいな感じにもできる
まぁ>>316のやり方が楽だと思う
0319名前は開発中のものです。
2011/05/10(火) 21:57:47.26ID:T8uqKylvなるほど 1個のスプライトで全部のアニメーションをカバーするのか
管理がダルいけどありな方法だなぁ
>317
sprite_indexはそのオブジェクトが指定しているスプライトIDだよ
ヘルプ読め ttp://www.geocities.jp/hogehige2005/
0320名前は開発中のものです。
2011/05/10(火) 22:47:22.72ID:Xl95nJbqなるほど、sprite_indexの意味がちょっとわかりました。
こっちの方が管理が楽そうですね。
ちょっと工事してきます。
回答いただけた方、本当にありがとうございました。
0321名前は開発中のものです。
2011/05/10(火) 23:34:40.50ID:PCGaliPAinstance_changeすると、オブジェクトのプロパティで設定できる項目
(depthとかvisibleとか)は新しいオブジェクトのデフォルト値に置き換わる。
それ以外の変数は、チェンジ前のものがそのまま引き継がれるというルールっぽいです。
というわけで
sprite_index は新しいものに変わるが
image_index, image_speed は今の値をそのまま引き継ぐ。
インスタンスの変更を使うなら、これらの変数は
createイベントあたりで初期化しておくのが無難。
0322名前は開発中のものです。
2011/05/15(日) 16:44:15.62ID:N6qdRXUq0323名前は開発中のものです。
2011/05/16(月) 01:01:44.11ID:vRUdEGojアンドゥは個別にあるだろ アイコンまであるのに。
何に対して言ってるのかまったくわからん
0324名前は開発中のものです。
2011/05/16(月) 10:11:31.38ID:lDJNj9Lq0325名前は開発中のものです。
2011/05/16(月) 20:25:59.31ID:ytgKQB8D//プレイヤーが右向きなら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
としています
0326名前は開発中のものです。
2011/05/16(月) 20:56:02.31ID:CFVi0QEmプレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする?
それとも強制スクロールでプレイヤーオブジェクトを画面外に出ないようにする?
0327名前は開発中のものです。
2011/05/16(月) 21:08:15.11ID:ytgKQB8D目指しているのは、マリオのような通常横スクロールで、プレイヤーが画面の真ん中より進行方向逆側をキープしつつの
スクロールです
進行方向(プレイヤーオブジェクトの向いてる方向)の画面を多く見せたいのです
プレイヤーが逆方向を向いたときは、向いたがわの画面を多く見せたいのです
○をプレイヤーとすると、
右向きの時はこんな感じで、プレイヤは画面上はその位置をキープして
○
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
左向きの時は、実際の位置は変えずに、こういう感じにするのを目指しています
○
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
う〜む…なんかうまく説明できません
申し訳ない
0328名前は開発中のものです。
2011/05/16(月) 21:10:34.71ID:ytgKQB8D>>プレイヤーオブジェクトの向きによって、見える視界範囲をスクロールする?
すみません。見逃していました
たぶん仰る通りのことを目指しています
0329名前は開発中のものです。
2011/05/16(月) 21:58:08.71ID:CFVi0QEmviewはそれを追従するようにしてるんだと思うけど
それならHspの値を変更すれば追従速度が変わるんじゃないかな
少数点とかの細かい値は指定できなかったと思う
0330名前は開発中のものです。
2011/05/16(月) 22:00:28.57ID:sywNYm8h0331名前は開発中のものです。
2011/05/16(月) 22:17:00.33ID:ytgKQB8DEnd stepに置いたら上手くいきました!
原因は実行の順番にあったのかな
>>329
ずばりその通りにしています
原因は透明のオブジェクトの方にあるようでした
ありがとうございました〜
>>330
イマイチStep系統の使い勝手を分かっていませんでしたが、ちょっとわかったような気がします
ありがとうございました〜
0332名前は開発中のものです。
2011/05/17(火) 07:32:08.70ID:73LY8Wv3自分はミッションクリア式のゲーム(例えばイキキ様のはかいマン)を作っているけれども、外部ファイルをどんな風に扱えば良いのかなと
携帯からすまん
0333名前は開発中のものです。
2011/05/17(火) 11:17:17.96ID:VvMqXX45セーブデータならexeと同じフォルダに適当なフォルダ作ってその中に入れてるな
暗号化したければお好みで
0334名前は開発中のものです。
2011/05/17(火) 13:46:18.19ID:i8OzSkbD0336名前は開発中のものです。
2011/05/19(木) 03:23:58.02ID:7W9fWkhX連番画像を読み込んだ時のメモリ使用量が辛くなってきた
ちょっとdllの作り方調べるくらいじゃ判断がつかない
0337名前は開発中のものです。
2011/05/19(木) 03:24:59.59ID:7W9fWkhX0338名前は開発中のものです。
2011/05/19(木) 03:56:58.93ID:+PTB5Jtq読み込む画像データを少なくする手段を考えるほうが手っ取り早いはず
シーン毎に必要な画像だけ裏で読み込んでいらん画像は破棄するとか
0339名前は開発中のものです。
2011/05/21(土) 00:19:10.49ID:FrjLYHtD0340名前は開発中のものです。
2011/05/22(日) 02:23:55.82ID:DGEjNdCfアニメーションgifの特定のsubimageの時にwaveを鳴らすって処理はできますか?
例えばアニメーションの4番目と8番目が拳を振り下ろすシーンで、その時に打撃音を鳴らすといった事は可能でしょうか?
素人の質問で恐縮です。
もしよろしければ回答頂けるとありがたく思います。
0341名前は開発中のものです。
2011/05/22(日) 12:22:40.30ID:Q11em/4c効果音が鳴ったかどうかの変数を作っておき、image_indexが3以上になったら変数をtrueにして効果音を鳴らす
if image_index < 3
{
se_flag = 0;
}
else if image_index >= 3 && se_flag == 0
{
sound_play(効果音);
se_flag = 1;
}
0342名前は開発中のものです。
2011/05/22(日) 12:25:46.90ID:Q11em/4cif 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;
}
0343名前は開発中のものです。
2011/05/22(日) 13:15:26.08ID:UUQ6TMbsa[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);//効果音を鳴らす
}
}
}
0344名前は開発中のものです。
2011/05/22(日) 13:17:04.98ID:UUQ6TMbsたぶんこれで大丈夫なはず
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を鳴らす
}
}
}
0345名前は開発中のものです。
2011/05/22(日) 23:48:09.68ID:DGEjNdCf回答ありがとうございます!
おかげで出来ました。ありがとうございました!
0346名前は開発中のものです。
2011/05/23(月) 15:59:21.06ID:AtLcnK/yまたボスが登場するときなどに画面を揺らす効果を付けたいのですがよくわからないので教えていただけないでしょうか?
なんとなくviewに関係ある関数を使うのだとは思うのですが・・・
0347名前は開発中のものです。
2011/05/24(火) 08:00:36.19ID:TE7zmycQ画面を揺らすのは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の範囲に映写する
0348名前は開発中のものです。
2011/05/24(火) 08:02:35.70ID:TE7zmycQ(スクリーンの大きさは640*480ってことにしとく)
ここまで出来たら、view_xportとかview_wportとか色々変えて
何が起こってるのが自分で理解してみるといい
丁度プロジェクターをいじってるような感じだね
次はview_xviewとview_yviewを変えてみる
これはカメラを動かすことと一緒だってわかるはず
それが出来たらあとは簡単
画面を揺らすってことは、つまりカメラを揺らすってことだから
view_xview[0]とview_yview[0]を適当に変えればOK
昔苦労したから色々書いたけど、とりあえず自分で色々触ってみるといいよ
ちなみにGMLじゃない方法は知らない
0349名前は開発中のものです。
2011/05/25(水) 02:30:01.55ID:ZZ2I1X7r0350名前は開発中のものです。
2011/05/25(水) 10:10:27.96ID:j/e14whgつ instance_number(obj)
0351名前は開発中のものです。
2011/05/25(水) 14:05:01.90ID:opsyaCmR0352名前は開発中のものです。
2011/05/26(木) 12:03:30.14ID:j9K6d2WgIllegal array index in script "bGM_play".
trying to access argument[3], but only 3 arguments have been supplied.
ってエラーでて起動できないです。
0353名前は開発中のものです。
2011/05/26(木) 12:58:51.69ID:FOEeM3duそのエラーをまんま翻訳すればわかると思うが。
要は値が足りてないってことで、以前のGMで省略できてたところが
8.1では省略不可になってるってこと。
0354名前は開発中のものです。
2011/05/26(木) 13:01:56.58ID:j9K6d2Wgうう、つまり自分で修正コード入れない限り再生できないってことですか。
GMLを最近学び始めた俺には少し厳しい・・・・。
0355名前は開発中のものです。
2011/05/26(木) 13:54:15.81ID:FOEeM3dubGM_play(filename, volume, is_loop, pan, pitch);
だからループやパン・ピッチの値を全部入れればいいんじゃね?
0356名前は開発中のものです。
2011/05/26(木) 14:13:00.56ID:j9K6d2Wgお、おおおお!たったこれだけのことだったのか・・・!
危うくGM7で再出発するところでした。再生できました。
本当に感謝します。
くだらない質問でスレ汚しすみませんでした。
0357名前は開発中のものです。
2011/05/26(木) 14:23:45.17ID:YWyy1BIh横着するなってことなんだろうが
0358名前は開発中のものです。
2011/05/26(木) 15:47:29.28ID:FOEeM3du値を見るタイミングがそのコードを見た後だったのが関数のコール時点に
変更になってるせいだと思う。YoYo側はそっちのほうが楽にエンジン作れるからいいんだけど、
ユーザーにとっちゃ厳しい変更だよね。
0359名前は開発中のものです。
2011/06/01(水) 20:06:27.79ID:+m52XcHSWrong number of arguments to function or script.とエラーが出てしまいます
0360名前は開発中のものです。
2011/06/01(水) 20:39:53.72ID:empjEd2o0361名前は開発中のものです。
2011/06/01(水) 20:52:15.33ID:Wfx+wiQYタイムラインを開始するには
timeline_index = 開始したいタイムライン と代入して
先頭から開始したかったら timeline_position = 0 にして
さらに、GM8以降だったら timeline_running = true にする。
0362名前は開発中のものです。
2011/06/02(木) 00:00:46.77ID:8YtJadZRありがとうございます
ヘルプのtimeline_indexは(番号)だとか書いてあってまた違うものだと思っていました
代入する物なのですね
0363名前は開発中のものです。
2011/06/04(土) 04:36:35.65ID:bKns1Szrステップ中に一度出した計算結果を、再度計算抜きでそのまま参照する方法ってある?
計算内容によってはいくらかパフォーマンスが上がりそうな気がする
0364名前は開発中のものです。
2011/06/04(土) 04:40:17.43ID:+R2gRvWC0365名前は開発中のものです。
2011/06/04(土) 06:04:20.74ID:bKns1Szrスクリプトaaa「x+y」
スクリプトbbb「hspeed+vspeed」
instance_create(aaa(),bbb(),object)
↑
この場合でもそれは同じですか?
0366名前は開発中のものです。
2011/06/04(土) 07:02:02.49ID:+R2gRvWC変数を読むだけなら計算された結果の値
step毎にaaa = x+yの計算はされる
計算するための条件をつけるとかで多少は改善できるかもしれないけど
単純な数値だけの計算だと、あまり関係無いと思う
文字を数値に変換したりを毎step繰り返すと重くなるけどね
>>365の場合
x+yの計算→hspeed+vspeedの計算→そしてオブジェクトの作成
0367名前は開発中のものです。
2011/06/04(土) 07:08:45.01ID:bKns1Szrスクリプトはコードが綺麗にまとまるので頻繁に使っていましたが
内容によっては直接書いたほうが良いという事なんですかね
どうもありがとうございました
0368名前は開発中のものです。
2011/06/04(土) 07:26:48.41ID:+R2gRvWCx+y位置の情報を得るなら、キーを押して移動した後に
変数=aaa()とかで結果を入れるようにするとか
移動しない限り変数の値が書き換わらない
0369名前は開発中のものです。
2011/06/04(土) 08:00:33.49ID:bKns1Szrスクリプト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(略)としたほうが良いのでしょうか
0370名前は開発中のものです。
2011/06/04(土) 10:44:32.20ID:uM1fq+B8point_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}
}
0371名前は開発中のものです。
2011/06/04(土) 11:06:07.76ID:bKns1Szrどうもありがとうございます
0372名前は開発中のものです。
2011/06/04(土) 11:18:43.54ID:bKns1Szr0373名前は開発中のものです。
2011/06/04(土) 11:37:28.17ID:uM1fq+B8ScriptPDの返す値は0〜360の整数で、GMLは変数の頭文字に数字が使えないので
var ScriptPD();とするとエラーが出る(はず)
0374名前は開発中のものです。
2011/06/04(土) 18:00:28.68ID:bKns1SzrPD = scriptPD() ;
これなら>>370も一度の計算で大丈夫ですよね?
0375名前は開発中のものです。
2011/06/04(土) 20:30:40.98ID:czogavCNその後の処理は同じイベントか同じスクリプト内でやるんならvar宣言すれば多少はメモリ節約にはなるけど微々たるもんだから気にする必要はないと思う。
ちなみに単純にPD=ScriptPD()なんてやっても多分何も返してないんだから0が代入されるんじゃない?
スクリプトの最後にreturn(PD)とすればPDに代入されたもんが返ってくる。
でも上の例じゃスクリプト内でvar宣言してないPDは、呼び出したオブジェクトのローカル変数になるしreturnも必要ないし
0376名前は開発中のものです。
2011/06/04(土) 20:41:14.61ID:czogavCNそしてpoint_direction自体が関数なのだから、二度手間にしてる分余計な処理が増えてると思う。
あとvar宣言は変数の作成ってか、一時的に使う変数みたいなイメージ。
その場でしか使えない変数だから、スクリプト内で使ったらどこにも定義されてない変数になる。(呼び出し元のオブジェクトのローカル変数にもならない)
それとたかだか何十桁の計算をしても処理速度はまず変わらないから気にしない方がいいよ。計算機ですら計算しても一瞬で答えが出るんだから。
0377名前は開発中のものです。
2011/06/04(土) 22:38:19.27ID:bKns1Szr基本的な数値計算なら細かいことは気にしなくても大丈夫なのですね
極端な話>>369でもパフォーマンス上は問題がないと
PD = ScriptPD; //このように変数に計算結果を代入すれば毎回計算しなくて済む
↑
この事についてのソースはありますでしょうか
勿論疑っているわけではないのですが、ネット上で見られるなら勉強の為に見ておきたくて
0378名前は開発中のものです。
2011/06/04(土) 22:51:51.73ID:czogavCNそれは間違い。
ScriptPDというスクリプトを参照し、中身のpoint_direction関数を実行、結果を変数PDに代入 という一連の流れをやっている。
PD=point_direction(...)でやった場合は、point_direction関数を実行、結果を変数PDに代入 だけになる。
やりたいことは多分、前ステップとの座標を比較して、違いがあれば処理みたいなイメージかもしれないけど
結局前ステップとの比較と言う「計算」をしている以上毎回計算しなくて済むわけがないからあんまり意味ない。
まぁ処理速度的な話になるならどれにしても大差ないだろうけど
0379名前は開発中のものです。
2011/06/04(土) 23:00:48.85ID:czogavCNGameMakerはライブラリ的な位置付けになりそうな感じがするから、GameMakeで何も処理しない状態のパフォーマンスから計測していけば、単純にどれだけ時間がかかるか出るかもしれない。
とはいえ1フレーム内でルームの描画、インスタンスの配置、ステップ内各処理、描画処理などなどをやってんだから計算程度じゃ0.000...秒という世界だろうけど。
0380名前は開発中のものです。
2011/06/04(土) 23:05:11.56ID:bKns1Szr>>370にこのように書かれていたのですが
処理速度的な事を訊きたかったとはっきり書かなくて申し訳ありません
実際に>>369の様な事がしたいわけではなく同じスクリプトを何度も使っている例として出しただけです
どれも大差無いということならゲームを作る事に集中したほうが良さそうですね
0381名前は開発中のものです。
2011/06/04(土) 23:07:47.43ID:bKns1Szr素人の手の出る領域では無さそうですね
おとなしくゲームの完成を目指します
ありがとうございました
0382名前は開発中のものです。
2011/06/04(土) 23:18:28.12ID:czogavCN例えば何かしら計算をさせる処理を複数のオブジェクトでやった場合無駄になる。
1ステップで何度も計算する事になるからね。
だから計算させるためのオブジェクトを一つ用意して毎ステップ1度だけ計算させるのがスマートだと思う。
これは個人的なやり方なんだけど、オブジェクトごとに数値をもっていると管理が大変な場合が多いからPersistentな管理用のオブジェクトを作っておくのはおすすめ。
0383名前は開発中のものです。
2011/06/04(土) 23:42:10.73ID:8RjBJbYcGMに直してほしい機能のうちの一つだな
0384名前は開発中のものです。
2011/06/06(月) 22:52:52.63ID:YrcUqfkL■ このスレッドは過去ログ倉庫に格納されています