ページ 11

ゲームプログラミングの館28章について

Posted: 2010年9月19日(日) 04:47
by 超初心者
ゲームプログラミングの館28章でジャンプの処理をしていますが、なぜ特定の位置までジャンプしてそこでとまらずに落ちてくるのかがわかりません
わかる人教えてください
お願いします

あと、できればゲームプログラミングの館26章でなぜこのtama.x=640/2;は640を2で割っているのかということと、なぜ弾が画面の外まで飛んでいくのかということを教えてください

読みにくい文章でいろんな質問をしてしまってすいません

Re:ゲームプログラミングの館28章について

Posted: 2010年9月19日(日) 05:02
by シエル
>なぜ特定の位置までジャンプしてそこでとまらずに落ちてくるのかがわかりません
>わかる人教えてください

重力加速度のせいです。
この辺は色々ググってみたら、その手のページがたくさんあるのでそちらを参照して下さい。


>あと、できればゲームプログラミングの館26章でなぜこのtama.x=640/2;は640を2で割っているのかと>いうことと、なぜ弾が画面の外まで飛んでいくのかということを教えてください

画面の幅を2で割った値を入れることにより、
画面の中央を初期座標にしているだけでしょう。
自分の好きな位置の座標にしても全然かまいません。

>何故弾が外まで飛んでくか


下記のソースを見てください。
フラグがたっている弾の座標を8減らしています。
8減らすということは画面の上に移動していくということです。
これはフラグが立っている間はずっと行われている処理です。

8を減らしていって、画面外(大体-32)の位置まで来たら初期値に戻して、フラグを
戻しています。

for(i=0;i<10;i++){
if(tama.flag==1){ //発射している玉なら
tama.y-=8; //座標を8減らす
DrawGraph( tama.x , tama.y , image[1] , TRUE );//玉を描画
if(tama.y < -32){ //もし画面外まで来たら
     tama.y=480; //初期値に戻し、
tama.flag=0; //発射フラグを戻す
}
}
}


前回の質問と今回の質問の内容からして、まず常にループしているという事を頭に置いて
考えたほうがよいでしょう。

Re:ゲームプログラミングの館28章について

Posted: 2010年9月19日(日) 05:11
by 超初心者
わかりやすい説明ありがとうございます^^

差し支えなければ28章でmath.hというヘッダファイルをインクルードしているのはなぜか教えてください

Re:ゲームプログラミングの館28章について

Posted: 2010年9月19日(日) 08:42
by シエル
sqrtという平方根を求めるための関数を使うためです。

math.hをインクルードしないと、この関数を使うことができません。

Re:ゲームプログラミングの館28章について

Posted: 2010年9月19日(日) 13:16
by Dixq (管理人)
物理的な計算式については、一つ前の27章で説明していますが、ご覧になりましたでしょうか?

別に物理的な計算式が解らなくてもゲームは作れますし、
物理を習ったことがある人でないと「?」な内容かもしれませんので、無理して読んで頂く必要はありません。

27章と重複しますが力学には

画像

こんな方程式が存在します。
今、時間tのy座標を求めたいのですから、1式が必要です。
しかし初速度を代入したくないので、2式で初速度を消しています。

得られた3式から座標を計算しています。

Re:ゲームプログラミングの館28章について

Posted: 2010年9月19日(日) 16:35
by 超初心者
管理人さん シエルさん
ありがとうございました
ちゃんと理解できました^^