ゲームのプログラミングをしていて表紙には題名とキャラクターがいます!実行すると両方が右に流れて進むのですが、キャラクターに動きをつけたいのです!VBではかのうですか?可能ならやりかたを教えていただきたいです。
> VBではかのうですか?
かのうですw
できればやり方を教えていただきたいです。
こーどとかわかりますか?
どういう動きをさせたいかがわからないけど、例えばフォームの中を円を描いて
動くのなら、こんな感じ。
もっと、違う動きをさせたいのなら、そのあたりを詳しく質問してください。
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
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
はどこにいれたらよいのでしょうか・・・
歩いてる感じにできますか?
今は
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
このようになっています
歩いてる感じというのも、難しそうだけど
こんなのとか。
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
そんな感じになりました。ありがとうございます!!
ついでなんですけど、他はどのような動きができますか?
さきほどのシャボン玉はぴんきーです
こんなのは? スタートはボタンで。
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
すばらしいです!ありがとうございました
ツイート | ![]() |