掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
三角関数について (ID:119937)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
三角関数を使ってシューティングゲームの誘導弾をつくろうとしたのですが、 形としては 「敵が前方から向かってきて自機に向かって弾を撃ち、 その打った弾が誘導弾となって自機に向かってくる。」 と言う感じです。 そこで、 ソースの一部なのですが、 三角関数にする上で改良した点が、 ①フォームロードに Dim sita As Double '角度変数θ Dim sita2 As Double Dim sita3 As Double を追加 ②敵の弾の表示のサブジェクトをこのように改良 Private Sub Teki4tama() '敵の玉(強い敵) If Kaunnto = 2 Then BitBlt Form1.hDC, TogetogeX(b) - 16, TogetogeY - 16, 32, 32, Picture16.hDC, 0, 0, vbSrcAnd BitBlt Form1.hDC, TogetogeX(b) - 16, TogetogeY - 16, 32, 32, Picture15.hDC, 0, 0, vbSrcPaint If TogetogeY > 1100 Then TogetogeY = 1101 If TogetogeX(0) > 2000 Then TogetogeX(0) = 2001 If TogetogeX(2) < -2000 Then TogetogeX(2) = -2001 Select Case b Case 0 TogetogeY = TogetogeY + Sin(sita) '3 TogetogeX(0) = TogetogeX(0) + Cos(sita) '7 Case 1 TogetogeY = TogetogeY + Sin(sita2) '3 Case 2 TogetogeY = TogetogeY + Sin(sita3) '3 TogetogeX(2) = TogetogeX(2) + Cos(sita3) '- 7 End Select End If End Sub ③タイマーにこのような命令を入れる '左 If key(2) = True And 0 < sita < 180 Then sita = sita - 2 If key(3) = True And 0 < sita < 180 Then sita = sita + 2 If key(2) = True And 0 < sita2 < 180 Then sita2 = sita2 - 2 If key(3) = True And 0 < sita2 < 180 Then sita2 = sita2 + 2 If key(2) = True And 0 < sita3 < 18 ちなみにkey(2)は左 key(3)は右が押されているか否かのboolean変数です そしてこれを実行すると、始めは全ての弾が上に行き、(自機と逆方向) その後小刻みに震えながら横に動いたりと分けがわからず。。。 これで正しいと思いつつ結果は全くおもいどうりになりません。 どなたかご教授いただけないでしょうか。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.