- 【2D】ゲーム作成ツールGameMaker part5【マンセー】
375 :名前は開発中のものです。[sage]:2011/06/04(土) 20:30:40.98 ID:czogavCN - ごめん、まともに考えてレスしようと思ったけど、処理速度ほとんどかわらんのだからPD=point_direction(x,y,target.x,target.y)でいい。
その後の処理は同じイベントか同じスクリプト内でやるんならvar宣言すれば多少はメモリ節約にはなるけど微々たるもんだから気にする必要はないと思う。 ちなみに単純にPD=ScriptPD()なんてやっても多分何も返してないんだから0が代入されるんじゃない? スクリプトの最後にreturn(PD)とすればPDに代入されたもんが返ってくる。 でも上の例じゃスクリプト内でvar宣言してないPDは、呼び出したオブジェクトのローカル変数になるしreturnも必要ないし
|
- 【2D】ゲーム作成ツールGameMaker part5【マンセー】
376 :名前は開発中のものです。[sage]:2011/06/04(土) 20:41:14.61 ID:czogavCN - バージョンによって違うのか知らんが、スクリプトは関数的な扱いだから変数に関数の結果を代入するのならPD=ScriptPD()という書き方が正しい(つかそうじゃなきゃエラーになる)
そしてpoint_direction自体が関数なのだから、二度手間にしてる分余計な処理が増えてると思う。 あとvar宣言は変数の作成ってか、一時的に使う変数みたいなイメージ。 その場でしか使えない変数だから、スクリプト内で使ったらどこにも定義されてない変数になる。(呼び出し元のオブジェクトのローカル変数にもならない) それとたかだか何十桁の計算をしても処理速度はまず変わらないから気にしない方がいいよ。計算機ですら計算しても一瞬で答えが出るんだから。
|
- おまえら土日までに一本ゲーム作るスレ12
819 :名前は開発中のものです。[sage]:2011/06/04(土) 20:54:23.90 ID:czogavCN - 来週は参加したいでごわす
|
- 【2D】ゲーム作成ツールGameMaker part5【マンセー】
378 :名前は開発中のものです。[sage]:2011/06/04(土) 22:51:51.73 ID:czogavCN - >377
それは間違い。 ScriptPDというスクリプトを参照し、中身のpoint_direction関数を実行、結果を変数PDに代入 という一連の流れをやっている。 PD=point_direction(...)でやった場合は、point_direction関数を実行、結果を変数PDに代入 だけになる。 やりたいことは多分、前ステップとの座標を比較して、違いがあれば処理みたいなイメージかもしれないけど 結局前ステップとの比較と言う「計算」をしている以上毎回計算しなくて済むわけがないからあんまり意味ない。 まぁ処理速度的な話になるならどれにしても大差ないだろうけど
|
- 【2D】ゲーム作成ツールGameMaker part5【マンセー】
379 :名前は開発中のものです。[sage]:2011/06/04(土) 23:00:48.85 ID:czogavCN - パフォーマンスに関して考え出すなら、GameMakerというよりはベースになってるDelphiを調べた方がいいんじゃないかな
GameMakerはライブラリ的な位置付けになりそうな感じがするから、GameMakeで何も処理しない状態のパフォーマンスから計測していけば、単純にどれだけ時間がかかるか出るかもしれない。 とはいえ1フレーム内でルームの描画、インスタンスの配置、ステップ内各処理、描画処理などなどをやってんだから計算程度じゃ0.000...秒という世界だろうけど。
|
- 【2D】ゲーム作成ツールGameMaker part5【マンセー】
382 :名前は開発中のものです。[sage]:2011/06/04(土) 23:18:28.12 ID:czogavCN - そう。 最終的に計算して代入してるから同じ。
例えば何かしら計算をさせる処理を複数のオブジェクトでやった場合無駄になる。 1ステップで何度も計算する事になるからね。 だから計算させるためのオブジェクトを一つ用意して毎ステップ1度だけ計算させるのがスマートだと思う。 これは個人的なやり方なんだけど、オブジェクトごとに数値をもっていると管理が大変な場合が多いからPersistentな管理用のオブジェクトを作っておくのはおすすめ。
|