キャラクターに動きはつけれますか?

解決


ピンキー  2005-02-04 21:18:10  No: 88201

ゲームのプログラミングをしていて表紙には題名とキャラクターがいます!実行すると両方が右に流れて進むのですが、キャラクターに動きをつけたいのです!VBではかのうですか?可能ならやりかたを教えていただきたいです。


ぬるぽ  2005-02-04 21:27:04  No: 88202

> VBではかのうですか?
かのうですw


ピンキー  2005-02-04 21:31:48  No: 88203

できればやり方を教えていただきたいです。
こーどとかわかりますか?


LESIA  2005-02-04 22:18:29  No: 88204

どういう動きをさせたいかがわからないけど、例えばフォームの中を円を描いて
動くのなら、こんな感じ。
もっと、違う動きをさせたいのなら、そのあたりを詳しく質問してください。

Dim i As Integer
Dim r As Integer
Dim sTime As Single

Const pi = 3.14159265358979

r = 1000
For i = 0 To 360
    sTime = Timer
    Do Until Timer - sTime > 1
        DoEvents
    Loop
    Picture1.Left = r * Cos(i * pi / 180) + (Me.ScaleWidth - Picture1.Width) \ 2
    Picture1.Top = r * Sin(i * pi / 180) + (Me.ScaleHeight - Picture1.Height) \ 2
Next i


ピンキー  2005-02-04 22:48:50  No: 88205

Const pi = 3.14159265358979
r = 1000
For i = 0 To 360
    sTime = Timer
    Do Until Timer - sTime > 1
        DoEvents
    Loop
    Picture1.Left = r * Cos(i * pi / 180) + (Me.ScaleWidth - Picture1.Width) \ 2
    Picture1.Top = r * Sin(i * pi / 180) + (Me.ScaleHeight - Picture1.Height) \ 2
Next i
はどこにいれたらよいのでしょうか・・・
歩いてる感じにできますか?


ピンキー  2005-02-04 22:55:28  No: 88206

今は
Private Sub timer1_timer()
    Image1.Left = Image1.Left + 100
    Image2.Left = Image2.Left + 100
    If Image1.Left > Form1.ScaleWidth And Image2.Left > Form1.ScaleWidth Then
        Form2.Show
        Form1.Hide
        Timer1.Enabled = False
    End If
End Sub

Private Sub Form_Load()
    MMControl1.DeviceType = "Sequencer"
    MMControl1.Command = "Open"
    MMControl1.Command = "play"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    MMControl1.Command = "Close"
End Sub
このようになっています


LESIA  2005-02-05 00:19:14  No: 88207

歩いてる感じというのも、難しそうだけど
こんなのとか。

Private Sub timer1_timer()
    Static bMoveImage As Boolean

    If bMoveImage = True Then    
        Image1.Left = Image1.Left + 100
    Else
        Image2.Left = Image2.Left + 100
    End If

    bMoveImage = Not bMoveImage

    If Image1.Left > Form1.ScaleWidth And Image2.Left > Form1.ScaleWidth Then
        Form2.Show
        Form1.Hide
        Timer1.Enabled = False
    End If
End Sub


しゃぼん  2005-02-05 00:45:04  No: 88208

そんな感じになりました。ありがとうございます!!
ついでなんですけど、他はどのような動きができますか?


ピンキー  2005-02-05 00:49:33  No: 88209

さきほどのシャボン玉はぴんきーです


ねろ  2005-02-05 00:55:22  No: 88210

こんなのは?  スタートはボタンで。
Option Explicit
Private Const Forwadr = -1  '前進
Private Const Back = 1      '後退
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Command1_Click()
    Dim x1 As Integer, x2 As Integer
    Dim y1 As Integer, y2 As Integer
    Dim Flg As Boolean
    Dim Direction '方向
    Randomize   ' 乱数発生ルーチンを初期化します。
    Do
        If Flg = True Then Direction = Forwadr Else Direction = Back
        x1 = Me.Width / 100 * Rnd * Direction
        y1 = Me.Height / 100 * Rnd
        x2 = Me.Width / 100 * 0.5 * Direction
        Image1.Left = Image1.Left + x1
        Image1.Top = Me.Height / 2 + y1
        Image2.Left = Image2.Left + x2
     
        '方向チェンジ
        If (Image1.Left > Me.Width) Or (Image1.Left < 0) Then Flg = Not Flg
        DoEvents
        Sleep (50)
    Loop
End Sub
Private Sub Form_Load()

    With Image2 'タイトル
        .Top = Me.Height / 2
        .Left = 0
        .Height = Me.Height / 10
        .Width = Me.Width / 5
    End With

    With Image1 'キャラクター
        .Top = Me.Height / 2
        .Left = Image1.Width / 2
        .Height = Me.Height / 10
        .Width = Me.Width / 30
        .ZOrder 0
    End With
End Sub


ピンキー  2005-02-05 01:00:48  No: 88211

すばらしいです!ありがとうございました


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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