Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Schüsse darstellen ? (https://www.delphipraxis.net/170957-schuesse-darstellen.html)

Premaider 12. Okt 2012 10:05

Schüsse darstellen ?
 
Wie stelle ich Schüsse(Projektile) am besten dar (Im Stil von Binding of Isaac, falls ihr das kennt) ?
Ich habe mir schon gedacht, dass diese am Spieler generiert (Shapes) werden und sich so lange nach rechts bewegen bis ihr left Größer ist als Form1.clientwidth und sie dann Free gesetzt werden. Doch leider resultiert das in vielen vielen Rucklern. Und das bei meinem relativ guten PC.
Wie kann man das noch machen ?

DeddyH 12. Okt 2012 10:08

AW: Schüsse darstellen ?
 
Lies Deine Frage noch einmal durch und dann sag uns, was man ohne eine Zeile Quellcode zu kennen darauf antworten soll.

Neutral General 12. Okt 2012 10:16

AW: Schüsse darstellen ?
 
Was vllt. helfen könnte ist die Eigenschaft Doublebuffered der Form (und der Shape, falls die so eine Eigenschaft hat) auf true zu setzen.

Allerdings sind die VCL-Controls nicht besonders geeignet für Spiele/Graphik.

Besser wäre es die GDI zu benutzen und selbst auf ein Bitmap zu zeichnen und dass dann auf die Form zu zeichnen.
Oder du benutzt Andorra2D oder direkt DirectX (Direct2D?) oder OpenGL.

DeddyH 12. Okt 2012 10:21

AW: Schüsse darstellen ?
 
DoubleBuffered kann nur gegen Flackern helfen, aber nicht gegen Ruckeln. Da würde ich auch zu einer fertigen Engine wie Andorra tendieren, die sind auf so etwas optimiert.

Premaider 12. Okt 2012 10:25

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Neutral General (Beitrag 1186736)
Was vllt. helfen könnte ist die Eigenschaft Doublebuffered der Form (und der Shape, falls die so eine Eigenschaft hat) auf true zu setzen.

Allerdings sind die VCL-Controls nicht besonders geeignet für Spiele/Graphik.

Besser wäre es die GDI zu benutzen und selbst auf ein Bitmap zu zeichnen und dass dann auf die Form zu zeichnen.
Oder du benutzt Andorra2D oder direkt DirectX (Direct2D?) oder OpenGL.

Danke das hat geholfen. Was ist denn GDI ? Davon habe ich noch nie etwas gehört :S

DeddyH 12. Okt 2012 10:28

AW: Schüsse darstellen ?
 
Graphics Device Interface

Neutral General 12. Okt 2012 10:28

AW: Schüsse darstellen ?
 
GDI ist quasi wenn du die Zeichen-Methoden der Canvas-Objekte benutzt.

z.B.

Form1.Canvas.Rectangle(..), Form1.Canvas.Ellipse(), Form1.Canvas.Textout(..)

Das gleiche geht auch bei Bitmaps (Bitmap.Canvas.LineTo(..)) usw. Damit malst du pro Sekunde mehrmals ein Bitmap auf dem dann die komplette Spielszene zu sehn ist und zeichnest dieses Bitmap dann auf das Formular o.ä.

Premaider 12. Okt 2012 10:37

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Neutral General (Beitrag 1186744)
GDI ist quasi wenn du die Zeichen-Methoden der Canvas-Objekte benutzt.

z.B.

Form1.Canvas.Rectangle(..), Form1.Canvas.Ellipse(), Form1.Canvas.Textout(..)

Das gleiche geht auch bei Bitmaps (Bitmap.Canvas.LineTo(..)) usw. Damit malst du pro Sekunde mehrmals ein Bitmap auf dem dann die komplette Spielszene zu sehn ist und zeichnest dieses Bitmap dann auf das Formular o.ä.

Hab mir jetzt mal Andorra 2D angeschaut. Delphi7 ist anscheind schon so alt, dass man nichts findet wie man Andorra denn überhaupt benutzt/implementiert. Dann schau ich mal nach GDI, oder habt ihr was für Andorra ?

DeddyH 12. Okt 2012 10:38

AW: Schüsse darstellen ?
 
Die Forensuche kennst Du? http://www.delphipraxis.net/85257-an...alisieren.html

Premaider 12. Okt 2012 10:40

AW: Schüsse darstellen ?
 
Zitat:

Zitat von DeddyH (Beitrag 1186750)

Hab ich benutzt. Bei mir kam da nichts. Ich versteh nicht was ihr immer für Suchbegriffe benutzt und das zu finden xD

angos 12. Okt 2012 10:43

AW: Schüsse darstellen ?
 
zB Hier im Forum suchenandorra installieren

;)

DeddyH 12. Okt 2012 10:45

AW: Schüsse darstellen ?
 
Oder Hier im Forum suchenAndorra Tutorial. Gleich im ersten Treffer wird das Projekt vorgestellt, unten findet man dann die verlinkten Tutorials.

Premaider 12. Okt 2012 10:52

AW: Schüsse darstellen ?
 
Ich bin jetzt hier (http://www.delphipraxis.net/85257-an...alisieren.html) nach gegangen. Doch bei mir findet er AdDraws.dcu nicht. Weiß jemand was ich falsch gemacht habe ?

Zacherl 12. Okt 2012 10:55

AW: Schüsse darstellen ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich war mal so frei und habe ein kleines Beispiel mit der ordinären Paintbox gebastelt. Grobe Ruckler treten damit bei mir zumindest schonmal nicht auf.

Premaider 12. Okt 2012 11:03

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Zacherl (Beitrag 1186757)
Ich war mal so frei und habe ein kleines Beispiel mit der ordinären Paintbox gebastelt. Grobe Ruckler treten damit bei mir zumindest schonmal nicht auf.

Das ist sehr nett von dir. Ich kann es nur nicht starten :(
[Fataler Fehler] Project2.dpr(5): Datei nicht gefunden: 'Vcl.Forms.dcu'

Zacherl 12. Okt 2012 11:07

AW: Schüsse darstellen ?
 
Ah das kommt, weil du eine ältere Delphi Version verwendest. Mach einfach überall bei den Unitnamen alles vor dem letzen Punkt weg. Also Vcl.Forms zu Forms, Winapi.Windows zu Windows, etc.

Neutral General 12. Okt 2012 11:10

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Premaider (Beitrag 1186756)
Ich bin jetzt hier (http://www.delphipraxis.net/85257-an...alisieren.html) nach gegangen. Doch bei mir findet er AdDraws.dcu nicht. Weiß jemand was ich falsch gemacht habe ?

Hast du den Pfad mit den Andorra Dateien auch zum Bibliothekspfad hinzugefügt.

Premaider 12. Okt 2012 11:14

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Neutral General (Beitrag 1186765)
Zitat:

Zitat von Premaider (Beitrag 1186756)
Ich bin jetzt hier (http://www.delphipraxis.net/85257-an...alisieren.html) nach gegangen. Doch bei mir findet er AdDraws.dcu nicht. Weiß jemand was ich falsch gemacht habe ?

Hast du den Pfad mit den Andorra Dateien auch zum Bibliothekspfad hinzugefügt.

Ja das ist bei mir dann "$(DELPHI)\Lib\Andorra"

Zitat:

Zitat von Zacherl (Beitrag 1186762)
Ah das kommt, weil du eine ältere Delphi Version verwendest. Mach einfach überall bei den Unitnamen alles vor dem letzen Punkt weg. Also Vcl.Forms zu Forms, Winapi.Windows zu Windows, etc.

Dann kommen nur noch mehr Fehler direkt im Code :(

Zacherl 12. Okt 2012 11:19

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Premaider (Beitrag 1186767)
Zitat:

Zitat von Zacherl (Beitrag 1186762)
Ah das kommt, weil du eine ältere Delphi Version verwendest. Mach einfach überall bei den Unitnamen alles vor dem letzen Punkt weg. Also Vcl.Forms zu Forms, Winapi.Windows zu Windows, etc.

Dann kommen nur noch mehr Fehler direkt im Code :(

Bei mir lässt sich der Code wunderbar kompilieren. An welcher Stelle genau treten denn die Fehler auf? Deine uses Klausel sollte jetzt so aussehen:
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

Neutral General 12. Okt 2012 11:29

AW: Schüsse darstellen ?
 
Sind in diesem Ordner denn auch die ganzen .pas Dateien drin?
Oft sind die .pas Dateien in einem "src" Unterordner.

Premaider 12. Okt 2012 11:45

AW: Schüsse darstellen ?
 
Zitat:

Zitat von Neutral General (Beitrag 1186772)
Sind in diesem Ordner denn auch die ganzen .pas Dateien drin?
Oft sind die .pas Dateien in einem "src" Unterordner.

Ja sind sie.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz