Autor Beitrag
Pdd
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Mo 19.09.05 20:16 
Hi @ all

Ich hätte mal ne frage und hab auch schon gesucht aber keine antwort bekommen!
Ich kenne mich nicht aus mit Spiele Programmierung! Daher wollte ich mal langsam anfangen damit. Ich dachte mir zuerst mal mit 2D anfangen! Da 3d sicher um einiges schwierieger ist! Also was ist denn jetzt für 2d geeignet? Delphi X oder OpenGL?

Und kann mir dann noch jemand dazu tutorials geben wo klein angefangen wird? danke!


Pdd

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
Gothicware
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 77

Win 98, Win 2000, Win XP, BeOs-R5, Zeta 1.0(war nicht gut, also verkauft), KnoppiX, VM-Ware
D4 Client/Server, Turbo Basic, QBasic, Atari-Basic
BeitragVerfasst: Di 20.09.05 03:32 
Im Grunde kannst du beides benutzen. Abwohl ich DelphiX etwas vorziehe. OpenGL ist dafür sehr leistungs fähig, und biete viele Möglichkeiten.

Tutorials:
www.delphi-treff.de/...torials/delphixkurs/
www.dsdt.info/tutorials/index.php?cat=5

Ansonsten einfach mal im Netz suchen. Bei denn meisten OpenGL Packeten für Delphi sind auch einfache Beispiele dabei. Bei DelphiX mehrere Beipiele, wie AlphaBlend, Wave, und so weiter.
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 20.09.05 06:25 
Für OpenGl sind die Tutorials hier geeignet. Wenn du bisschen weiter bist die hier. Ich finde aber 3D ist leichtr als 2D, ist aber sicherlich Geschmackssache ;), das einzige ist, das man ein gutes räumliches Vortsellungvermögen braucht.

Moderiert von user profile iconKlabautermann: URL-Tag korrigiert.
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Di 20.09.05 12:54 
Also wenn du mit 2D anfangen und später mit 3D weiter machen möchtest, dann rate ich dir dringenst zu OpenGL. Denn dann hast du den Vorteil, dass du deinen geschriebenen Code, deine Bibliotheken und dein Wissen weiter verwenden kannst. Der Unterschied zwischen 2D und 3D bei OpenGL ist lediglich die eine Zeile in der du das festlegst. Alles andere ist gleich.

2D in OpenGL ist so einfach wie unter Windows. Zu mindest wenn man es so eingestellt hat. Es gibt divere Leute die der Meinung sind die Koordinaten müssten alle auf dem Kopf stehen aber ich glaube ich schweife ab.

Ich rate dir im übrigen von Kappselungen von Grafikschnittstellen ab. Also wie glScene oder DelphiX. Da diese lediglich auf auf eine Grafikschnittstelle aufsetzen. Auf den ersten Blick mögen sie deine Arbeit zwar erleichtern, doch wenn es hart auf hart kommt, geraten sie recht schnell an ihre Grenzen, da diese Sammlungen allgemeingültig entwickelt wurden und spezialfälle nicht oder nur kaum optimieren können. Aber das ist wie üblich reine Geschmackssache.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Di 20.09.05 14:16 
danke ich schaue mir das mal an und ich denke ich fange mit opengl an da ich auch gesehen habe das delphix nicht weitrer entwickelt wurde. (stimmt doch oder?)

Pdd

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Di 20.09.05 14:45 
ok hab mir das erste tut mal angekukt aber da fängt man dann gleich an aber ich brauch doch erst mal den code um das opengl zu nutzen! Unter FILES bekommt man so einiges aber was muss ich denn nehmen und wie es installieren??? www.delphigl.com/files.php

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 20.09.05 16:48 
Benutze anstatt DelphiX -> UnDelphiX.
Das wird IMHO noch weiter entwickelt.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 20.09.05 17:03 
user profile iconPdd hat folgendes geschrieben:
ok hab mir das erste tut mal angekukt aber da fängt man dann gleich an aber ich brauch doch erst mal den code um das opengl zu nutzen! Unter FILES bekommt man so einiges aber was muss ich denn nehmen und wie es installieren??? www.delphigl.com/files.php


Installieren musst du es gar nicht. Du musst nur die Unit (z.B. dglOpenGl.pas) bei dir einbinden und dann das programm wie gewohnt schreiben. Den Download findes6t du hier. (von deinem Link nur auf Libary gelickt ;) ).
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Di 20.09.05 20:01 
Hey leute erst mal danke für die hilfe und ich hab auch gleich mal angefangen ;-)

Also:
ausblenden volle Höhe 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:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, dglopengl, StdCtrls, textures;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  MyTex : glUInt;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
mytex := LoadTexture('C:\explosion.tga');
glEnable(GL_TEXTURE_2D);
glBindTexture(GL_TEXTURE_2D, MyTex);
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, 0.1);
glBegin(GL_QUADS);
 glTexCoord2f(0,0); glVertex3f(-12/2, -12/2, -12);
 glTexCoord2f(1,0); glVertex3f(+12/2, -12/2, -12);
 glTexCoord2f(1,1); glVertex3f(+12/2, +12/2, -12);
 glTexCoord2f(0,1); glVertex3f(-12/2, +12/2, -12);
glEnd;
end;

end.

doch wen ich es starte dann bleibt es bei dem buttonklick stehen:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
Thread Start: Thread ID: 3240. Process Project1.exe (552)
Process Start: C:\Dokumente und Einstellungen\Pdd_2\Eigene Dateien\OpenGL\1. Projekt\Project1.exe. Base Address: $00400000. Process Project1.exe (552)
Module Load: Project1.exe. Has Debug Info. Base Address: $00400000. Process Project1.exe (552)
Module Load: ntdll.dll. No Debug Info. Base Address: $77F40000. Process Project1.exe (552)
Module Load: KERNEL32.dll. No Debug Info. Base Address: $77E40000. Process Project1.exe (552)
Module Load: USER32.dll. No Debug Info. Base Address: $77D10000. Process Project1.exe (552)
Module Load: GDI32.dll. No Debug Info. Base Address: $77C40000. Process Project1.exe (552)
Module Load: ADVAPI32.dll. No Debug Info. Base Address: $77DA0000. Process Project1.exe (552)
Module Load: RPCRT4.dll. No Debug Info. Base Address: $78000000. Process Project1.exe (552)
Module Load: OLEAUT32.dll. No Debug Info. Base Address: $770F0000. Process Project1.exe (552)
Module Load: msvcrt.dll. No Debug Info. Base Address: $77BE0000. Process Project1.exe (552)
Module Load: ole32.dll. No Debug Info. Base Address: $77180000. Process Project1.exe (552)
Module Load: VERSION.dll. No Debug Info. Base Address: $77BD0000. Process Project1.exe (552)
Module Load: COMCTL32.dll. No Debug Info. Base Address: $77310000. Process Project1.exe (552)
Module Load: UxTheme.dll. No Debug Info. Base Address: $5B0F0000. Process Project1.exe (552)
Module Load: MSCTF.dll. No Debug Info. Base Address: $746A0000. Process Project1.exe (552)
First chance exception at $77E53887. Exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'. Process Project1.exe (552)


hä? ich hab doch alles richtiggemacht?

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 20.09.05 20:04 
Ich würd mal sagen, du musst mytext erstmal createn.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Di 20.09.05 20:12 
wie createn? das mach ich doch? oder was meinst du?

ach und was ist das?
 glTexCoord2f(0,0); glVertex3f(-breite/2, -Höhe/2, -Tiefe); as muss ich da als breite höhe und tiefe angeben?

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 20.09.05 20:14 
ausblenden Delphi-Quelltext
1:
MyTex := glUInt.Create;					

Das mein ich.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Di 20.09.05 20:19 
:cry:
'Integer' does not contain a member named 'create'.

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Di 20.09.05 21:06 
Stop! Ganz großer Denkfehler. Ein Integer kannst du nicht createn. Aber um die Methoden. glEnable, glBindTexture etc. überhaupt benutzen zu können musst du als aller erstes OpenGl Initialisieren.

Dazu auf jeden Fall erst einmal das DGL OpenGL Quickstart Tutorial durcharbeiten.

Außerdem ist ein ButtonOnClick die schlechteste Möglichkeit etwas zu rendern. Im Tutorial wird das Application.OnIdle verwendet. Man kann aber auch in einem Form.OnPaint rendern. Aber OnIdle ist für einen Großteil der Spiele eigentlich optimal.

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.
GTA-Place
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
EE-Regisseur
Beiträge: 5248
Erhaltene Danke: 2

WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
BeitragVerfasst: Di 20.09.05 21:08 
Mh... Wusste nicht, das das ein Integer ist.
Hätte man draufkommen können, aber egal.

_________________
"Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Di 20.09.05 21:18 
Also Leute erst mal DICKES Dankeschön!

Ich arbeite noch nicht beonders lange mit delphi und ich habe mir jetzt das tutorial durchgelesen und ich muss wirklich sagen: SUPER!!!! Das macht voll spass! Ich danke euch für die tipps!


PS: ICh habe schon mein erstes rotes dreieck erzeugt! *stolz* ;-)

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 21.09.05 06:44 
Du scheinst es ja schon mit Texturen versucht zu haben. Welche Unit nimmst du da? Die glBitmap.pas oder die Texturen.pas?
Pdd Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 142

Win XP
Delphi 7
BeitragVerfasst: Mi 21.09.05 13:11 
ne noch nich mit textueren aber wenn ich das mache nehm ich die textures.pas

_________________
Wenn alles steht und nix mehr looft, denn isses was von Meikrosooft
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 21.09.05 13:16 
Das hatte ich schon vermutet. Texturen.pas ist ein bisschen bekannter als die BitmapGl.pas. Aber die glBitmap.pas ist der Nachfolger von der Texturen.pas. Wenn du zu der Unit eine Frage hast ist es am besten du wendest dich an Lossy eX, da er einer der Schreiber der Unit ist ;).
Lossy eX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1048
Erhaltene Danke: 4



BeitragVerfasst: Mi 21.09.05 13:42 
Heiko. Ich muss dich mal ein bisschen berichtigen.

Zitat:
die glBitmap.pas ist der Nachfolger von der Texturen.pas

Die Textures.pas und die glBitmap.pas haben nichts, außer Delphi und OpenGL, gemeinsam. Also kein Nachfolger sondern etwas vollkommen Eigenständiges. Und ich habe sie lediglich geschrieben, weil ich gerne objekt orientiert programmiere und die glBMP.pas (auch etwas Eigenständiges benutzt aber viele Codestücke der Textures.pas) nicht mehr weiter entwickelt wird und die Seite nicht mehr existiert. Die Textures wird im übrigen auch nicht mehr weiter entwickelt. Abgesehen davon ist das Klassenkonzept der glBMP, wenn man es überhaupt so nennen darf, so etwas von behämmert ist.

Zitat:
Lossy eX, da er einer der Schreiber der Unit ist

Nicht einer sondern der Schreiber. Alles zu 100% aus meiner Feder. Ich bin einer der Schreiber der dglOpenGL.pas. Also des OpenGL Headers für Delphi. ;-)

_________________
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.