#19
投稿記事
by Tatu » 15年前
>>ある向きに対して逆向きには角度が違う?
では、その違いはどういうものでしょうか?
右向き(0)の反対は左向き(PI)で
下向き(PI/2)の反対は上向き(PI*3/2)で
上向き(PI*3/2)の反対は下向きだけど
ある角度にPI2の整数倍を足した角度は同じ方向を指すから
下向きはPI/2だけではなく、PI*5/2でもあらわすことができる。
これらからどのように変化させればよいかわからないでしょうか?
速さに-をかけるのも一つの手段ではあります。
if文の条件
それでもよいですが、
if(enemy.cnt%160==80)と書くと考えてました。
>>jの字の形に動く。
ここでenemy.cntがいくつの時に向きとenemy.knd2がどうなるのかが
問題になるのですが
まず、直進が終わってから何カウントのとき向きが変化するでしょうか。
いちばん最初が40カウントだとすれば、最初からその次までは40カウントの二倍かかるから120カウントになります。
それ以降は200,280,....のときに向きが変わります。
これと最初の20カウントが直進であることを考えると
enemy.cntが60,140,220,300,...のときに向きが変わる(enemy.sp *= -1 もしくは enemy.ang += PI)ことになります。
enemy.cntが20のときenemy.sp=1, enemy.ang=0, enemy.knd2=2(反時計回り)とすれば
enemy[i].cntが60,220,380,...のときにenemy[i].knd2が1(時計回り)になり、
enemy[i].cntが140,300,460,...のときにenemy[i].knd2が2(反時計回り)になります。