Hallo!
Ich habe vor mit einigen Freunden ein Spiel zu schreiben und in dem Spiel will ich, dass Objekte sich bewegen oder befinden. Und zwar im Kreis.
Die Mathematik dahinter ist mir klar: Position(x=R*cos(a),y=R*sin(a)) Ich hab sogar nen Mathematiker gefragt
Zur einfachen erleuterung sind überall kommentare; naja fast schon zu fiele
#include <Array.au3> ;Einbinden von erweiterten Array Funktionen (z.B. _arraydisplay)
$jo=CirclePos(200,4) ;Ruft die Funnktion CirclePos(Durchmesser=200, Bestandteile=4) auf.
GUICreate("jo",200,200,0,0) ;Erstellt ein Fenster
GUISetState(@sw_show) ;Macht das Fenster sichtbar
$M=GUICtrlCreateButton("M",0-10+100,0-10+100,20,20) ;Erstellt den Mittelpunktsknopf
GUICtrlSetColor($M,0xFFFFFF) ;Schriftfarbe von $M
GUICtrlSetBkColor($M,0x000000) ;Hintergrundfarbe von $M
GUICtrlCreateButton("1",$jo[0][0]-10+100,$jo[0][1]-10+100,20,20) ;müsste 100 | 0 sein
GUICtrlCreateButton("2",$jo[1][0]-10+100,$jo[1][1]-10+100,20,20) ;müsste 0 | 100 sein
GUICtrlCreateButton("3",$jo[2][0]-10+100,$jo[2][1]-10+100,20,20) ;müsste -100 | 0 sein
GUICtrlCreateButton("4",$jo[3][0]-10+100,$jo[3][1]-10+100,20,20) ;müsste 0 | -100 sein
_arraydisplay($jo) ;Zeigt das Array in einem Fenster mit werten an
Func CirclePos($Durchmesser,$Anzahl) ;Funktion Deklarieren
Dim $return[$Anzahl][2] ;Erstellt ein 2-Dimensionales Array
$grad=360/$Anzahl ;Die Gradzahl errechnen
$Radius=$Durchmesser/2 ;Radius berechnen
For $i=0 To $Anzahl-1 ;Fortschrittsvariable erhöhen pro Durchlauf
$return[$i][1]=sin($i*$grad) * $Radius ;vertikale Position in das Array eintragen ;IRGENDWO IST HIER EIN FEHLER
$return[$i][0]=cos($i*$grad) * $Radius ;horizontale Position in das Array eintragen ;IRGENDWO IST HIER EIN FEHLER
Next ;Schleifenbegrenzung
Return $return ;Gibt das 2-Dimensionale Array zurück
EndFunc ;Funktionsende
Bitte um hilfe, dringend!
PS: Für das spiel brauchen wir ggf. noch leute, die sowohl 2D, als auch 3D objekte (.X format; bitmaps) gut erstellen kann.