Autor Beitrag
svenson08
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: Di 01.07.03 12:12 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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 ?

_________________
MFG
Michael Springwald, "kann kein englisch...."
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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.

_________________
MFG
Michael Springwald, "kann kein englisch...."
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 01.07.03 15:47 
ausblenden 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: 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.

_________________
MFG
Michael Springwald, "kann kein englisch...."
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: Di 01.07.03 15:57 
das kannst du leider nur bei geraden objekten machen.
so geht es:
ausblenden 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:)

_________________
MFG
Michael Springwald, "kann kein englisch...."
svenson08 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 87



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3458

Ubuntu, Win XP
Lazarus
BeitragVerfasst: 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 :(

_________________
MFG
Michael Springwald, "kann kein englisch...."