2d Circle Packing
Monkey Forums/Monkey Code/2d Circle Packing
| ||
![]() Made after watching a coding tutorial video on a youtube coding channel (The coding train) What the code does is it adds circles on the screen and grows these until they either touch another circle or touch the border of the screen, Here is the link to the channel : https://www.youtube.com/user/shiffman/featured Here the code :
Import mojo
Class circle
Field x:Int,y:Int
Field radius:Int
Method New()
radius = 2
Local exitloop:Bool=False
While exitloop = False
exitloop=True
Self.x = Rnd(DeviceWidth)
Self.y = Rnd(DeviceHeight)
For Local i:=Eachin mycircle
If i.x = x And i.y = y Then
Else
If circleoverlap( i.x,i.y,i.radius,
x,y,2) = True Then
exitloop=False
End If
End If
Next
Wend
End Method
Method grow()
If x-radius<0 Then Return
If x+radius>DeviceWidth Then Return
If y-radius<0 Then Return
If y+radius>DeviceHeight Then Return
For Local i:=Eachin mycircle
If i.x=x And i.y=y Then
Else
If circleoverlap( x,y,radius,
i.x,i.y,i.radius)
Return
End If
End If
Next
radius+=1
End Method
Method draw()
SetColor 255,255,255
DrawCircle x,y,radius
SetColor 0,0,0
DrawCircle x,y,radius-2
End Method
Function circleoverlap:Bool(x1:Int,y1:Int,r1:Int,x2:Int,y2:Int,r2:Int)
Local dx:Int = x1-x2
Local dy:Int = y1-y2
Local r:Int = r1+r2
If dx*dx+dy*dy <= r*r Then Return True Else Return False
End Function
End Class
Global mycircle:List<circle> = New List<circle>
Class MyGame Extends App
Field counter:Int
Method OnCreate()
SetUpdateRate(5)
mycircle.AddLast(New circle())
End Method
Method OnUpdate()
If counter>100 Then Return
For Local i=0 Until 5
mycircle.AddLast(New circle())
Next
For Local i:=Eachin mycircle
i.grow
Next
counter+=1
End Method
Method OnRender()
Cls 0,0,0
SetColor 255,255,255
For Local i:=Eachin mycircle
i.draw
Next
End Method
End Class
Function Main()
New MyGame()
End Function
|
| ||
| nice ive been watching him and eventually wanted try everything he does on monkey |
| ||
| Yeah, The Coding Train is a good source for things to program. I noticed he makes around 1700 a month on patreon. He must be doing something right! That language he uses (p5) looks interesting also. It has 3d too. |
| ||
| it does look cool, I've been looking at lua/love2d, would mind learning that and monkey. one thing i like about lua/love2d is the zerobrane ide it lets you live code with the corona extension, i would love that for monkey. wow 1700$ I've seen his live shows it goes up to 1000 viewers in a matter of minutes the few times I've checked it out. right now I'm learning trig and stuff before I get back to coding and put some projects on hold. I read somewhere math isn't your fav subject. there's a couple of sites khan academy of course and a new site I'm on which is pretty awesome schoolyourself.com, been picking stuff up pretty quick there. I love 2d to me it will never die but would like to learn 3d someday, I feel like 3d is for bigger teams and not solo since there is so much involved but hey nothings impossible. |
| ||
| Would be cool if someone could start a patreon supported monkey live video tutorials Like him |
