Autor Nachricht

Ocye

(Senior Member)

geändert von: Ocye - 09.10.08, 13:59:26

Hallo,
Ich versuche mich an einer 3D Erweiterung für Scrabble. Die bisherige 2D Version gibt es unter http://sourceforge.net/projects/scrabble. Im Moment ist die 3D-version noch in einem recht frühen Stadium und ich hoffe, dass mir Net7 oder jemand anderes weiter helfen kann. Meine Fragen würde ich dann hier posten.
Da der Code etwas unübersichtlich ist, muss ich wohl etwas zum prinzipiellen Aufbau sagen. UMain enthält das Hauptfenster und macht eigentlich nichts. In UTypes deklariere ich übergreifende Typen, UGameOptions enthält alles, was der Benutzer einstellen kann und UScrabble die grundlegenden Spielroutinen - auf diese Units greifen alle anderen zurück und lesen die Eigenschaften dort aus. In UGLScrabble erzeuge ich den GLContext und leite entweder die 2D oder die 3D Version davon ab. Dort werden in den DummyCube entweder GLPlanes oder GLCubes eingefügt. Die Textausgabe erfolgt über Material dynamisch, da wegen der Internationalisierung andere Buchstaben (und Texturen) eingesetzt werden können.
Jede Kritik und Anregung sind natürlich willkommen.
TIA, Heiko.
02.09.08, 17:04:21

Ocye

(Senior Member)

Picking
Wenn ich einen Spielstein auf das Feld ziehen will (Drag 'n Drop), dann muss ich wissen, welches belegt werden soll und ob das Feld frei ist. Ich habe in MouseMove (UGLScrabble) die Beispielroutine eingebaut FPick:=(SceneViewer.Buffer.GetPickedObject(x, y) as TGLCustomSceneObject);, aber damit wird alles sehr zäh.
Primär suche ich aber eine Lösung, damit im 3D Modus nur die Ebene gepickt wird, die gerade aktiv ist (helle Plane), da ich sonst dort ja nur immer die äußeren Cubuse (oder Cubi? Very Happy ) finden würde. Diese Plane wird noch variabel für die Dimensionen xy/xz/yz.
Die FOnMessages habe ich nur zum Debuggen eingebaut - prinzipiell klappt das Picking.
TIA, Heiko.
02.09.08, 17:14:12

Ocye

(Senior Member)

Noch ein Problem: wenn ich den GL-Kontext auf dem sekundären Display erzeuge, friert das Programm ein. Auf dem primären Monitor funktioniert es. (OnBoard Graphik Intel 82915G)
03.09.08, 12:41:26

Net7

(Administrator)

Hi,

sag mal funktioniert das auswählen von Steinen in deiner Version mit der Maus? Ich kann keinen Stein anwählen.


An der Performance must du noch etwas feilen, versuche mal ab einer bestimmten Anzahl von Steinen bzw. Ebenen, nur bei jeder 2ten oder 3ten Mauskoordinate den Scrabblebereich zu annimieren.
Achso mir ist noch ein kleiner Bug aufgefallen, die Out of Range Fehlermeldung für Boardsize wird erst gemeldet wenn man das Fenster Option schließt.

Mfg Net7

So eine Atombombe kann einem echt den Tag versau´n.
05.09.08, 18:28:16

Ocye

(Senior Member)

Ich habe ein MouseOver eingebaut, bei dem die Koordinaten (im Text des GLObjektes gespeichert) im Statusbar angezeigt werden.
Die Performance ist auf einem halbwegs 3D-fähigen Rechner hoffentlich besser (ich entwickle mit onboard Karte). Aber die Idee, erst bei größeren Bewegungen neu zu zeichnen, ist gar nicht verkehrt.
Für meine ursprüngliche Frage, wie ich die ausgewählte Ebene picken kann, würde ich jetzt einfach im Drag 'n Drop Modus alle anderen Objekte ausblenden. Das andere Problem mit dem sekundären Monitor kann ich nicht selbst lösen.
Grüße, Ocye.
08.09.08, 09:46:34

Ocye

(Senior Member)

Jetzt habe ich das Interface soweit fertig. Ein paar Bugs sind mir aufgefallen:
* wenn der GL-Kontext auf dem sekundären Monitor erzeugt wird, hängt sich das Programm auf (wenn ich das Programm bzw. GL auf dem ersten Monitor erzeuge und dann verschiebe, ist alles Okay)
* nach einer Rotation (Pitch(), PitchAngle=, Roll...) wird die Eigenschaft selbst nicht geändert. Zum Beispiel Pitch(90) hat dann noch immer einen PitchAngle von 0.

Ansonsten suche ich (neben allen Arten von Anregungen und Kritik Very Happy ) nach einer Lösung für die Richtung meiner Texturen. Ein Buchstabe ist doch auf drei Seiten sunny-side-up und steht nicht auf dem Kopf wie bei mir. Oder denke ich da falsch?

Zur Bedienung: linke MT=drehen (pitch,turn), rechte MT=roll, Wheel=Zoom, Ctrl+Wheel=Verschieben der aktiven Position in der aktiven Dimension, Ctrl+Rechts=Änderung der aktiven Dimension (x,y,z), Alt+Wheel=Transparenz; Buchstaben können per Drag 'n Drop auf 2D oder 3D gelegt, aber noch nicht zurück genommen werden (vorher erst ein neues Spiel starten). In den Optionen gibt es einige Einstellmöglichkeiten.
Dateianhang:

 Source20080810.zip (47.64 KByte | 15 mal heruntergeladen | 714.58 KByte Traffic)

Dateianhang:

 Scrabble3D.zip (518.31 KByte | 24 mal heruntergeladen | 12.15 MByte Traffic)

09.10.08, 14:14:28
Gehe zu:
Forum Regeln:

Es ist ihnen nicht erlaubt, neue Beiträge zu schreiben.
Es ist ihnen nicht erlaubt, neue Themen zu erstellen.
Es ist ihnen nicht erlaubt, ihre Beiträge zu bearbeiten.
Es ist ihnen nicht erlaubt, ihre Beiträge zu löschen.


HTML Code ist AUS
Board Code ist AUS
Smilies sind AUS
Umfragen sind AUS

Benutzer in diesem Thema
Es lesen 1 Gäste und folgende Benutzer dieses Thema:

Ähnliche Themen
Thema Antworten Hits Letzter Beitrag
1 Dateien
Gehe zum ersten neuen Beitrag Culling oder Beleuchtung
6 1321
30.04.08, 14:48:23
Gehe zum letzten Beitrag von Net7
Archiv
Ausführzeit: 0.0314 sec. DB-Abfragen: 14
Powered by: phpMyForum 4.1.4 © Christoph Roeder