AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Spiel] Flos DrawBall [neue Version: 06.01.09]
Thema durchsuchen
Ansicht
Themen-Optionen

[Spiel] Flos DrawBall [neue Version: 06.01.09]

Ein Thema von Florian H · begonnen am 26. Nov 2006 · letzter Beitrag vom 25. Nov 2011
Antwort Antwort
Seite 13 von 22   « Erste     3111213 1415     Letzte »    
Florian H
Registriert seit: 30. Mär 2003
Hallo zusammen,

mir kam vor einigen Wochen eine prinzipiell ganz nette Spielidee in den Sinn, deren Konzept ich dann auch gleich etwas ausarbeitete und schon bald war ich dann munter am Programmieren. Dann wieder ein paar Wochen nicht und dieses Wochenende dann doch wieder.
Soviel zur sinn- und zwecklosen Vorgeschichte.

Jedenfalls kann ich euch nun eine Version von "Flos DrawBall" präsentieren, die irgendwie auch schon spielbar ist.

Bei dem Spiel geht es darum, einen oder mehrere Bälle in ein Zielfeld zu bekommen.
Das ganze geschieht über Beschleunigungsfelder, die den Ball in eine bestimmte Richtung ablenken, wenn er über sie drüber rollt.
Diese Beschleunigungsfelder kann man auf das Spielfeld aufmalen, indem man die Richtung der Beschleunigung mit den Pfeiltasten auswählt (es gibt also links, rechts, oben und unten) und dann mit der Maus wie in einem Zeichenprogramm quasi malt .. man kann so den Ball ins Ziel führen.
Daneben gibt es (bisher..) ein "böses" Feld, welches der Ball nicht berühren darf (nehmen wir an es ist Salzsäure oder ein Abgrund) und Tintenpatronen - denn die Farbe (Beschleunigungsfarbe oder so ) ist limitiert und man muss ggf. etwas haushalten - oder eben diese Patronen sammeln.

Neu (06.01.09):
  • neues Levelformat, zusätzliche Metainformationen zu Levelsets und einzelnen Leveln (z.B. Titel)
  • Tutorial-Level mit Erklärungen des Spiels und aller Elemente
  • etliche grafische Änderungen und zusätzliche Grafikeffekte (fast alle Elemente wurden neu gemacht oder überarbeitet), z.B. Schatten, Rauch, Beamer-Blitze, Lava, ...
  • neue Kollisionsengine "Ball -> Wand", dadurch deutlich realistisches Abprallen vor allem an Ecken
  • Soundtrack von fishbrain - bitte auch dazu Feedback! (btw sind alle Sounds etwas leise, muss ich noch überarbeiten)
  • Umstieg auf openGL, da directX starke Grafikprobleme macht - testbar durch Umbenennen der Datei "use_dx.NOT" in "use_dx"
  • deutliche Performancegewinne - bis zu 800% FPS-"Steigerung" bei umfangreichen Leveln (wobei die FPS ja auf 40 limitiert sind)
  • zusätzliche HUD-Einblendungen, z.B. mit Levelinformationen oder dem Ergebnis (Roadmap: Punkteberechnung, Highscores, Statistiken), "Spiel neustarten" direkt mit der [R]-Taste

Neu ( 23.12.08 ):
  • Komplett neues Menü
  • Level sind nun in Level-Packs sortiert und diese sind im Spiel dann anwählbar (bisher relativ rudimentär)
  • verbesserte Grafiken (z.B. der Ball)
  • zusätzliche Effekte, zum Beispiel die Ball-Spur in der jeweiligen Farbe der Richtung
  • natürlich viele kleinere Verbesserungen, Bugfixes und grafische Anpassungen


Neu (02.04.07):
- basiert komplett auf Andorra 2D anstatt DelphiX -> deutlich bessere Performance und Grafikeffekte (s.u.)
- etwa die Hälfte aller Grafiken neu erstellt, um die neue Grafikengine voll ausnutzen zu können (Alphachannel etc)
- Kugeln kollidieren miteinander, anstatt einfach durch sich durch zu rollen
- wie immer: übel viele Bugs gefixt (u.a. Speicherfehler, wenn man außerhalb des Fensters malen wollte)

Neu (31.03.07):
- grafische Verbesserungen, Anzeige der verbleibenden Bälle etc

Neu (25.03.07):
- viele kleine Bugs oder Unzulänglichkeiten gefixt (Kollisionen, Menü etc)
- Performance verbessert (v.a. bei vollgemalten Levels deutlich spürbar, sollte auch auf älteren PCs kaum mehr ruckeln)
- neue Elemente: Beam-Felder, Beschleunigungsblöcke, Kissen und Bumper


Kleine Erläuterung:
Beamfelder: davon gibt es 4 verschiedene, bestehend jeweils aus einem oderer mehreren Start- und Zielfeldern, bei mehreren Zielfeldern kommt der Ball zufällig in einem davon heraus
Beschleunigungsblöcke: wirken sich genauso stark aus wie aufgemalte Beschleunigungsfarbe, eine Beschleunigung kann also maximal ausgeglichen werden auf so einem Feld
Kissen: bremst die Bewegung des Balles bei Berühung ab
Bumper: lässt den Ball stärker zurückprallen als er ankam
Nichtbemalbare Fläche: sind die gestreiften grauen Flächen, dort kann keine Farbe draufgemalt werden ("tote Zone")

Ein ausführliches Tutorial-Level ist integriert, ist auf jeden Fall zu empfehlen ...

Level-Editor von xZise[DP-Thread]: klick!


Zum Download mit Musik (extern, Direktlink, 4,4MB)


Viele Grüße
Flo
Miniaturansicht angehängter Grafiken
drawball080_202.jpg   screen1_461.jpg  
Angehängte Dateien
Dateityp: rar release_0.80-nomusic_961.rar (1,99 MB, 244x aufgerufen)
 
Namenloser

 
FreePascal / Lazarus
 
#121
  Alt 27. Jun 2007, 12:53
Hi,

die alten Versionen waren mit Canvas und liefen teilweise nicht sehr flüssig. Soweit ich weiß liefe Andorra2D auch unter Linux, sofern man das OpenGl-Plugin (weiß nicht, ob das schon fertig ist?) benutzen würde.
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#122
  Alt 27. Jun 2007, 13:37
Ich habe schon viele sachen mit Canvas gemacht, die alle schnell gut waren.. mal sehen. man kann der sehr viel optimieren.

Ich habe die Engine vor einiger zeit habe ich es mal versucht. aufjedenfall nicht kompelieren igel hatte dazu meine ich auch was geschrieben, woran es liegt.

Evlt. geht das ja neuerdings ! Aber ich finde Canvas Reicht aus. ich frage mich warum es bei dir geruckelt hat.

hast du noch denn Quellcode ? den mit Canvas. Weil wenn ja, könntest du ihn mir per PM oder so senden.

Ich könnte mir höchsten vorstellen das die anzahl der Bälle eine rolle gespielt haben könnte.
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von igel457
igel457

 
FreePascal / Lazarus
 
#123
  Alt 27. Jun 2007, 16:35
Auch wenn es nicht unbedingt hier herein passt: Die alte Version von dem Spiel war mit DelphiX gemacht - ich glaube, dass es keine Canvas-Version gab, da man damit auch nicht (schnell) transparent Bilder zeichnen kann (außer mit der GDI+ und die gibt es garantiert nicht unter Linux). Andorra 2D läuft mittlerweile sehr wohl mit Freepascal (siehe unter "Downloads" auf der Website) und kompiliert auch unter Linux - nur mit dem unter Linux laufen habe ich noch einige "kleine" Probleme.
Andreas
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#124
  Alt 27. Jun 2007, 18:22
was für Probleme denn ?

Ich habe jetzt mal mit Canvas angefangen, Mal sehen ob es damit geht.
Ich habe noch einige Fragen(Falls mein Spiel so weit kommt).
1. Level Format: Darf ich dein verwenden ?
Wenn ja müsstes du mir per PM die Bedeutung der Felder Beschreiben.
Dann könnte ich direkt deine Levels laden.

2. Ich nehme auch deine Grafiken, ist das ok für dich ?
Sehe ich das richtig das sie 22X22 Pixel groß sind ?
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#125
  Alt 27. Jun 2007, 19:24
Ich hänge mal ein ScreenShot in den Anhang !
sieht zwar noch nicht schön aus, aber das Prinzip läuft schon !

Ich wusste nur nicht mehr wie deine Wände aussehen, da habe ich Kissen.bmp genommen ! erstmal !
Miniaturansicht angehängter Grafiken
drawball_lunx_113.png  
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#126
  Alt 29. Jun 2007, 13:24
Der Vorteil bei meiner Version ist jetzt der, das nicht 100 % CPU last belegt wird.
was ja bei dir der Fall ist. Ich gehe da so vor:

1. Ich schaue nach ob die Variable isBackup auf True steht, wenn ja sichere ich bevor ich erneut sicher,
das gesicherte Objekt zurück !
2. Ich sicher den Untergrund bevor ich das eigentliche Bild zeichne und Stelle eine Boolean Variable auf True
3. Ich zeichne das Eigentliche Object
und das spiel fängt von vorne an.

Jeder Ball hat eine Backup Variable von typ TBitMap in der ich das Bild rein kopiere per BitBtl, weil CopyRect, geht leider unter Linux nicht einwandfrei. Da gibt es einen seltsamen bekannten Fehler. Es geht nur wenn die Positionangaben 0,0 sind.

Edit: die CPU last liegt bei mir bei ca 5-10 % genau kann ich das nicht bestimmen !
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#127
  Alt 4. Jul 2007, 14:11
Wird noch weiter daran gearbeietet?

Der Bug tritt immernoch auf.
Wobei ich den spezifizieren kommte: Blaue Türen, werden nicht mehr verschlossen!
Angehängte Dateien
Dateityp: txt level0.fdb_424.txt (903 Bytes, 6x aufgerufen)
Fabian
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#128
  Alt 6. Jul 2007, 12:07
Zitat von mimi:
Ich finde das spiel ist toll !
Evlt. werde ich wenn du nix da gegen hast eine Linux Version erstellen mit Canvas !
Dankeschön Da habe ich natürlich nichts dagegen - ganz im Gegenteil: ich freue mich natürlich!

Zitat von mimi:
Was mich noch stört ist das der Mauzeiger nicht gut erkennbar ist.
und dieser Weiße hintergrund. Ein schönes bild währe nicht schlecht.
Okay, ich arbeite dran und bastel mal was hübsches .. Schatten dürfte beim Mauszeiger einiges helfen und ein Hintergrund wird sich auch finden lassen..

Zitat von mimi:
was für Probleme denn ?
Ggf. meint er das Problem, das ich auch Anfangs hatte: man muss enorm oft diese kleinen Pfeil-Grafiken (die "Farbe", mit der man zeichnet) malen, was relativ schnell auf die Performance geht [auch, wenn man nur geänderte Bereichne neu zeichnet].

Zitat von mimi:
1. Level Format: Darf ich dein verwenden ?
Wenn ja müsstes du mir per PM die Bedeutung der Felder Beschreiben.
Dann könnte ich direkt deine Levels laden.
Klar, wäre sicherlich das Sinnvollste.

Zitat von mimi:
2. Ich nehme auch deine Grafiken, ist das ok für dich ?
Sehe ich das richtig das sie 22X22 Pixel groß sind ?
Klar, ist okay. Grafiken sind je nach dem....
- 48x48px: normale Feld-elemente wie Wand, Tür, Knöpfe, ...
- 44x44px: der Ball
- 12x12px: die "Farbe"

Zitat von mimi:
Der Vorteil bei meiner Version ist jetzt der, das nicht 100 % CPU last belegt wird.
was ja bei dir der Fall ist.
Was bei mir so viel CPU braucht ist der dxTimer, der eigentlich nur konstante ~40FPS triggern soll - dafür nimmt er sich vorsorglich mal 100% der CPU x_x
Ich hab da mit dem normalen Timer (Framerate praktisch immer zu niedrig) und dem OnIdle-Zeug (Framerate schwankt enorm [was ja nicht so das Problem wäre] und ist auch meistens deutlich zu tief) rumprobiert, aber letztendlich musste ich immer beim dxTimer bleiben.. wobei auch mich der anspringende Lüfter beim Laptop nervt x_X
Auf meinem etwas betagten Rechner sind theoretisch um die 200FPS drin.

Zitat von xZise:
Wird noch weiter daran gearbeietet?
Jops.. nun ist der Abi-Stress und der darauffolgende Abi-Party-Stress wohl vorbei ^^

Zitat von xZise:
Der Bug tritt immernoch auf.
Wobei ich den spezifizieren kommte: Blaue Türen, werden nicht mehr verschlossen!
Habs gefixt, neue Version kommt dann, wenns bissl mehr neues gibt.


Grüßle erstmal,
flo

Edit / PS und OT @xZise: ist diese Version deines Signatur-Zitats doch nicht mehr fälschlicherweise B.F. zugeschrieben?
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#129
  Alt 6. Jul 2007, 13:42
Wenn ich dein Level Formate unterstützt benötige ich noch die geschwindigkeits Variablen und soweiter.
Damit das Level auch auf geht.
(kannst du mir ja per PM senden) also ich meine jetzt wie du den Ball genau bewegst.
ich mache das im Moment so:
Delphi-Quellcode:
procedure TGame.DrawBall;
var
  i,ox,oy:Integer;
begin
  for i:=0 to ObjListe.count-1 do begin
    if ObjListe[i] is TGameObjBall then begin
      with TGameObjBall(ObjListe[i]) do begin
        ox:=x; oy:=y;
        Collision(i,getobj(i));
        if XSpeed > 0 then begin
          if r = -1 then begin
            if xRechts = True then
              x:=x+xSpeed // Nach Rechts
            else
              x:=x-xSpeed; // Nach Lings

            if xOben = True then
              y:=y+xSpeed // Nach Unten
            else
              y:=y-xSpeed; // Nach Oben
          end
          else begin
            if r = PfeilUnten then y:=y+xSpeedBottom;
            if r = PfeilOben then y:=y-xSpeedTop;
            if r = PfeilLings then x:=x-xSpeedLeft;
            if r = PfeilRechts then x:=x+xSpeedRight;
          end;
          BitBlt(canvas.Handle,ox,oy,ox+w,oy+w,backup.canvas.Handle,0,0,SRCCOPY);
          MoveBall(ox,oy);
          BitBlt(canvas.Handle,x,y,x+w,y+w,buffer.canvas.Handle,x,y,SRCCOPY);
        end;
      end;
    end;
  end;
ich hoffe du wirst darauß schlau.
Wenn die geschwindigkeit auf 0 ist, also XSpeed dann habe ich Probleme mit der Rand Erkennung.

Und beim Level Format müsste ich noch wissen,wie du die Datei aufgebaut hast.

Ich bin Im Moment so weit. das ich nur noch Türen hinzufügen müsste. Und erste richtige Levels(natürlich).

Edit:

Es liegt nicht direkt am Timer. sonder es liegt am zeichnen wegen der 100% CPU auslastung:
es muss ja ständig ein neues Bild auf den Bildschirm gebracht werden, das benötigt halt Zeit.

bei neuern Rechnern bzw. Grafikkarten auch kein Problem, die habe eigene Prosseroren.
Meine jedoch leider nicht. Darum zeichne ich es etwas anders. So habe ich ca 5-10% Cpu Auslastung.

Ich denke da müsste Igel noch etwas Optimieren.....
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#130
  Alt 6. Jul 2007, 14:19
Hi Florian und Mimi,

Zitat von Florian H:
Zitat von mimi:
Was mich noch stört ist das der Mauzeiger nicht gut erkennbar ist.
und dieser Weiße hintergrund. Ein schönes bild währe nicht schlecht.
Okay, ich arbeite dran und bastel mal was hübsches .. Schatten dürfte beim Mauszeiger einiges helfen und ein Hintergrund wird sich auch finden lassen..
Ich finde den Hintergrund beim Start völlig Okay!

Zitat von Florian H:
Zitat von mimi:
1. Level Format: Darf ich dein verwenden ?
Wenn ja müsstes du mir per PM die Bedeutung der Felder Beschreiben.
Dann könnte ich direkt deine Levels laden.
Klar, wäre sicherlich das Sinnvollste.
Weiter vorne steht sowieso eine

Zitat von Florian H:
Zitat von xZise:
Wird noch weiter daran gearbeietet?
Jops.. nun ist der Abi-Stress und der darauffolgende Abi-Party-Stress wohl vorbei ^^
Cool

Zitat von Florian H:
Zitat von xZise:
Der Bug tritt immernoch auf.
Wobei ich den spezifizieren kommte: Blaue Türen, werden nicht mehr verschlossen!
Habs gefixt, neue Version kommt dann, wenns bissl mehr neues gibt.
Wie sieht das eigentlich mit diesem Rand aus?
Man bin ich geapannt


Zitat von Florian H:
Edit / PS und OT @xZise: ist diese Version deines Signatur-Zitats doch nicht mehr fälschlicherweise B.F. zugeschrieben?
Naja Wikiquote (eng) => sourced Wikiquote (deu) => fälschlicher Weise (aber nicht begründet)...
An sich ist es beides ... Ich hoffe mal das der Autor da nichts gegen hat :/ Immerhin finde ich das Zitat ziemlich realitäts nahe

MfG
xZise
Fabian
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 13 von 22   « Erste     3111213 1415     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:49 Uhr.
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