Entwickler-Ecke
Multimedia / Grafik - delphix unter NT?
BloodyBastard - Di 17.06.03 15:10
Titel: delphix unter NT?
Hallo ihr Delphianer!
Ich hab mir die DelphiX Komponenten für delphi 6 heruntergeladen, installiert und wollte beginnen zu programmieren. Jedoch musste ich feststellen, dass es nicht geht. Es erscheint der Fehler "ddraw.dll not loaded". Ich nehme an, das liegt am Windows NT, oder? Hab das Service Pack 6 installiert, da sollte glaub ich DirectX 3 dabei sein. Aber wahrscheinlich wird da noch nicht DirectDraw unterstützt. Weiss da jemand genaueres darüber? Wäre sehr froh auf ein paar Antworten :)
gruss
BloodyBastard
maximus - Di 17.06.03 15:52
Schätze DelphiX benötigt DirectX 7 oder höher...alles andere macht keinen sinn (inklusive Windows NT :wink: )
Persönlich würd ich dir von DelphiX auch abraten...is alt und buggy und langsam und wird nicht mehr weiterentwickelt.
mimi - Di 17.06.03 16:14
dx braucht direcx 7
GLXTreem(OpenGl)
Powerdraw(DirecX9)
Omega*(DirecX8)
*
konnte ich nicht testen, da es fehler bei den complierungen der beispiele gegebn hat :(
BloodyBastard - Di 17.06.03 20:02
Hmm na dann. Wenn ich mal Delphi auf meiner XP-Maschine zum Laufen bringe, werde ich mal Powerdraw testen.
Danke für die Antworten!
mimi - Di 17.06.03 20:12
einige davon sind im beta statium, es gibt noch viele ander:)
gehe mal bei glxtreem ins forum da stehen irngewo noch ander game komponenten:)
BloodyBastard - Di 17.06.03 22:04
okee mal kucken, obwohl ich eigentlich lieber mit directx beginnen möchte.
mimi - Di 17.06.03 22:15
es ja die überlassen, ambesten solltes du dich erst einmal über die vor und nachteile der 2 grafikschnitstellen informieren:)
maximus - Mi 18.06.03 10:21
| BloodyBastard hat folgendes geschrieben: |
| okee mal kucken, obwohl ich eigentlich lieber mit directx beginnen möchte. |
...Jupp. kann ich nur empfehlen. Direkt mit DirectX (3D=2D) rockt am härtesten. Wenn du das machst solltest du dich gut mit objekten und einigermassen mit pointern auskennen (@mimi: :D )
viel spass
mimi - Mi 18.06.03 17:06
hat eingentlich jemmand es schon geschaft mit delphiX ein 3D spiel zu erstellen ?
mimi - Mi 18.06.03 17:21
das ist was anders, die haben die delphi jedsi header gekommen, oder wie die heißen, die haben kein delphiX genommen :(
maximus - Mi 18.06.03 17:35
Nö...die jedis haben die meines wissens für race-king 1 nicht benutzt...steht doch da alles. Race-king 2 wird komplett mit den jedi-headern gemacht (is eh cooler)
umpani - Mi 18.06.03 20:08
| mimi hat folgendes geschrieben: |
| hat eingentlich jemmand es schon geschaft mit delphiX ein 3D spiel zu erstellen ? |
Klar!!! :) Bin kräftig dabei.
BloodyBastard - Do 19.06.03 11:47
| maximus hat folgendes geschrieben: |
| BloodyBastard hat folgendes geschrieben: | | okee mal kucken, obwohl ich eigentlich lieber mit directx beginnen möchte. |
...Jupp. kann ich nur empfehlen. Direkt mit DirectX (3D=2D) rockt am härtesten. Wenn du das machst solltest du dich gut mit objekten und einigermassen mit pointern auskennen (@mimi: :D )
viel spass |
Mit Objekten kenn ich mich ganz gut aus und Pointer hab ich auch schon verwendet. Ich wollte einfach mal ein kleines 2D-Game programmieren und dafür dachte ich, eignet sich sicherlich directX ganz gut. Ich hab mal ein paar Tuts für OpenGL durchgearbeitet und find es zwar toll aber möchte doch etwas, das nicht so sehr 3d-lastig ist. so wie delphix halt.
maximus - Do 19.06.03 13:47
| BloodyBastard hat folgendes geschrieben: |
...
Mit Objekten kenn ich mich ganz gut aus und Pointer hab ich auch schon verwendet. Ich wollte einfach mal ein kleines 2D-Game programmieren und dafür dachte ich, eignet sich sicherlich directX ganz gut. Ich hab mal ein paar Tuts für OpenGL durchgearbeitet und find es zwar toll aber möchte doch etwas, das nicht so sehr 3d-lastig ist. so wie delphix halt. |
Äh...ich meinte eigentlich reines, unverfälschtes directX! DelphiX und DirectX ist nicht das selbe...delphiX benutz DirectX 7 und wir haben nu version 9 vorliegen. ergo hoffnungslos veraltet
Schnapp dir die Jedi-header (delphi directX 9 schnittstellen) und mach 2D...mach ich auch und bin zufrieden, weil man alles implementieren kann wie man will :wink:
mimi - Do 19.06.03 17:51
aber da musst du zeilenweise code schreiben nur um die Init funktion zu haben und dann.....
maximus - Fr 20.06.03 10:41
| mimi hat folgendes geschrieben: |
| aber da musst du zeilenweise code schreiben nur um die Init funktion zu haben und dann..... |
*g* Ich schreib den nicht nur zeilenweise, sondern gleich unit-weise *g*
Im ernst: code ist da, um geschrieben zu werden *rofl*
mimi - Fr 20.06.03 11:14
aber nicht um nacher einen einfachen kreiß zu erzeugen:)
sonst kannst du gleich projekt weise coden:)
maximus - Fr 20.06.03 14:32
*g* Wenn er nur einfache kreise zeichnen wollte dann bräuchte er garkein directX...ich denke er wil schon 'n bisschen was reissen. Da sind die 20 Zeilen initialisierung das kleinste problem :wink:
Einigen wir uns auf: >GESCHMACKSACHE<...?
mimi - Fr 20.06.03 15:37
nein, das ist keine "GESCHMACKSACHE", das ist zeilen verschwendung, genauso wie bei den openGl heades....... nagut, brauchst ja nur einmal zu schreiben, aber trotzdem, finde ich es sehr zeitaufwendig wenn ich um ein einfaches 3D dreiec gleich ca 1.000 zeilen code habe
maximus - Fr 20.06.03 16:49
ÔK..du hast es nicht anders gewollt *grrr*
Wer schreibt denn extra ein directX framework, um dann nur ein dreieck zu mahlen? ...und zeilenverschwendung ist einzig und allein der 'overhead' von engines wie DelphiX...nach dem motto: ich zeichne mir ein dreieck in delphiX und compilier mir damit 30 units mit in die exe. Die musstes du zwar nicht selbst schreiben, aber nutzen tuts dir auch nicht 8) Und 1.000 zeilen brauchst DU vielleicht dafür :twisted:
Ganz davon abgesehen wird man für die paar zeilen reichlich belohnt...und man hat das gefühl es selbst gemacht zu haben. Desweiteren lernt man mehr, als wenn man ne fertige engine nimmt und 'n paar sprites bewegt.
Denk mal drüber nach :wink: :D
umpani - Fr 20.06.03 17:01
Ich weiß gar nicht, wo ihr das Problem bei DelphiX seht.
Gut ich sehe ein, das es veraltet ist. Und das Direct Draw seit DirectX nur noch mitgeschleppt wird.
Aber für 2D Spiele (und nichts anderes) reicht es völlig.
Aber ich muß die Zustimmen. Die Spriteengine ist eine seltsame und Abstoßende Komponente.
Ich habe und werde Si nicht benutzen.
Aber wofür sollte ich mit 1000 Zeilen Code herumschlagen, wenn die in DelphiX schon vorgefertigt sind. Ich will ja schließlich meine Zeit nicht mit dem Initialisieren, sondern mit dem Spiel selber verbringen.
(Natürlich nicht nur mit einem Dreieck).
@Maximus: Du benutzt ja schließlich auch eine TEdit-textfeld und programmierst es nicht selber. Oder? :wink:
Aber wenn Du doch etwas selber programmieren möchtest. Ich habe hier noch die originale, auf 12 Disketten ausgelieferte Version von Borland Pascal 7. :wink:
tommie-lie - Fr 20.06.03 17:24
| umpani hat folgendes geschrieben: |
| Gut ich sehe ein, das es veraltet ist. Und das Direct Draw seit DirectX nur noch mitgeschleppt wird. |
Was? Jetz' lies dir den Satz nochmal genau durch und sag mir, was DirectX ist :mrgreen:
DirectDraw wird sehr wohl noch benötigt. Nicht alle Spiele sind 3D. DirectDraw ist nur in Direct3D eingeflossen, warum weiß ich nicht, da müsste man Microsoft fragen...
| Zitat: |
Aber wofür sollte ich mit 1000 Zeilen Code herumschlagen, wenn die in DelphiX schon vorgefertigt sind. Ich will ja schließlich meine Zeit nicht mit dem Initialisieren, sondern mit dem Spiel selber verbringen.
(Natürlich nicht nur mit einem Dreieck). |
Das Initialisieren schreibst du einmal und machst dann für jeden Project nur noch Copy&Paste.
Der Vorteil: Native Programmierung ist i.d.R. schneller, und bei der Qualität von DelphiX würde ich sogar sagen, seehr viel schneller...
Bei Umfangreichen Projekten sind fertige Umgebungen schon ein Riesenvorteil, weil man dort auch das meiste braucht, DelphiX ist aber für ein zeitgemäes Spiel wirklich nicht das Wahre...
Soviel nur als Anregung ;-)
umpani - Fr 20.06.03 17:33
| tommie-lie hat folgendes geschrieben: |
Was? Jetz' lies dir den Satz nochmal genau durch und sag mir, was DirectX ist :mrgreen: |
Ich meine natürlich DirectX 7. 8)
Aber mal ganz im ernst. Web von uns hat zeit, ein wiklich zeitgemäßes Spiel zu programmieren?
Ich spreche wohl für die meisten von uns, wenn ich sage: "Ich programmiere nur so zu Spaß".
Man hat nun mal auch noch einen Beruf (der gottseidank nichts mit Computern zu tun hat)
Und für diesen Spaß reicht mir (ich spreche nur für mich) DelphiX aus.
Im Moment programmiere ich ein Eye of the Beholder Clon. Auch Dafür reiche DelphiX aus.
maximus - Fr 20.06.03 18:56
| umpani hat folgendes geschrieben: |
...
Aber wenn Du doch etwas selber programmieren möchtest. Ich habe hier noch die originale, auf 12 Disketten ausgelieferte Version von Borland Pascal 7. :wink: |
Juhuu...die wollte ich immerschon als original haben. Damit hab ich früher lustige sachen gemacht. Dann muss ich wohl mal ne alte DOS-kiste rauskramen, eine die schön lamgsam ist, da der compiler von Borland Pascal 7.0 (mit Objekten) leider einen Bug hat, der verhindert, dass die programme auf schnellen PCs laufen .
Schicks mir gleich mal rüber :wink:
BloodyBastard - Fr 20.06.03 18:56
wow, die Frage artete ja richtig aus :) aber find ich toll :)
ob ich jetz jedi-headers oder komponenten benutzen werde, weiss ich noch nicht. Da ich zur Zeit keine Lust und Zeit für den Initialisierungsprozess zu schreiben habe, werde ich wahrscheinlich mit Komponenten beginnen. Für zum Einarbeiten und das, was ich machen möchte, wird es sicherlich völlig reichen. (Nein, ich will nicht nur Dreiecke zeichnen :-) )
Also danke vielmals für die Tipps!
gruss
Bloody Bastard
mimi - Fr 20.06.03 19:36
@maximus
aber wie schon gesagt wurde, machst alles selber ?
mit winAPI ?
bzw ganz selber ?
also schreibst du dir auch dein einges forum ?
also ich finde dieses jedi zeug ist viel zu umfangreich und zu schwer sieht man ja bei den jedi headern :evil: mind 100 zeilen code für die installizierung gut brauchst du nur einmal zu schreiben, aber davon werden die hedas auch nicht "geschmackvoller":)
umpani - Fr 20.06.03 19:52
| maximus hat folgendes geschrieben: |
| umpani hat folgendes geschrieben: | ...
Aber wenn Du doch etwas selber programmieren möchtest. Ich habe hier noch die originale, auf 12 Disketten ausgelieferte Version von Borland Pascal 7. :wink: |
Juhuu...die wollte ich immerschon als original haben. Damit hab ich früher lustige sachen gemacht. Dann muss ich wohl mal ne alte DOS-kiste rauskramen, eine die schön lamgsam ist, da der compiler von Borland Pascal 7.0 (mit Objekten) leider einen Bug hat, der verhindert, dass die programme auf schnellen PCs laufen .
Schicks mir gleich mal rüber :wink: |
Nun ich denke, Borland wird mir nicht gleich die Ohren abreissen, wenn ich die eine 10 jahre Alte Version der Programmiersprache gebe (man möge mich eines Besseren belehren):
Schau mal hier: 8) 8) 8) 8)
ftp://umpani.dyndns.org
Benutzer: umpani
Passwort: umpani
Mach übrigens bei der Installation einige Probleme.
Kann man nicht aus dem Windows XP Explorer installiere, sondern nur über die Eingabeaufforderung (aber auch in Windows). Weiss der Geier warum. :?
Ich lasse BP übrigens nur 1-2 tage drin. Will ja mein DSL nicht überlasten.
Aber wenn Du 5 kb Download von Mir bekommst ist es ja schon bald da.
mimi - Fr 20.06.03 19:55
@umpani
wenn wir von dir nichts mehr höhren wissen wir ja warum:)
kostet der tp7.0 eingentlich noch was bei borland ?
umpani - Fr 20.06.03 20:12
Ich glaube nicht. Bei Amazon gibt es das noch als CD zu einem Buch. (für 15 €)
maximus - So 22.06.03 11:40
@umpani: Cool...war zwar nur halb ernst gemeint, aber ich lad das mir mal runter. Wollte nur testen, ob du tatsächlich gutmütig genug bist, mir die orig.disketten zu zuschicken...download is natürlich die beste lösung.
Läuft das bei dir unter XP? auf was für einer maschine?
danke schonmal.
| mimi hat folgendes geschrieben: |
@maximus
aber wie schon gesagt wurde, machst alles selber ?
mit winAPI ?
bzw ganz selber ?
also schreibst du dir auch dein einges forum ?
also ich finde dieses jedi zeug ist viel zu umfangreich und zu schwer sieht man ja bei den jedi headern :evil: mind 100 zeilen code für die installizierung gut brauchst du nur einmal zu schreiben, aber davon werden die hedas auch nicht "geschmackvoller":) |
*g* Natürlich nicht! Nur wo es sinn macht...ein programmierer sollte nicht davor zurückschrecken etwas selbst (komplett neu) zu schreiben , wenn er eine andere implementierung oder architektur wünscht und für sinnvoll hält!
Das macht bei edit-feldern natürlich keinen sinn, da sie ihren zweck nahezu perfekt dienen.
@directX init: um mal deine horror vorstellung von der initialisierung zu entkräften... ich komme grad mal 71 zeilen und viel davon sind sicherheit-abfragen:
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: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72:
| Procedure TDynaGame.initViewPort(handle: HWND); begin FInitialized := false; if InitDirectGfx then begin D3DDev9.SetRenderState(D3DRS_ZEnable, Word(false)); D3DDev9.SetRenderState(D3DRS_CullMode, D3DCull_None); D3DDev9.SetRenderState(D3DRS_Lighting, Word(false)); D3DDev9.SetRenderState(D3DRS_ANTIALIASEDLINEENABLE, word(true));
end else begin MessageBox(0, PChar(SHALFailed),PChar(SDynaWarning), MB_ICONWARNING); CloseDirectGfx; if not InitDirectGfx(false) then begin MessageBox(0, PChar(SGraphicsFailed), PChar(SDynaWarning), MB_ICONWARNING); exit; end; end; RestoreDeviceObjects; end;
function TDynaGame.InitDirectGfx(HAL : boolean = true): boolean; begin Result := false; D3D9 := Direct3DCreate9(D3D_SDK_VERSION); if D3D9 = NIL then exit;
InitPresentParameters;
if hal then devType := D3DDEVTYPE_HAL else devType := D3DDEVTYPE_REF; if failed(D3D9.CreateDevice(D3DADAPTER_DEFAULT, devType, WinHandle, D3DCREATE_SOFTWARE_VERTEXPROCESSING, DGfxPP, D3DDev9)) then exit;
Result := true; end;
procedure TDynaGame.InitPresentParameters; begin Fillchar(DGfxPP, sizeof(DGfxPP), 0); DGfxPP.Windowed := not FFullScreen; DGfxPP.hDeviceWindow := WinHandle; if (FFullScreen) then begin DGfxPP.BackBufferWidth := FWidth; DGfxPP.BackBufferHeight := FHeight; case FDepth of bd16 : DGfxPP.BackBufferFormat := D3DFMT_A1R5G5B5; bd32 : DGfxPP.BackBufferFormat := D3DFMT_A8R8G8B8; else exit; end; DGfxPP.BackBufferCount := 1; DGfxPP.SwapEffect := D3DSWAPEFFECT_FLIP; DGfxPP.FullScreen_RefreshRateInHz := D3DPRESENT_RATE_DEFAULT; DGfxPP.FullScreen_PresentationInterval := D3DPRESENT_INTERVAL_IMMEDIATE;
end else begin if failed(D3D9.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, DGfxDm)) then exit; DGfxPP.SwapEffect := D3DSWAPEFFECT_DISCARD; DGfxPP.BackBufferFormat := DGfxDm.Format; DGfxPP.SwapEffect := D3DSWAPEFFECT_FLIP; DGfxPP.FullScreen_RefreshRateInHz := D3DPRESENT_RATE_DEFAULT; DGfxPP.FullScreen_PresentationInterval := D3DPRESENT_INTERVAL_IMMEDIATE; end; end; |
...Ich versteh ja, dass das geschmacksache ist (und das hatte ich ja schon erwähnt), aber ich garantiere dir, dass auch du, eines tages, die schnauze voll haben wirst und es mal richtig wissen willst :wink:
umpani - So 22.06.03 11:59
| Zitat: |
| Läuft das bei dir unter XP? auf was für einer maschine? |
Habe jetzt nen AMD 2600+ aber bp noch nicht ausprobiert.
Nur bei der installation in XP gibt es probleme (aber nicht unüberwindbar)(siehe oben)
Ach ja und diesen Patch brauchst du auch noch:
http://www.webplain.de/turbopascal/error200.php
maximus - So 22.06.03 14:07
Genau...davon sprach ich schon. Das is irgend 'timing-counter-überlauf' problem, was bei schnellen rechnern auftritt. glaub ich..
Danke :)
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!