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

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

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

#1

投稿記事 by 超初心者 » 15年前

ゲームプログラミングの館28章でジャンプの処理をしていますが、なぜ特定の位置までジャンプしてそこでとまらずに落ちてくるのかがわかりません
わかる人教えてください
お願いします

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

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

シエル

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

#2

投稿記事 by シエル » 15年前

>なぜ特定の位置までジャンプしてそこでとまらずに落ちてくるのかがわかりません
>わかる人教えてください

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


>あと、できればゲームプログラミングの館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章について

#3

投稿記事 by 超初心者 » 15年前

わかりやすい説明ありがとうございます^^

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

シエル

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

#4

投稿記事 by シエル » 15年前

sqrtという平方根を求めるための関数を使うためです。

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

Dixq (管理人)

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

#5

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

物理的な計算式については、一つ前の27章で説明していますが、ご覧になりましたでしょうか?

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

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

画像

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

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

超初心者

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

#6

投稿記事 by 超初心者 » 15年前

管理人さん シエルさん
ありがとうございました
ちゃんと理解できました^^

閉鎖

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