ゲーム内の細かいエフェクト

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
KA

ゲーム内の細かいエフェクト

#1

投稿記事 by KA » 15年前

よくゲームをやっていると、文字や画像が色々なエフェクトで画面に出てきたりしています(横から・点滅等)。
これをDxライブラリで再現しようと思って考えていたのですが、一つのエフェクトを再現するのにかなり長くなってしまって、とても無駄な処理に思えてきます。

何かコードをスッキリさせつつ、エフェクトを再現できるような方法はありませんか?
というより、普通のゲームはエフェクトをどのようにコードを書いているのでしょうか?

Dixq (管理人)

Re:ゲーム内の細かいエフェクト

#2

投稿記事 by Dixq (管理人) » 15年前

そのエフェクトによってどう再現するのが適切かは変わってくると思うので、
例えばこれと言ってもらえた方が解りやすいかも知れません。

KA

Re:ゲーム内の細かいエフェクト

#3

投稿記事 by KA » 15年前

例えば、文字の点滅やフェードインです。

ゲームのタイトルに入る前に「ボタンを押してください」と表示されていてそれが点滅していたり、
項目が横から流れてきたりするのを表現したいのですがどうもうまくきれいなコードになりません。

Dixq (管理人)

Re:ゲーム内の細かいエフェクト

#4

投稿記事 by Dixq (管理人) » 15年前

その程度なら大して複雑なコードにならないと思いますが・・。
例えば点滅させる描画であれば

描画();



if( (カウンタ/○)%△ )
描画();

のように書けばいいだけじゃないでしょうか。

カウンタは0から整数で一つずつ増加している数値だとして、その割った余りによって描画するかしないかわけてやれば
簡単に点滅出来そうです。

項目を移動させたいなら項目の座標を計算する関数を作ってやり

void 項目の座標計算(){

for(i=0;i<項目数;i++){
項目.x += 移動量;
項目.y += 移動量;
}

}

void エフェクト制御メイン(){
if(項目の座標が移動中){
項目の座標計算();
}
}

こんな感じで私なら作るでしょうか。
別に配列でもリストでも何でもいいんですが。

計算が単純なら一緒に書いてやってもいいと思いますし、
計算が複雑ならそれを計算する担当の関数を作ってやればどうでしょう?

KA

Re:ゲーム内の細かいエフェクト

#5

投稿記事 by KA » 15年前

やっぱりそう書くしかないですよね…

自分のもそう書いているのですが、考えているエフェクトが細かい&多いのでいちいち関数化・分割しないといけないのが非効率な気がしたのですが、やはり地道に書いていくしかないんですね。

softya

Re:ゲーム内の細かいエフェクト

#6

投稿記事 by softya » 15年前

構造体配列でタイミングやら、パラメータやらを定義したテーブルを作るとか。
龍神録の敵の発生テーブルの様なイメージです。

KA

Re:ゲーム内の細かいエフェクト

#7

投稿記事 by KA » 15年前

なるほど。そういう方法もありますね。

ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る