Danke dir

. Das ist leider bereits der zweite Troll. Nach Abstimmung wird der aktuelle Durchschnitt angezeigt (Ergebnis also

) Da gibt es Spezialisten die einfach reihenweise 1 senden, um den Durchschnitt runter zu ziehen. Habe diese gelöscht, leicht erkennbar an der Dauer von 2 Minuten. Werde das mit der IP-Prüfung noch einführen.
AVI kommt mit der nächsten Version voraussichtlich bereits hinzu. Der Editor baut inzwischen auf die Module auf, so kann alles erdenkliche realisiert werden. Dabei gibt es eine Schnittstelle mit dem GUI, wie auch die Timeline. Mal Beispiele:
- Objekte manipulieren
- Animationen der Objekte
- Elemente wie Formen oder Text darstellen und animieren
- Blendeffekte
Es stehen viele Zeichenfunktionen bereit, und eben die Möglichkeit Dinge im Verhältnis zur Zeit zu verwalten/berechnen/zeichnen. Werde mal hierzu bis zur nächsten Version ab und zu Beispiele posten, denn der Editor ist bereits einsatzfähig und rendert das Projekt.
Auf Objekte kann direkt aus dem Modul zugegriffen werden, die Strukturen liegen offen. Hier mal ein Beispiel-Modul das für Tests verwendet wurde. Es fügt lediglich verschiebbare "Hello Canvas" Text-Elemente hinzu, und zeichnet einen verstellbaren Rahmen.
Unlimited Basic Skript:
Code: Alles auswählen
Global brd.f, col
Global Group, pBorder, pColor, pBtnText
Global MouseL.b
Enumeration
#ELMT_TEXT
EndEnumeration
Structure ELEMENTINFO
Class.i
Label.s
x.f
y.f
Sel.b
EndStructure
Global NewList Element.ELEMENTINFO()
Procedure ElementNew(Class, x, y, Label.s)
list_add(Element())
With Element()
\Label = Label
\x = x
\y = y
EndWith
EndProcedure
Procedure Startup()
lng_reg("DE", "BORDER", "Rahmen")
lng_reg("DE", "COLOR", "Farbe")
lng_reg("DE", "ADDTEXT", "Text hinzufügen")
lng_reg("US", "BORDER", "Border", #TRUE)
lng_reg("US", "COLOR", "Color", #TRUE)
lng_reg("US", "ADDTEXT", "Add Text", #TRUE)
EndProcedure
Procedure CanvasNew(Name.s, Width, Height)
Group = property_group(lng("BORDER"))
pBorder = property_string(Group, lng("WIDTH"), "0")
pColor = property_color(Group, lng("COLOR"), 0)
pBtnText = property_button(Group, lng("ADDTEXT"))
EndProcedure
Procedure CanvasEvent(Event, x, y)
Select Event
Case #MOUSE_MOVE
With Element()
ForEach Element()
If \Sel And MouseL
\x = x
\y = y
EndIf
Next
EndWith
Case #MOUSE_LEFT_RELEASED
MouseL = #False
Case #MOUSE_LEFT_PRESSED
MouseL = #True
With Element()
ForEach Element()
If x>\x And y>\y And x<\x+20 And y<\y+20
\Sel = #True
Else
\Sel = #False
EndIf
Next
EndWith
EndSelect
EndProcedure
Procedure ControlEvent(Ctrl, Event)
If Event = #MOUSE_LEFT_RELEASED
Select Ctrl
Case pBtnText
ElementNew(#ELMT_TEXT, random(100), random(100), "Hello Canvas")
EndSelect
EndIf
EndProcedure
Procedure RenderPrepare()
; Get actual Width
brd = val_f(get_string(pBorder))
col = property_state_get(pColor)
EndProcedure
Procedure Render(Object, Time, Width, Height)
draw_set_mode(#MODE_OUTLINE)
pen_size(brd)
draw_rectangle(0, 0, Width, Height, rgb_a(col,255))
draw_circle(Time/100, 20, 20, rgb_a(col, 128))
With Element()
draw_set_mode(#MODE_DEFAULT)
ForEach Element()
draw_text(\x, \y, \Label)
Next
EndWith
EndProcedure