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 15 von 22   « Erste     5131415 1617     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)
 
mimi

 
FreePascal / Lazarus
 
#141
  Alt 18. Sep 2007, 15:57
ich habe mal eben zwei ScrenntShotts gemacht. sind im Anhang
Miniaturansicht angehängter Grafiken
03_18.09.2007_168.png   02_18.09.007_135.png  
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#142
  Alt 20. Sep 2007, 21:18
So jetzt werden alle Level Elemente unterstützt. Nun kommt der Level-Editor und das Level Format dran.

ich habe mich entschieden ein eigens Level Format zu nehmen, weil:
Im Orinal Format können keine Autor Informationen untergebracht werden. Aber ich möchte später bzw. evlt. mache ich das schon am Anfang die Möglichkeit haben die Original Levels laden zu können.

Dazu müsste ich nur einige Dinge wissen:
A) Wie bewegst du den Ball genau ? welche werte hast du genommen ?
z.b. das der Ball immer langsamer wird
B) Können mehrer Bälle gleichzeitig fliegen ? (nein oder ?, es können nur mehrer Bälle gleichzeigt da sein)
C) Wie ist das Level Format bei dir aufgebaut ?
Zitat:
%500|100|500|100|

0|0|1|

0|1|1|

0|2|1|

0|3|1|
ich vermute 0 ist die x Position die zweite Stelle die Y und die Dritte stelle der Typ.
Wenn ja wüsste ich gerne was bei 1 oder bei anderen werten genommen wird.

D) Wie ist das mit der Größe des Spiel Fehledes ?
Nimmst du einfach nur das Maximum ?
Weil ich möchte bei mir einen Rand zeichnen und wie du im Obrigen Bild sehen kannst auch ein Display mit Informationen zugeben, es ist noch zu groß. Das ändere ich später noch.

Das Komplete Menu System möchte ich später aus einer Ini Datei laden so kann ich das aussehen von der
"Sprache" trennen und verschiedene aussehen anbieten, wie die Menus aussehen.

Ich habe alle Grafik Dateien jetzt zu einer BMP gemacht, später soll daraus eine PNG werden. Das dürfte kein Problem sein/werden.

Evlt. kann ich in einigen Tagen eine Windows und eine Linux Version zum Downloaden + den Soruce Code hochladen.

Edit1: ich sehe gerade du verwendest ein Raster ? wenn ja mit welcher Größe ? in x und in y Richtung ?

Edit2: Wie machst du das mit dem nächsten Level wenn der Ball ins Ziel gekommen ist ?
woher weiß das Ziel welches Level es laden muss ?
Michael Springwald
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#143
  Alt 20. Sep 2007, 21:29
Zitat von mimi:
ich habe mich entschieden ein eigens Level Format zu nehmen, weil:
Im Orinal Format können keine Autor Informationen untergebracht werden. Aber ich möchte später bzw. evlt. mache ich das schon am Anfang die Möglichkeit haben die Original Levels laden zu können.
Das ist kein Grund (siehe bei meinen Editor)
Einfach ein #0 am ende der Datei und dahinter kannst du dich dann austoben

Zitat von mimi:
C) Wie ist das Level Format bei dir aufgebaut ?
Zitat:
%500|100|500|100|

0|0|1|

0|1|1|

0|2|1|

0|3|1|


Ich zitiere mal nur einen Beitrag:
Zitat von xZise:
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
Fabian
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#144
  Alt 20. Sep 2007, 21:38
Ja das ist mir schon klar, aber was muss ich bei den wert 1 erstellen ?

die Positionsangaben muss ich ja nur * 48 nehmen. schon habe ich es.

0|3|1|
was wird bei 1 erstellt ? Es muss doch eine Funktion/Procedure geben die diese werte bearbeiten.
1 z.b. > eine wand
2 z.b. > ein Säure Fehld
3 z.b. > ein Speed Fehld nach Linkgs

und weiter.... so meine ich das !

Ich habe mir mal dein Editor runter Geladen, da finde ich hoffentlich die Antworten die ich suche *G*
Michael Springwald
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#145
  Alt 20. Sep 2007, 21:45
Zitat von mimi:
ich habe mich entschieden ein eigens Level Format zu nehmen, weil:
Im Orinal Format können keine Autor Informationen untergebracht werden. Aber ich möchte später bzw. evlt. mache ich das schon am Anfang die Möglichkeit haben die Original Levels laden zu können.
Hm, xZise hat da doch eine ganz hübsche Methode gefunden...
Ansonsten will auch ich noch mehr Infos in den Leveldateien unterbringen, d.h. ich werd da selbst noch einiges ergänzen/umarbeiten.. das Levelformat war eigentlich nur provisorisch, da man eine plaintext-Datei einfach gut von Hand bearbeiten kann ^^
Da nun aber schon zwei weitere Projekte [quote=mimi]nx-clon) darauf aufbauen, werd ich mir das überlegen müssen ...


Zitat von mimi:
Dazu müsste ich nur einige Dinge wissen:
A) Wie bewegst du den Ball genau ? welche werte hast du genommen ?
z.b. das der Ball immer langsamer wird
in jedem Frame:
kugel.X_Geschwindigkeit := kugel.X_Geschwindigkeit * 0.99;
kugel.X_Position := kugel.X_Position + kugel.X_Geschwindigkeit;

Wenn eine Kugel auf einem "nach Links"-Farbfeld liegt (egal ob aufgemalt oder aus dem Level), entspricht das pro Frame einem
kugel.X_Geschwindigkeit := kugel.X_Geschwindigkeit - 0.5;


Zitat von mimi:
B) Können mehrer Bälle gleichzeitig fliegen ? (nein oder ?, es können nur mehrer Bälle gleichzeigt da sein)
Fliegen? Pro Level können sich theoretisch beliebig viele Bälle befinden (genauer gesagt so viele, wie reinpassen). Diese bewegen sich gleichzeitig und interagieren miteinander (d.h. können kollidieren und entsprechend abprallen).

Zitat von mimi:
C) Wie ist das Level Format bei dir aufgebaut ?
Erste Zeile immer:
#%1|%2|%3|4|

%1 = Anzahl rote Farbe
%2 = ~ grüne ~
%3 = ~ gelbe ~
%4 = ~ blaue ~

Die darauffolgenden Zeilen sind, wie du schon vermutet hast, einfach X|Y|Typ|Zusatz|

Wobei "Zusatz" immer 0 ist, nur für geöffnete Türen wäre er 1 (der Typ-Code ist für geöffnete wie geschlossene Türen gleich)

Zitat von mimi:
D) Wie ist das mit der Größe des Spiel Fehledes ?
16x12 Felder mit je 48Pixeln Kantenlänge..

Zitat von mimi:
Ich habe alle Grafik Dateien jetzt zu einer BMP gemacht, später soll daraus eine PNG werden. Das dürfte kein Problem sein/werden.
Ich hab bisher fast alle Grafiken des Originalspiels nochmal komplett neu gemacht, weil ich viel Alphablending bei den PNGs genutzt habe, da die Pixelkanten bei BMP grausig waren ^^

Zitat von mimi:
Edit1: ich sehe gerade du verwendest ein Raster ? wenn ja mit welcher Größe ? in x und in y Richtung ?
siehe oben, 16x12

Zitat von mimi:
Edit2: Wie machst du das mit dem nächsten Level wenn der Ball ins Ziel gekommen ist ?
woher weiß das Ziel welches Level es laden muss ?
bisher nimmt er einfach den Level, den er als nächstes findet.. Levelverwaltung ist erst in Planung



Nu schick ich erstmal ab, Beschreibung der einzelnen Felder kommt danach [seh ja, das dauernd gepostet wird ^^]
Florian Heft
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#146
  Alt 20. Sep 2007, 21:51
Also, die "Typ"-Codes für die verschiedenen Felder wären folgende:

[code]
01 = Wand
02 = Ball [wird ggf geändert und die Ballpositionierung ausgegliedert]
03 = Ziel
04 = roter Farbtank
05 = grüner ~
06 = gelber ~
07 = blauer ~
08 = Säure
09 = roter Schalter
10 = grüner ~
11 = gelber ~
12 = blauer ~
13 = rote Tür
14 = grüne ~
15 = gelbe ~
16 = blaue ~
17 = Bumper (das rote Ding wo bälle abprallen)
18 = Kissen
19 = Beschleunigungsfeld links
20 = ~ rechts
21 = ~ oben
22 = ~ unten
23 = Beamstart blau
24 = ~ gelb
25 = ~ rot
26 = ~ grün
27 = Beamziel blau
28 = ~ gelb
29 = ~ rot
30 = ~ grün
[/quote]
Pfüüüh... ^^

Btw, wo ichs gerade sehe: wenn ein Ball z.B. in ein rotes Beamfeld rollt, kommt er bei einem zufälligen roten Beamfeld wieder raus.. also wenns mehere gibt, entscheidet der Zufall...
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#147
  Alt 20. Sep 2007, 21:52
Danke ! das hat mir schon weiter geholfen.

Nur das mit den bewegen wird nicht so einfach.
Weil ich kann nur mit geraden Zahlen arbeiten.
Bei mir geht das im Moment so:
Delphi-Quellcode:
      if (OldFileame <> GameItem2.FileName) and (GameItem2.Typ = Pfeile) then begin
        if GameItem.Speed <=0 then begin
          GameItem.Speed:=GameItem.Speed+3;
          GameItem.isNewTC:=False;
        end;
  ....
bei einem Speed Fehld:
Delphi-Quellcode:
      if (OldFileame <> GameItem2.FileName) and (GameItem2.typ = SpeedFehd) then begin
        Writeln(GameItem2.FileName);
        GameItem.Speed:=GameItem.Speed+5;
        GameItem.isNewTC:=True;
der ball wird so verlangsammt:
Delphi-Quellcode:
    if ((not GameItem.isNewTC) and (GameItem.t >=GameItem.tc) and (GameItem.Speed -1 >= 0)) or ((GameItem.isNewTC) and (GameItem.t >=GameItem.NewTc) and (GameItem.Speed -1 >= 0))then begin
      Dec(GameItem.Speed);
      GameItem.t:=0;
    // GameItem.isNewTC:=False;
    end
    else
      inc(GameItem.t);
Diese Code Schisspel stehen alle in einer Procedure die jede ms aufgerufen wird.

Bei den Speed Fehlden muss ich noch was ändern. Im moment fliegt der Ball leider noch in x und in y Richtung also nicht in einer Richtung.

Ich denke das mit den Mehrern Bällen werde ich noch einbauen, aber bei mir wird nur einer Fliegen können zu gleichenzeit.... oder hast du levels wo diese Funktion genutzt wird ?

Danke für deine Liste.... nun kann ich eine Lade Funktion für mein Spiel Schreiben.

Edit1 17 verstehe ich nicht: An einer Wand prallen doch auch Bälle ab oder nicht ?

Edit2: Welche Grafik nimmst du für die Wand ? ich nehme kissen.bmp
Michael Springwald
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#148
  Alt 20. Sep 2007, 21:55
Naja, es sind sicher einige Level denkbar, wo mehrere gleichzeitig sich bewegende Bälle sinnvoll wären, einer öffnet z.b. die Tür und der andere Ball rollt durch (hab da schon einen in der Art gebastelt) .. aber geht ja vllt auch ohne..
Florian Heft
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#149
  Alt 20. Sep 2007, 21:57
Zitat von mimi:
Edit1 17 verstehe ich nicht: An einer Wand prallen doch auch Bälle ab oder nicht ?
Hierbei aber besonders stark .. ein Ball der öfter an so einen Bumper stößt, wird ziemlich rasch ziemlich schnell...

PS: zu der Ganzzahlenproblematik: du kannst ja grundsätzlich alle Werte *1000 nehmen zum Beispiel.. und beim Zeichnen einfach die Werte die du hast durch 1000 rechnen.. dann hast du immerhin sozusagen vier Nachkommastellen .. ohne wirklich mit Kommazahlen zu rechnen.
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#150
  Alt 20. Sep 2007, 22:00
Oh Intersannt muss ich mal prüfen ob ich das einbauen kann/werde.

Ich sehe gerade bei 18: Welche Bedeutung hat das Kissen Feld ?

Bei 17 nochmal: In Welcher Richtung fliegt der ball wenn er aufprallt ? in der von er gekommen ist ?
Michael Springwald
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 15 von 22   « Erste     5131415 1617     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 11:48 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