3Dネット対戦ゲーム作成日記 part6

ゲーム制作
スポンサーリンク

やったー
意外に簡単に裏面の処理ができちゃった!
まさか2つのベクトルの外積の計算式がこんなところで役に立つなんて。

ただ1つの面を調べるのに8回もatan使ってます。
速度は大丈夫かな、描写速度よりは計算速度のほうが速いからいいけど。

だれか4点から右方向に回転か、左方向に回転か調べる方法でもっといい方法があったら教えて下さい^^

/*4点が左回転か右回転かを調べる*/

#defcfunc gsqcheck array gsqc_dx,array gsqc_dy
 dimtype gsqcheck_p,vartype("double"),4
 gsqcheck_p_2=0
 gsqcheck_p(0)=(atan((gsqc_dy(1)-gsqc_dy(0)),(gsqc_dx(1)-gsqc_dx(0)))-atan((gsqc_dy(2)-gsqc_dy(1)),(gsqc_dx(2)-gsqc_dx(1))))
 gsqcheck_p(1)=(atan((gsqc_dy(2)-gsqc_dy(1)),(gsqc_dx(2)-gsqc_dx(1)))-atan((gsqc_dy(3)-gsqc_dy(2)),(gsqc_dx(3)-gsqc_dx(2))))
 gsqcheck_p(2)=(atan((gsqc_dy(3)-gsqc_dy(2)),(gsqc_dx(3)-gsqc_dx(2)))-atan((gsqc_dy(0)-gsqc_dy(3)),(gsqc_dx(0)-gsqc_dx(3))))
 gsqcheck_p(3)=(atan((gsqc_dy(0)-gsqc_dy(3)),(gsqc_dx(0)-gsqc_dx(3)))-atan((gsqc_dy(1)-gsqc_dy(0)),(gsqc_dx(1)-gsqc_dx(0))))
 repeat 4
 if gsqcheck_p(cnt)>0{gsqcheck_p_2++}
 loop
 if gsqcheck_p_2>2{return 1}else{return 0}

キーボードの矢印キーで動かせるようにしたやつ。
立方体のみだからZソートしなくても、裏面処理のおかげでなんとか普通に見える。

そういえば、陰面処理したポリゴンの上に陰線処理したワイヤーを乗せると、アニメっぽくなるね。

コメント

タイトルとURLをコピーしました