Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   UT2D - 2D-Shooter mit UTStyle (https://www.delphipraxis.net/108627-ut2d-2d-shooter-mit-utstyle.html)

olee 16. Feb 2008 23:08


UT2D - 2D-Shooter mit UTStyle
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo erst mal an alle Delphi Fans :dp:

Ich hab mich zwar heute erst angemeldet, habe aber direkt ein Projekt vorzustellen, an dem ich momentan arbeite.

Es soll ein 2D-Shooter im UnrealTournament(C) Style sein.

Bisher gibt es schon einen Editor, ein Waypoint System, Bots (und gar nicht so schlechte) und 2 Waffen (man kann aber noch nicht Waffe wechseln.

Das Spiel selbst ist (nur) mit Delphi 3 geschrieben und nutzt DelphiX zum zugriff auf DirectX.

MOMENTANER FORTSCHRITT DES PROJEKTS:
- Ich kann momentan KEINE BUGS feststellen! :gruebel:
- Bots funktionieren gut und stellen sich nur selten dumm
- Animationen der Spielfiguren
- Ducken und Blickrichtung der Spielfigur
- Partikel
- Kein LAGG mehr
- Spielstatistik (F1)
- Komplett neuer Spielaufbau (Nur im code bemerkbar) ermöglicht schnelle Erstellung neuer GameModes
- Optionsmenü

WAS ALS NÄCHSTES ERLEDIGT WIRD:
- HUD
- Mehr Waffen und überhaupt erst mal eine Waffenauswahl
- Neue Level

PS: Neue Versionen stelle ich immer in diesen Post!


MFG

fLaSh11 16. Feb 2008 23:25

Re: UT2D - 2D-Shooter mit UTStyle
 
Ja, also... das Spiel ist noch ein bisschen arg buggy / unfertig.
Essentielle Dinge sind mir aufgefallen:

1) Wie schieße ich?
2) Wie unterscheide ich Freund / Feind?

Weiterhin:
-> Bewegungen sind etwas langsam
-> Sind irgendwie ziemlich wenig FPS

olee 16. Feb 2008 23:44

Re: UT2D - 2D-Shooter mit UTStyle
 
Warum?

Zu:
1.) Linke Maustaste müsste eigentlich funktionieren
2.) Die Köpfe

3.) FPS normalwert (Z.B. Fernseher = 25)

fLaSh11 16. Feb 2008 23:51

Re: UT2D - 2D-Shooter mit UTStyle
 
zu 1) ich will Schüsse SEHEN (evtl. sogar audio-visuelle Ausgabe :zwinker: )
2) das ist mir echt nicht aufgefallen :stupid: evtl. etwas besser erkenntlich machen :-D
3) beim PC geht aber einiges mehr! Ich war teilweise bei 20 und das ruckelt dann schon

olee 16. Feb 2008 23:52

Re: UT2D - 2D-Shooter mit UTStyle
 
Uuups hatte wohl die letzte Version auf Minigun gestellt da sieht man die schüsse nicht :shock:

Und ich habe einen FPS in dem Game von ca.30 dann liegts wohl leider an deinem PC.

Ich werde eine neue version hochladen!

olee 17. Feb 2008 00:06

Re: UT2D - 2D-Shooter mit UTStyle
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hier mal mein Waypoint System!

Das abeitet nach einem Algorytmus, der erst die Distanzen zu den einzelnen Wegpunkten vom Startpunkt berechnet, und dann einfach den Weg vom Zielpunkt zum startpunkt rekonstruiert.

Delphi-Quellcode:
  TWP = record
    x,Y : Integer;
    Connections : Array [0..5] of TConnection;
    Distances  : Array [0..5] of Integer;
  end;

var
  WPmax            : Integer;
  WPS              : Array [1..200] of TWP;
  WPd              : Array [1..200] of Integer;

[....]

procedure ExpandD;
var i,j,x : Integer;
begin
  for i := 1 to high(WPs) do
    for j := 0 to 5 do
    begin
      If (WPS[i].Connections[j].AimID<>0) then
      begin
        x := WPD[i] + WPS[i].Distances[j];
        If (x < WPD[WPS[i].Connections[j].AimID]) then
        begin
          WPd[WPS[i].Connections[j].AimID] := x;
          ExpandD;
          exit;
        end;
      end;
    end;
end;

function GetShortWay(Start, Fin: Integer; var Way: TStringList): Boolean;
var i,x,j: Integer;
    Pos : Integer;
begin
  Result := false;
try
  for i := 0 to 200 do
    WPd[i] := maxint div 2 -1;
  WPD[Start] := 0;
  ExpandD;
  If Way=nil then Way := TStringList.Create;
  Way.Clear;
  Way.Add(IntToStr(Fin));
  Pos   := 1;
  Pos   := Fin;
  If Pos=0 then Pos := 1;
  repeat
    inc(j);
    for i := 0 to 5 do
    begin
      x := WPS[Pos].Connections[i].AimID;
      If not (x=0) then
      begin
        If ((WPD[Pos]-WPS[Pos].Distances[i]) = WPD[WPS[Pos].Connections[i].AimID]) then
        begin
          Pos := WPS[Pos].Connections[i].AimID;
          Way.Insert(0,IntToStr(Pos));
          j := 0;
        end;
      end;
    end;
    if j>20 then Pos := Start;
  until Pos = Start;
  If Way.Count<=1 then Way.Add(IntToStr(Start));
  Result := true;
except
end;
end;

function GetRndWay(Start, Fin: Integer; var Way: TStringList): Boolean;
var i,x,j : Integer;
    b    : Boolean;
    Pos  : Integer;
begin
  Result := false;
try
  for i := 0 to 200 do
    WPd[i] := maxint div 2 -1;
  WPD[Start] := 0;
  WPmax := WPmax;
  ExpandD;
  If Way=nil then Way := TStringList.Create;
  Way.Clear;
  Way.Add(IntToStr(Fin));
  Pos   := 1;
  Pos   := Fin;
  If Pos=0 then Pos := 1;
  repeat
    i := 0;
    If not (Pos = Start) then
    begin
      repeat
        x := random(5);
        inc(i);
        If (i>30) then
        begin
          exit;
        end;
      until (WPS[Pos].Connections[x].AimID>0) and (WPD[WPS[Pos].Connections[x].AimID]<WPD[Pos]);
      Pos := WPS[Pos].Connections[x].AimID;
    end;
    Way.Insert(0,IntToStr(Pos));
  until Pos = Start;
  Result := true;
finally
  If Way.Count<=1 then Way.Insert(0,IntToStr(Start));
end;
end;
Und den gesamten Code als Unit:

Nuclear-Ping 17. Feb 2008 07:32

Re: UT2D - 2D-Shooter mit UTStyle
 
http://de.wikipedia.org/wiki/Logarithmus

... Du programmierst ein Spiel mit Delphi in Spaghetti-Code? :shock: ... Lass mich dir prophezeien, dass du das Ding so nie bugfrei kriegst. ;)

olee 17. Feb 2008 10:41

Re: UT2D - 2D-Shooter mit UTStyle
 
1.) was meinst du mit Spagetti Code?
2.) Schreibfehler korrigiert :wall:
3.) Wenn du meinst, dass der code etwas unübersichtlich ist, muss ich dir recht geben.
Ich erarbeite erst mal die funktionen, so wei es später sein soll, und dann
packe ich dass alles schön in Objekte u.a. zusammen.

Matze 17. Feb 2008 11:08

Re: UT2D - 2D-Shooter mit UTStyle
 
Es würde sich auf jedenfall anbieten, jedes Männchen als Objekt (Stichwort: OOP) anzulegen.

Und 20 fps sind sehr schlecht. Die habe ich bei mir auch und teils deutlich aufwändigere Spiele haben eine fps von weit über 100. Es liegt also ganz sicher nicht am PC/Laptop sondern an deinem Spiel bzw. deiner Umsetzung. ;)

Evtl. solltest du dir mal Andorra 2D ansehen. Damit kannst du verhältnismäßig einfach ein 2D-Spiel umsetzen und dabei OpenGL/DirectX nutzen. Das wird dann viel flüssiger laufen.
Tutorials gibt's dazu auch einige. Gib dazu in der Suchfunktion als Begriff "Andorra" ein und wähle in der Forenliste "Tutorials und Kurse" aus (ich weiß nicht, wie ich das direkt verlinken kann).

Grüße

Khabarakh 17. Feb 2008 11:11

Re: UT2D - 2D-Shooter mit UTStyle
 
Zitat:

Zitat von olee
Und ich habe einen FPS in dem Game von ca.30 dann liegts wohl leider an deinem PC.

Naja... wenn dein Spiel bei mir langsamer läuft als UT3 mit höchsten Einstellungen, würde ich mir doch einmal Gedanken über die Performance machen :zwinker: . Ansatzpunkt wäre z.B. die TStringList im Code-Schnippsel, wofür brauchst du die denn :gruebel: ?

busybyte 17. Feb 2008 12:30

Re: UT2D - 2D-Shooter mit UTStyle
 
Erstmal Respekt dafür,das Dein Game doch schon mehr an Funktion bietet, als ich erwartet habe.

Die Grafik ist allerdings langweilig.
Keine animierten Player was gerade bei DelphiX kein Problem ist(Animspeed,Animcount und Patternwidth),
wenn man nur die passenden Bildvorlagen
dafür hätte.Ein bekanntes Problem beim Coden,wo finde ich jetzt noch einen Grafiker,
ich kann mich doch nicht um alles kümmern.

Eigentlich ist DelphiX Objektorientiert aufgebaut, aber ohne Source keine Ahnung.
Dachte hier ist Open-Source?
:wiejetzt:

Fazit:
Ein guter Ansatz, dennoch ist DelphiX nicht mehr aktuell,auch wenn ich aus eigener
Erfahrung keine großen Performanceunterschiede zu OpenGl erkennen konnte,da meist mein Code
die Bremse war.Für den Rest war meine Grafikkarte verantwortlich.
Allerdings der Umstieg zu Delphi2006 brachte eine erkennbare Geschwindigkeitssteigerung
beim Coden.

Ich bin gespannt auf Deine nächsten Projekte,da wird sicher noch was draus.
:feuerchen:

igel457 17. Feb 2008 13:25

Re: UT2D - 2D-Shooter mit UTStyle
 
Schau dir mal das hier an - auch mit DelphiX programmiert. Vielleicht kannst du etwas von Sourcecode lernen:
http://crashpoint.sourceforge.net/

Nuclear-Ping 17. Feb 2008 13:32

Re: UT2D - 2D-Shooter mit UTStyle
 
Zitat:

Zitat von olee
1.) was meinst du mit Spagetti Code?
2.) Schreibfehler korrigiert :wall:
3.) Wenn du meinst, dass der code etwas unübersichtlich ist, muss ich dir recht geben.
Ich erarbeite erst mal die funktionen, so wei es später sein soll, und dann
packe ich dass alles schön in Objekte u.a. zusammen.

Spaghetti-Code sind halt eine Sammlung von Prozeduren und Funktionen, quer verteilt über Units ohne eine wirkliche Bindung und im schlimmsten Fall sogar noch Include-Dateien.

Wie Matze schon sagte: OOP. Das heisst alles (idealerweise sogar jede Kugel deiner Schüsse) wird als Objekt gekapselt, mit Eigenschaften, Methoden, Ereignissen. Ist für einen OOP-Anfänger sicher ein happiger Brocken, aber nur so wirst du eine wirklich ordentliche Struktur in dein Konzept bringen können - und dann gehts auch auf. ;)

Andorra würde ich dir auch empfehlen. :thumb:

olee 17. Feb 2008 18:13

Re: UT2D - 2D-Shooter mit UTStyle
 
Das eben war nur der Teil meines Waypoint Systems, weil ich gelesen habe, dass mehrere Leute immer wieder an so was arbeiten. Deswegenhab ich das mal reingestellt.

Des weiteren habe ich den kompletten Source Code jetzt hochgeladen.

Noch was zur FPS: Die ist wahrscheinlich wegen zu vielen Bots so hoch, da mein Code in dem Punkt noch etwas "dumm" realisiert ist.

Und zur OOP: Ich hab das doch auch so realisiert, dass z.B. jede Kugel ein eigenes Objekt ist.

Zitat:

Die Grafik ist allerdings langweilig.
Keine animierten Player was gerade bei DelphiX kein Problem ist(Animspeed,Animcount und Patternwidth),
wenn man nur die passenden Bildvorlagen
dafür hätte.Ein bekanntes Problem beim Coden,wo finde ich jetzt noch einen Grafiker,
ich kann mich doch nicht um alles kümmern.
Da kann ich nur zustimmen. Ich hab das Spiel erst vor kurzer Zeit angefangen und hatte, um das Programmieren besser zu lernen, meine eigene Sprite Engine geschrieben.

Als das funktioniert hat und alle, dadurch gut zu realisierenden funktionen ausgearbeitet waren, bin ich auf DelphiX umgestiegen (vor allem der Grafik wegen).

Edit: Ich arbeite grad mal an ein paar sehr kleinen Verbesserungen,
die aber einiges ausmachen werden.

olee 17. Feb 2008 19:03

Re: UT2D - 2D-Shooter mit UTStyle
 
Hab herausgefunden, warum das Spiel so langsm lief.
Es war die Methode, die prüft, ob man etwas sehen kann:

Delphi-Quellcode:
function CanSee(AX,AY,BX,BY: Single; Blocker: TBitmap): Boolean;
var i ,k  : Integer;
    xdiff,
    ydiff : Single;
begin
  Result := true;
  If (round(AX-BX)=0) or (round(AY-BY)=0) then exit;
  Result := false;                            <--
  k     := round(distance(AX,AY,BX,BY)*  2); <---> Die Zwei hab ich schon in eine 10 umgeändert
  If (k>10000) then exit;                     <--
  xdiff := (AX-BX)/k;
  ydiff := (AY-BY)/k;
  for i := 0 to round(distance(AX,AY,BX,BY)*2) do
  begin
    If (Blocker.Canvas.Pixels[round(BX+xdiff*i),round(BY+ydiff*i)]<>clwhite)  then exit;
    If (round(BX+xdiff*i)>Blocker.Width) or (round(BY+ydiff*i)>Blocker.height) then result := true;
    If (round(BX+xdiff*i)<           0) or (round(BY+ydiff*i)<            0) then result := true;
  end;
  result := true;
end;
Hat jmd ne gute Idee, außer den markierten Wert zu ändern?

DeddyH 17. Feb 2008 19:08

Re: UT2D - 2D-Shooter mit UTStyle
 
Wieso weist Du in der for-Schleife immer wieder Result zu?

olee 17. Feb 2008 19:50

Re: UT2D - 2D-Shooter mit UTStyle
 
Hat sich erledigt hab ne Lösung gefunden!

:thumb: :thumb: :thumb:

Denn das Game hatte bei mehr bots selbst bei mir geruckelt ... jetzt selbst
bei 15 Bots auf der kleinen Map fast kein ruckeln und nen FPS von 30!

Der Fehler steckte darin, dass die Methode AnzahlSpielfiguren*(AnzahlSpielfiguren-1)
in einer GameSchleife aufgerufen wurde! Uuups!

PS: Verbesserte Version hochgeladen siehe ersten Beitrag!

olee 17. Feb 2008 22:54

Re: UT2D - 2D-Shooter mit UTStyle
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von busybyte
Die Grafik ist allerdings langweilig.
Keine animierten Player was gerade bei DelphiX kein Problem ist(Animspeed,Animcount und Patternwidth),
wenn man nur die passenden Bildvorlagen
dafür hätte.Ein bekanntes Problem beim Coden,wo finde ich jetzt noch einen Grafiker,
ich kann mich doch nicht um alles kümmern.

Das ist genau das was ich auch immer hasse.

--->>--->> Aus diesem grund möchte ich mal nett alle fragen, ob jmd. <<---<<---
--->>--->> zu viel Freizeit hat und vllt. ein paar nette Grafiken erstellen könnte? <<---<<---

--->>--->> Wer eine Idee hat, oder eine gute Animation, bzw. ein gutes Standbild für <<---<<---
--->>--->> eine solche Figur hat (muss nicht selbst erstellt sein ... keineswegs) der <<---<<---
--->>--->> kann diese an meine EMail schicken: <<---<<---
--->>--->>--->>--->>--->>--->> olee92@lycos.de <<---<<---<<---<<---<<---<<---<<---<<---<<---

Ich hab auch hier schon mal eine neue Vorlage ausgearbeite, die demnächst ins Spiel übernommen wird, wenn sie fertig "aufbereitet" ist.

MFG an alle DELPHI FANS :dp:

Björn Zeutzheim aus dem schönen Boppard XD

Nuclear-Ping 18. Feb 2008 10:38

Re: UT2D - 2D-Shooter mit UTStyle
 
Canvas.Pixels bremst auch ganz schön. Besser wärs mit ScanLine zu arbeiten.

generic 18. Feb 2008 11:04

Re: UT2D - 2D-Shooter mit UTStyle
 
Gibt es einen Screenshot vom Game?
könnte jemand den bitte hochladen?

Nuclear-Ping 18. Feb 2008 12:09

Re: UT2D - 2D-Shooter mit UTStyle
 
Was Grafiken angeht:
Vielleicht kennst du jmd. in deinem Freundeskreis, der gut zeichnen kann?
Wenn der motiviert wäre, kann der ja paar Figuren in paar Stellungen zeichnen, die scannst du ein, bearbeitest sie am Computer nach und schon haste was. ;)

CK_CK 18. Feb 2008 12:34

Re: UT2D - 2D-Shooter mit UTStyle
 
Hi!
Ich hab' einige Links zum Thema Spiele&Grafiken gesammelt:
> http://www.isogames.de/
> http://www.spriters-resource.com/
> http://reinerstileset.4players.de/deutsch.html
> http://www.texturenwelt.de/

Vielleicht helfen die dir auch weiter ;)

Chris

olee 18. Feb 2008 13:46

Re: UT2D - 2D-Shooter mit UTStyle
 
Danke für die Tipps.

Doch leider war bei den Links nich das dabei, was ich brauche.

Die Bilder die ich zur Vorlage hochgeladen habe, waren bisher besser.

Ich hab die mit einem Screenshoot aus UT GOTY genommen,
wo ich den Player duckend von der Seite sehen konnte.

Weiß jmd. vllt., wo ich einen ModelViewer für UT Models finde?
Das wäre sehr hilfreich und ich könnte innerhalb von 1-2 Tagen
Animationen im Spiel haben.

Momentan arbeite ich an Effekten (Explosionen, usw.), HUD, und mehr Waffen.

olee 18. Feb 2008 17:15

Re: UT2D - 2D-Shooter mit UTStyle
 
So mal wieder ein Update!

- Das lagging wurde NOCHMALS reduziert.
- Eine neue CTF Map wurde hinzugefügt.
- Sound der Waffen wird nun als "3D" Sound abgespielt (Distanz und Richtung zwischen Spieler und Soundquelle)
- Update zum download im ersten Post.

Also bitte mal schön testen, damit ich ein paar verbesserungsvorschläge hörne kann.
(Selbstverständliche Sachen wie "Zu wenig Waffen" und "Keine Animationen" aber bitte dann nur posten, wenns wichtig ist)

MFG an alle Delphi Fans :dp:

Björn Zeutzheim aus dem schönen Boppard XD

Namenloser 18. Feb 2008 17:28

Re: UT2D - 2D-Shooter mit UTStyle
 
Hallo, olee!

Lagging wurde reduziert?
Also bei mir kriecht es jetzt mit 15-20 fps dahin... vorher lief es mit 28-34. An meine Grafikkarte (8800GT) sowie meinem prozessor (Q6600, 2.4 Ghz Quad) würfte es wohl nicht liegen. Du solltest dir ernsthaft Gedanken über deine grafische Darstellung machen. Aktuelle 3d-Spiele laufen schneller...

Ich könnte mir vorstellen, das dein Problem damit zusammenhängt, dass du das ganze Level als ein großes Bitmap abspeicherst (das dann auch jedes mal komplett gezeichnet wird). Ich habe vor Jahren auf diese Weise ein Jump'n'run zu programmieren versucht und musste das ganze hinterher auch aus Performancegründen einstellen. Denk dir lieber eine alternative Methode aus, z.B. ein 2d-Array mit Kacheln drin, oder setze alles aus Rechtecken zusammen etc... davon werden dann nur die benötigten, sprich: sichtbaren, Teile gezeichnet. Damit kannst du dann z.B. auch schneller auf Kollisionen prüfen. Das ganze hätte nebenbei noch den Effekt, dass du weniger Platz für die Levels brauchst.

olee 18. Feb 2008 17:33

Re: UT2D - 2D-Shooter mit UTStyle
 
Das hab ich auch bemerkt!

Und genau was du gesagt hast hab ich mir sogar schon überlegt!
(so ein Zufall)

Das ruckeln ist aber trotzdem schwächer, wenn du nur die kleine Map spielst, im Vergleich zu vorher.

busybyte 18. Feb 2008 17:40

Re: UT2D - 2D-Shooter mit UTStyle
 
Dafür gibts doch einen eigenen Typ in DelphiX //<-Edit
Delphi-Quellcode:
TBackground = class(TBackgroundSprite)
private
public
//Bauplan:TBauplan; //<-edit eigenes Zeugs
end;


mal ein Beispiel von mir, das aber nicht copypaste-fähig ist und uralter Kot (ca. 2Jahre) ist. (Bsp. es fehlt der try except Block und und und...)
Delphi-Quellcode:
Procedure CreateBckGrnd(Bauplan_:TBauplan);
begin
while not CheckPicName(Bauplan_) do exit;

   with TBackGround.Create(Grafikengine.DXSpriteEngine1.Engine) do
   begin
   Bauplan:=Bauplan_;
   //TestI:=BauPlan.BplImageDatas.IMIndex;
   Image :=Grafikengine.DXImageList1.Items.items[BauPlan.BplImageDatas.IMIndex];
   x:=Bauplan.Position.x;
   y:=Bauplan.Position.y;
   z:=round(Bauplan.Position.z); //<-wichtig
   visible:=true;
  Image.Transparent:=true;
 //  MapWidth:=8;
 //  MApHeight:=8;
//   tile:=Bauplan_.Tile;
Pre_Skal8(Bauplan.BplImageDatas.IMWidth,
            Bauplan.BplImageDatas.IMHeight,
            Bauplan.BplImageDatas.IMPic);
TestI:=BauPlan.BplImageDatas.IMIndex;
Grafikengine.DXImageList1.Items.Items[BauPlan.BplImageDatas.IMIndex].Picture:=Pre_Skal_ResultPic;

SetMapSize(Bauplan.BplImageDatas.IMMapWidth,Bauplan.BplImageDatas.IMMapHeight);
Image.Restore;
   end;
end;
//edit
die Kollision kann in deinem Fall aber nicht mit TBackground gemacht werden,
sondern die Wände sollten vom Typ TImagesprite sein, da soweit ich in Erinnerung habe,
die beiden Typen nicht kollidieren.

igel457 18. Feb 2008 18:10

Re: UT2D - 2D-Shooter mit UTStyle
 
Hallo,

schau dir (wie schon weiter oben gesagt) mal mein Spiel "CrashPoint" an. Das habe ich vor 2 Jahren auch mit DelphiX geschrieben und läut mit ca. 80 FPS. Zudem lade ich Karten von der Größe 10000x2000 Pixel - Du solltest an deinem Verfahren wirklich etwas ändern:
http://crashpoint.cvs.sourceforge.ne...as?view=markup

Außerdem habe ich in deinem Quellcode gesehen, das du oft die Canvas-Eigenschaft des TDXDraw verwendest. Du solltest versuche dies so oft wie möglich zu vermeiden, denn dieses verwendet direkt die GDI und die ist recht gemütlich in ihrer Arbeitsgeschwindigkeit. Wenn du das zur Grafikausgabe nimmst, dann brauchst du DelphiX eigentlich gar nicht.
Vielleicht könnte dich auch meine 2D Engine Andorra 2D interessieren - diese ist in gewissem Maße DelphiX nachempfunden, ist durch Verwendung der 3D-Hardeware aber um einiges schneller. Zudem kannst du damit einfach Partikeleffekte (z.B. für Blut oder Explosionen) erstellen. Allerdings läuft das nicht mit Delphi 3. Allerdings gibt es ja "Turbo Delphi Explorer" bzw. "Lazarus" zum kostenlosen Download.

olee 18. Feb 2008 18:55

Re: UT2D - 2D-Shooter mit UTStyle
 
Nun ja ich möchte aber jetzt ungern auf etwas anderes umsteigen.

Immerhin kommt noch was an Code hinzu, was das beschleunigen wird.

Das mit den Partikeln möchte ich aber ganz alleine realisieren, da ich so etwas eh schon mal gemacht habe, und das hat gut funktioniert.

Trotzdem VIELEN DANK!

MFG

busybyte 18. Feb 2008 19:18

Re: UT2D - 2D-Shooter mit UTStyle
 
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Immerhin kommt noch was an Code hinzu, was das beschleunigen wird.
Da wäre an erster Stelle Deine Kollisionsabfrage,
Du willst unbedingt die Cpu damit belasten,
indem Du pixelweise den Bildschirm abtastest,//edit
aber ist ja nur bei jeder Bewegung. :wall: .

Delphi-Quellcode:
TObj=class(TImageSprite)
public
//Bauplan:TBauplan;
//procedure DoMove(MoveCount: Integer); override;
procedure DoCollision(Sprite: TSprite; var Done: Boolean); override; //<---
end;

procedure TObj.DoCollision(Sprite: TSprite; var Done: Boolean);
begin
inherited DoCollision(Sprite,Done);
//.
//MeinCode
//.

end;

Bitmap: 2.25MB

Codewalker 18. Feb 2008 20:43

Re: UT2D - 2D-Shooter mit UTStyle
 
Du nutzt Canvas.Pixels. Das ist verdammt langsam zum Zugriff auf die Pixel. Schau dir mal die Funktion Hier im Forum suchenScanLine an. Damit greift man mehr oder weniger direkt auf den Speicher zu und es geht deutlich(!) schneller. Beispiele sollten in der DP genügend zu finden sein.

olee 18. Feb 2008 21:01

Re: UT2D - 2D-Shooter mit UTStyle
 
Der Code stammt noch aus der Zeit, als ich noch meine selbst geschriebene
Sprite Engine benutzt hatte.

Aber der tastet nicht den ganzen Bildschirm ab, sondern nur ein paar Fixpunkte
um die Spielfigur herum ab.

olee 18. Feb 2008 21:03

Re: UT2D - 2D-Shooter mit UTStyle
 
da hab ich schon mal von gehört, weiß aber nicht wie und warum ich dieses ScanLine nur für einen einzelnen Pixel anwenden sollte, den ich abfragen möchte.

olee 18. Feb 2008 21:52

Re: UT2D - 2D-Shooter mit UTStyle
 
Neue Version Online!

Siehe erster Beitrag!

Verbesserungen:

- Ducken
- Animationen
- Eingabe einer Zeitbegrenzung für das Spiel
- ...

Ob es noch mehr war hab ich vergessen.
Prüft es einfach nach ^^

MFG

olee 19. Feb 2008 19:21

Re: UT2D - 2D-Shooter mit UTStyle
 
Erst mal guten Abend an alle Delphi Fans :dp:

Ich bräuchte ein bisschen Hilfe, da ich nun so langsam mein Spiel näher an seine
eigentliche Funktion heranbringen möchte.

Und zwar geht es um einen Multiplayer Modus.

Ich würde mich freuen, wenn einige von euch mir bei dieser Angelegenheit
helfen könnten

PS: Neue Version nun mit TBackgroundSprite und ein Bug der animierten Darstellung der Spielfiguren behoben.

MFG

olee 19. Feb 2008 21:29

Re: UT2D - 2D-Shooter mit UTStyle
 
So wieder mal eine Verbesserung:

1.) (Eigentl. schon in der letzten Version) Selbst gezeichneter Tile-BG wurde durch TBackgroundSprite ersetzt --> Lagging = nil ^^

2.) (Einfache) Partikel

3.) Bitte gibt mal ein paar feedbacks, Verbesserungsvorschläge!

4.) Ich könnte Hilfe mit einem Multiplayer Modus gebrauchen. Hat da jmd. gute Kenntnisse?

Namenloser 19. Feb 2008 21:31

Re: UT2D - 2D-Shooter mit UTStyle
 
Pschhhht... Es gibt auch eine Edit-Funktion :wink:

olee 19. Feb 2008 21:35

Re: UT2D - 2D-Shooter mit UTStyle
 
?? was meinst du damit?

xZise 19. Feb 2008 22:17

Re: UT2D - 2D-Shooter mit UTStyle
 
Dass Doppelposts innerhalb von 24h hier nicht gerne gesehen werden ;)

Zitat:

Zitat von olee
da hab ich schon mal von gehört, weiß aber nicht wie und warum ich dieses ScanLine nur für einen einzelnen Pixel anwenden sollte, den ich abfragen möchte.

Weil selbst dann Scanline schneller ist ;) Letzendlich geht es ja immer um einzelne Pixel :)

MfG
xZise

olee 19. Feb 2008 22:28

Re: UT2D - 2D-Shooter mit UTStyle
 
Ach stimmt hatte nicht gesehen, dass ich das mit TBackgroundSprite schon genannt hatte.
Aber der Beitrag musste sein, da ich wirklich in diesen 2h noch einige kleine Verbesserungen eingebaut hatte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:05 Uhr.
Seite 1 von 2  1 2      

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