What do you mean with this? A canvas cannot hide anything directly.... however it doesn't work if there's a canvas on top of it.
Use a Timer.Another question... do you know how to make infinite loops?
i tried do while true ... loop
but it couldn't see the end sub, because of it, so instead i used..
For a = 1 To 1000000 ... next
is there another way to loop infinitly?
Thanks
Sub Activity_Touch (Action As Int, X As Float, Y As Float)
Log("(x,y)=" & X & "," & Y)
End Sub
Sub Process_Globals
Dim Timer1 As Timer
Dim xx(100) As Double
Dim yy(100) As Double
Dim vx(100) As Double
Dim vy(100) As Double
Dim ax(100) As Double
Dim ay(100) As Double
Dim r(100) As Double
Dim dt As Double
Dim w As Double
Dim h As Double
Dim diffx As Double
Dim diffy As Double
Dim dist1 As Double
Dim dist2 As Double
Dim xval As Double
Dim yval As Double
End Sub
Sub Globals
Dim Canvas1 As Canvas
End Sub
Sub Activity_Create(FirstTime As Boolean)
canvas1.Initialize(Activity)
Globe
End Sub
Sub Globe
w = Canvas1.Bitmap.Width
h = Canvas1.Bitmap.Height
xx(0) = w/2
yy(0) = h/2
vx(0) = Rnd(-5,5)
vy(0) = Rnd(-5,5)
ax(0) = 0
ay(0) = 0
r(0) = 100
For i = 1 To 99
xx(i) = Rnd(0,w)
yy(i) = Rnd(0,h)
vx(i) = Rnd(-20,20)
vy(i) = Rnd(-20,20)
ax(0) = 0
ay(0) = 0
r(i) = Rnd(10,15)
Next
dt = .1
'For a = 1 To 1000000
'Next
Timer1.Initialize("MainEvent", 10)
Timer1.Enabled = True
End Sub
Sub MainEvent
For i = 0 To 99
For j = 0 To 99
ax(j) = 0.0;
ay(j) = 0.0;
Next
For j = 0 To 99
If i <> j Then
diffx = xx(i) - xx(j)
diffy = yy(i) - yy(j)
dist1 = Sqrt(Power(diffx,2)+Power(diffy,2))
dist2 = r(i) + r(j)
If dist1 < dist2 Then
deltaDistance = (dist2 - dist1)
xval = (((deltaDistance * 10.0) / dist2) * diffx)
yval = (((deltaDistance * 10.0) / dist2) * diffy)
ax(i) = ax(i) + xval
ay(i) = ay(i) + yval
End If
End If
Next
vx(i) = (vx(i) + (ax(i) * dt)) *.999
vy(i) = (vy(i) + (ay(i) * dt)) *.999
xx(i) = xx(i) + (vx(i) * dt)
yy(i) = yy(i) + (vy(i) * dt)
If xx(i)-r(i) < 0 Then
vx(i) = -vx(i)
xx(i) = 0 + r(i)
End If
If yy(i)-r(i) < 0 Then
vy(i) = -vy(i)
yy(i) = 0 + r(i)
End If
If xx(i)+r(i) > w Then
vx(i) = -vx(i)
xx(i) = w - r(i)
End If
If yy(i)+r(i) > h Then
vy(i) = -vy(i)
yy(i) = h - r(i)
End If
Next
Canvas1.DrawColor(Colors.Black)
Canvas1.DrawCircle(xx(0),yy(0),r(0),Colors.Red,True,5)
For i = 1 To 99
Canvas1.DrawCircle(xx(i),yy(i),r(i),Colors.Green,True,5)
Next
Activity.Invalidate
DoEvents
End Sub
Sub Process_Globals
Dim Timer1 As Timer
Dim xx(100) As Double
Dim yy(100) As Double
Dim vx(100) As Double
Dim vy(100) As Double
Dim ax(100) As Double
Dim ay(100) As Double
Dim r(100) As Double
Dim dt As Double
Dim w As Double
Dim h As Double
Dim diffx As Double
Dim diffy As Double
Dim dist1 As Double
Dim dist2 As Double
Dim xval As Double
Dim yval As Double
End Sub
Sub Globals
Dim Canvas1 As Canvas
End Sub
Sub Activity_Create(FirstTime As Boolean)
canvas1.Initialize(Activity)
Globe
End Sub
Sub Globe
w = Canvas1.Bitmap.Width
h = Canvas1.Bitmap.Height
xx(0) = w/2
yy(0) = h/2
vx(0) = Rnd(-5,5)
vy(0) = Rnd(-5,5)
ax(0) = 0
ay(0) = 0
r(0) = 100
For i = 1 To 99
xx(i) = Rnd(0,w)
yy(i) = Rnd(0,h)
vx(i) = Rnd(-20,20)
vy(i) = Rnd(-20,20)
ax(0) = 0
ay(0) = 0
r(i) = Rnd(10,15)
Next
dt = .1
'For a = 1 To 1000000
'Next
Timer1.Initialize("MainEvent", 10)
Timer1.Enabled = True
End Sub
Sub MainEvent
For i = 0 To 99
For j = 0 To 99
ax(j) = 0.0;
ay(j) = 0.0;
Next
For j = 0 To 99
If i <> j Then
diffx = xx(i) - xx(j)
diffy = yy(i) - yy(j)
dist1 = Sqrt(Power(diffx,2)+Power(diffy,2))
dist2 = r(i) + r(j)
If dist1 < dist2 Then
deltaDistance = (dist2 - dist1)
xval = (((deltaDistance * 10.0) / dist2) * diffx)
yval = (((deltaDistance * 10.0) / dist2) * diffy)
ax(i) = ax(i) + xval
ay(i) = ay(i) + yval
End If
End If
Next
vx(i) = (vx(i) + (ax(i) * dt)) *.999
vy(i) = (vy(i) + (ay(i) * dt)) *.999
xx(i) = xx(i) + (vx(i) * dt)
yy(i) = yy(i) + (vy(i) * dt)
If xx(i)-r(i) < 0 Then
vx(i) = -vx(i)
xx(i) = 0 + r(i)
End If
If yy(i)-r(i) < 0 Then
vy(i) = -vy(i)
yy(i) = 0 + r(i)
End If
If xx(i)+r(i) > w Then
vx(i) = -vx(i)
xx(i) = w - r(i)
End If
If yy(i)+r(i) > h Then
vy(i) = -vy(i)
yy(i) = h - r(i)
End If
Next
Canvas1.DrawColor(Colors.Black)
Canvas1.DrawCircle(xx(0),yy(0),r(0),Colors.Red,True,5)
For i = 1 To 99
Canvas1.DrawCircle(xx(i),yy(i),r(i),Colors.Green,True,5)
Next
Activity.Invalidate
DoEvents
End Sub
Sub Process_Globals
Dim Timer1 As Timer
Dim xx(100) As Double
Dim yy(100) As Double
Dim vx(100) As Double
Dim vy(100) As Double
Dim ax(100) As Double
Dim ay(100) As Double
Dim r(100) As Double
Dim dt As Double
Dim w As Double
Dim h As Double
Dim diffx As Double
Dim diffy As Double
Dim dist1 As Double
Dim dist2 As Double
Dim xval As Double
Dim yval As Double
End Sub
Sub Globals
Dim Canvas1 As Canvas
End Sub
Sub Activity_Create(FirstTime As Boolean)
canvas1.Initialize(Activity)
Globe
End Sub
Sub Globe
w = Canvas1.Bitmap.Width
h = Canvas1.Bitmap.Height
xx(0) = w/2
yy(0) = h/2
vx(0) = Rnd(-5,5)
vy(0) = Rnd(-5,5)
ax(0) = 0
ay(0) = 0
r(0) = 100
For i = 1 To 99
xx(i) = Rnd(0,w)
yy(i) = Rnd(0,h)
vx(i) = Rnd(-20,20)
vy(i) = Rnd(-20,20)
ax(0) = 0
ay(0) = 0
r(i) = Rnd(10,15)
Next
dt = .1
'For a = 1 To 1000000
'Next
Timer1.Initialize("MainEvent", 10)
Timer1.Enabled = True
End Sub
Sub MainEvent
For i = 0 To 99
For j = 0 To 99
ax(j) = 0.0;
ay(j) = 0.0;
Next
For j = 0 To 99
If i <> j Then
diffx = xx(i) - xx(j)
diffy = yy(i) - yy(j)
dist1 = Sqrt(Power(diffx,2)+Power(diffy,2))
dist2 = r(i) + r(j)
If dist1 < dist2 Then
deltaDistance = (dist2 - dist1)
xval = (((deltaDistance * 10.0) / dist2) * diffx)
yval = (((deltaDistance * 10.0) / dist2) * diffy)
ax(i) = ax(i) + xval
ay(i) = ay(i) + yval
End If
End If
Next
vx(i) = (vx(i) + (ax(i) * dt)) *.999
vy(i) = (vy(i) + (ay(i) * dt)) *.999
xx(i) = xx(i) + (vx(i) * dt)
yy(i) = yy(i) + (vy(i) * dt)
If xx(i)-r(i) < 0 Then
vx(i) = -vx(i)
xx(i) = 0 + r(i)
End If
If yy(i)-r(i) < 0 Then
vy(i) = -vy(i)
yy(i) = 0 + r(i)
End If
If xx(i)+r(i) > w Then
vx(i) = -vx(i)
xx(i) = w - r(i)
End If
If yy(i)+r(i) > h Then
vy(i) = -vy(i)
yy(i) = h - r(i)
End If
Next
Canvas1.DrawColor(Colors.Black)
Canvas1.DrawCircle(xx(0),yy(0),r(0),Colors.Red,True,5)
For i = 1 To 99
Canvas1.DrawCircle(xx(i),yy(i),r(i),Colors.Green,True,5)
Next
Activity.Invalidate
DoEvents
End Sub
Sub Activity_Touch (Action As Int, X As Float, Y As Float)
xx(0) = x
yy(0) = y
End Sub
I have the full version. But I think it should still work for you, afterall you were able to compile before?Signing package file (debug key). Error
Do you have the full version of the compiler?
No. Just the Sub name.Should both have the word Tick in them?
ie. "Timer1.Initialize("MainEvent_Tick", 10)" ?