シューティング の 渦巻き弾

解決


Techthrone  2006-08-27 06:52:14  No: 132912

渦巻き弾を作りたくて、某サイトの掲示板で相談したところ
Private Sub Form_Click()

    Const PI As Double = 3.14159268357438

    Dim Param As Double
    Dim X As Double
    Dim Y As Double
    Dim t As Double
    Dim Magnify As Double
    Dim XShift As Double
    Dim YShift As Double

    Me.BackColor = vbBlack

    Param = 0.1
    Magnify = 100
    XShift = Me.ScaleWidth \ 2
    YShift = Me.ScaleHeight \ 2

    'とりあえず4周分
    For t = 0 To 8 * PI Step 0.01

        X = Exp(Param * t) * Cos(t)
        Y = Exp(Param * t) * Sin(t)

        X = X * Magnify + XShift
        Y = Y * Magnify + YShift

        PSet (X, Y), vbRed

        DoEvents
    Next t
End Sub
というサンプルソースを見せてもらったのですが
実際自分のプログラムに入れたところ、弾が渦巻き状に表示される
(大量に)だけで
1つの弾をその軌道上で動かすと言うことは出来ませんでした
どうしたらいいでしょうか?
BitBltでやりたいです

ご教授願います


ガッ  2006-08-27 07:33:01  No: 132913

クロスサイトポストするのならそのURLも載せた方がいいかと
http://hpcgi1.nifty.com/rucio/mb1/mb1.cgi


ガッ  2006-08-27 07:43:29  No: 132914

あと、考えた痕跡が全く無いのですが、
もし本当に何も思いつかないのならそれは貴方の運がなかったということで
> 1つの弾をその軌道上で動かすと言うことは出来ませんでした
> どうしたらいいでしょうか?
あきらめるのも手の内だと思ってあきらめる方向もアリです。

…駄目もとで、「運動=速度を時間で積分した物、なので弾の速度=位置の1次微分を考えれば運動を表現できる」と残しておきます。
(実際はdiscreteなモノですが)


通ってみた  2006-08-28 00:14:58  No: 132915

回答ではありませんが、こういうことかなぁ・・・と

次の弾が表示される前に今の弾を消したら希望通りの動きに見えませんか?

基本的にアクションゲームのキャラクタというのは、前のキャラクタを消して次のキャラクタを描いています

>弾が渦巻き状に表示されるだけ
なのは、あくまでも弾道のサンプルだからでしょう


Techthrone  2006-08-29 07:55:33  No: 132916

>次の弾が表示される前に今の弾を消したら希望通りの動きに見えませんか?
それは重々承知していますが
その処理が解らないから困っているのです

もしもおわかりならばご教授願います


通ってみた  2006-08-29 16:10:12  No: 132917

>その処理が解らないから困っているのです

てっきりシューティングゲームをつくっていると思ったのですが違うようですね
シューティングゲームをつくっているのなら、自機の動きはどうしていますか?
敵機の動きは?

それと同じです


通ってみた  2006-08-29 16:42:40  No: 132918

一応、「実用的ではありませんが」Psetの直前にClsを実行してみてください
「とりあえず」それっぽく見えるはずです

ちなみに
>BitBltでやりたい
ということですが、BitBltの使い方はわかりますよね?
PsetのところをBitBltにするだけですが何か問題ありますか?

問題があるとするならば、

1.表示にPictureBoxを使っていない
2.弾の画像を用意していない
3.BitBltの使い方がわかっていない
4.基本的なゲームのつくり方がわかっていない

というところでしょうか


Techthrone  2006-08-29 18:28:48  No: 132919

Clsは、Form1.clsではなく、ただのclsですよね?
Form1.clsだと、グレーのフォームがでて、チカチカしたもので・・・


通ってみた  2006-08-30 05:39:09  No: 132920

>Clsは、Form1.clsではなく、ただのclsですよね?

えっと・・・Psetを打っているのはPictureBoxですか?Formですか?
それに聞く前にやってみれば済む話でもあります

また、最初に
>実用的ではありませんが
と断っていますよね?

あと、こちらが質問している
>シューティングゲームをつくっているのなら、自機の動きはどうしていますか?
>敵機の動きは?
にも返答頂けますか?

普通…かどうかはわかりませんが、大体の場合、自機と敵機の動きをつくってから弾の処理などをつくると思いますので、もうできていると思うのですが


Techthrone  2006-08-31 06:24:56  No: 132921

なんだかんだ解決しました


通ってみた  2006-08-31 08:55:15  No: 132922

絵に描いたような終わり方ですね・・・

他の閲覧者の参考になると思いますので、もしよければその「なんだかんだ」を教えていただきたいです


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加