Здравствуйте, я начал более углублённо изучать BM и решил начать с типов. Изучал я их по примерам и некоторым статьям. Я хотел узнать, можно ли как-нибудь мою программку оптимизировать (вывод,обработку...). Заранее спасибо
.
Const W=1920
Const H=1080
Const Gravity#=.15
Const maxsparks=55
HideMouse
Graphics W,H,32,60
Global LSparks:TList=CreateList()
AutoMidHandle(True)
Type TSpark
Field x#,y#,xs#,ys#,ang,angs,r,g,b
Function Create(x,y,r,g,b)
Local Spark:TSpark=New TSpark
Local an#=Rnd(360),sp#=Rnd(2,5)
Spark.x=x
Spark.y=y
Spark.xs#=Cos(an#)*sp
Spark.ys#=Sin(an#)*sp
Spark.r=r
Spark.g=g
Spark.b=b
Spark.angs=Rnd(1,10)
Spark.ang=0
LSparks.Addlast(Spark)
EndFunction
Method Remove()
LSparks.remove(Self)
EndMethod
Function Update()
For Local Spark:TSpark=EachIn LSparks
Spark.x#:+Spark.xs#
Spark.y#:+Spark.ys#
Spark.ang:+Spark.angs
Spark.ys#:+Gravity#
SetRotation Spark.ang
SetColor Spark.r,Spark.g,Spark.b
SetHandle 8,8
DrawRect Spark.x,Spark.y,17,17
If Spark.y>H+17 Then Spark.Remove
SetColor 255,255,255
SetRotation 0
Next
EndFunction
EndType
While Not KeyDown(Key_escape)
Cls
DrawRect MouseX(),MouseY(),17,17
SetAlpha 0.5
SetBlend LIGHTBLEND
If MouseDown(1) Then
For Local crsps=1 To maxsparks
r=Rnd(255)
g=Rnd(255)
b=Rnd(255)
TSpark.Create(MouseX(),MouseY(),r,g,b)
Next
EndIf
If KeyHit(KEY_D) Then debug=1-debug
If debug Then
DrawText "MemAlloced="+GCMemAlloced(),10,10
EndIf
TSpark.Update
Flip
Wend