Entwickler-Ecke
Multimedia / Grafik - Fragen zu GLXTreem
svenson08 - Di 01.07.03 12:12
Titel: Fragen zu GLXTreem
Hallo zusammen,
ich bin dabei mich etwas mit opengl zu befassen. Dabei versuche ich mich mit GLXTreem. Nun hab ich dazu eine frage, und zwar wie kann ich mit GLXTreem das "Object" unter der Maus markieren.
Wie es "von Hand" geht, also ohne GLXTreem hab ich mir mal angelesen, doch noch nicht so richtig hinbekommen. Ich würde aber gerne bei GLXTreem bleiben, schliesslich könnte man ja GLXTreem erweitern.
Hat jemand so etwas schonmal mit GLXtreem umgesetzt ?
Gruß Sascha
mimi - Di 01.07.03 13:22
ja ich. kommt drauf an, wie du dein qullcode geschriebn hast. verwendes du ein raster ?
(ein 2D array für die map ?) oder wie machst du das ?
svenson08 - Di 01.07.03 15:21
wirst lachen, aber so weit bin ich noch nicht. Da ich nur am testen bin erstelle ich halt nur ein Objekt. Wie ich das später mache weis ich noch nicht.
mimi - Di 01.07.03 15:25
ok, haha...
Es gibt merher möglichkeiten dafür.
1. Du verwendes 4 ecke bzw. rechtecke
2. Du verwendes die Raster metode.....
das sind die 2 die ich eingeltich verwende.
svenson08 - Di 01.07.03 15:32
Ok. Könntest du mir dann also helfen, da ich nicht so ganz weis wie ich das angehen kann. Aber erklär mir mal die Rastermethode, da ich noch nicht weis ob ich mit 4ecken hinkomme.
mimi - Di 01.07.03 15:47
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Type TMap = record Visible, Enabled:Boolean; Tex,Typ:Integer; end; const MapX = 25; MapY = 25;
var map[0..mapX, 0..MapY] of TMap; |
so sieht das grundprinzip aus.
lis dir einfach mal:
http://www.delphi-forum.de/viewtopic.php?t=10073
da habe ich ein snake tutor für delphiX geschrieben, im grunde musst du nicht viel ändern und es läuft prima auf glxTreem.
kann nicht besonders gut erklären. bei der Rastermethode müssen alle objekte die gleiche größe haben.
du hast jetzt z.b. ein Bildschrim größe von: 640 X 480 Pixeln und du hast eine grafik die 16 X 16 Pixel groß ist. nun musst du einfach die Bildschirm größe durch die grafik größe teilen und -1 nehmen. dann hast du die daten für den 2D array.
svenson08 - Di 01.07.03 15:54
Ok ich schau mir deinen link noch genauer an. Das mit der map ist auch soweit klar. Aber wie markiere ich jetzt z.b. das rechteck unter der Maus, oder das dreieck ? Ich würde gerne die farbe/textur ändern wenn die maus darüber bewegt wird.
mimi - Di 01.07.03 15:57
das kannst du leider nur bei geraden objekten machen.
so geht es:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TMyMenus.MouseMove(PosX,PosY:Integer); var i:Integer; is_Enabled:Boolean; begin
if is_MenuLoad = True then begin GLXDraw.Cursor:=crDefault; for i:=0 to High( Menus[MainMenuIndex].Items ) do begin with Menus[MainMenuIndex].Items[i] do begin if MenuEditor = False then is_Enabled:=Enabled else is_Enabled:=True; if ((PosX > x) and (PosX < X1) and (PosY > Y) and (PosY < Y1)) and (is_Enabled = True) then begin SelMenuIndex:=i; GLXDraw.Cursor:=crHandPoint; end; end; end; end; end; |
das habe ich bei einer menu unit gemacht, die ich geschrieben habe:)
svenson08 - Mi 02.07.03 07:46
Hallo mimi,
erstmal danke für deine unterstützung. Ich hab mir das ganze mal angeschaut. Aber da ich noch nicht entschlossen bin wie ich es letztentlich angehe schau ich mir noch glscene an, da ist vielleicht eher das dabei was ich suche.
Trotzdem danke für die bemühung.
mimi - Mi 02.07.03 09:40
glscene ist aber zimlich schwer aber auch sehr umfangreich:)
habe damit auch schon mehrer versuche gestartet damit umzugehen.. aber ich habe es immer wieder abbgebrochen :(
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!