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 16 von 22   « Erste     6141516 1718     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)
 
Florian H

 
Delphi 6 Professional
 
#151
  Alt 20. Sep 2007, 22:06
Bei 18: der Ball prallt nicht ab sondern bleibt fast stehen.. also wie eine Wand nur dass die Geschwindigkeit fast auf 0 gesetzt wird..
Bei 17: wie bei der Wand.. also nicht direkt zurück sondern er prallt normal ab (Einfallswinkel=Ausfallwinkel).. nur eben stärker..
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#152
  Alt 20. Sep 2007, 22:11
ach so.. und was passiert bei einer Wand und was für eine Grafik nimmst du da ?

Da muss ich wohl noch einiges in meiner MoveBall Funktion ändern.
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#153
  Alt 21. Sep 2007, 19:10
ich habe es soweit geschaft: ich kann jetzt jedes Level laden und auch da stellen.

Was ich noch nicht verstehe es wie du die Bewegung des Balles gemacht hast.

Bei dir sieht es so aus, als ob der Ball schräg fliegen würde stimmt das ?

Ich habe es bei mir wieder rauß genommen.
Ich hänge mal ein ScreenShott ran.

Den Hintergrund werde ich später noch mal verändern.

Um wie Viel Schneller wird der ball wenn er bei einer Wand, einem Kissen oder einen Bumper abprallt ?

kannst du mir die drei werte noch mal nennen ?

Zitat:
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.
Das verstehe ich bis jetzt noch nicht wirklich.
Hast du ein Beispiel oder so ?
denn wenn ich 0,5 * 1000 rechne bekomme ich 500 wenn ich jetzt speed+500 rechne ist das doch viel zu schnell.
Miniaturansicht angehängter Grafiken
flos_drawball_209.png  
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#154
  Alt 22. Sep 2007, 12:38
Noch mal ein paar Fragen:
01
Wenn es mehrer Rote Türen gibt und nur ein Schalter wird jetzt bei mir alle Rote Türen geöffnet die er findet ist das richtig ?

02
Bei mir können nicht mehrer Bälle gleichzeitig fliegen. Beim Klicken mit der Maus wird der Ball ausgewählt.
Dazu wird in der ObjectList das Jeweilige Object rauß gesucht, um Fehler zu vermeiden, wird geprüft ob es ein Ball ist.

03
Um wie viel erhöhst du die Geschwindigkeit bei den Speed Feldern ?
und den Kissen, Bumper und Wände ?

04
Beim Beamer kann der Ball doch nur beim Beamer Start rein oder ? und nicht beim Beamer Ziel ?

Ich habe es noch mal gestest ich kann jetzt alle Level die es von dir gibt laden. Und Teilweise auch schon spiele. Allerdings muss ich das Level was ich spielen möchte direkt angeben !

ich hätte da noch ein Paar vorschläge die ich bei mir evlt. noch einbauen werde mit der Zeit:

05
Das Ziel Object Speicher das Level wo es hingehen soll
06
Beim Beamer soll man einstellen können in Welcher Richtung der Ball beim Beamer Ziel raußkommen soll, oder an welcher Position der Ball entstehen soll.
07
Mehr Informationen im Level:
Zitat:
a) Autoren Informaitonen
b) Welches Grafik Set wird genommen(Wenn es mehrer geben sollte)
c) Mehrer Levels in einem. z.b. währe es denkbar das ein Ziel einen zum Bonous Level führt, oder zu einem erweiterten Level. Wo du z.b. eine Schalter drücken musst den du im vorhieregen Level brauchst.
das heißt der Level-Standt muss in einem Temp Verzeichnis gespeichert werden. Stelle ich mir aber lustig vor.
08
Die Offne Tür sollte einen Rand haben.
09
Evlt. mehr Objeckte:
Zitat:
a: Bewegete Platten: Platten die sich von Links nach Rechts oder von Oben nach Unten Bewegen
b: Eine Tür die sich Automatisch in einem Intervall verschließ und Öffnet
c: Säure Fehlder die sich genau wie ba a bewegen können
d: Die Möglichkeit den Türen/Schalter und BeamerStart und BeamerZiel eine eindeutige Nummer zu geben.
um z.b. mehr als nur 4 davon zu haben.
e: Objecte die in einen Intervall schüsse abgenben. Entweder in einer Zufällig richtung oder in einer
Angeben, oder aus einer Liste.
f: Eine Linen die von Oben und von Unten zur Mitte gehen. In ein angebenen Intervall.
(oder halt auch von Links und von Rechts zur Mitte gehen).
g: Farb Tanks die einen Bestimmten wert haben, also keine Konste werte z.b. Zufällige oder vom
User angeben. oder in einem bestimmten Bereich.
h: Ein Zeit Object, z.b. ein Gobales oder für Teilzeit. z.b. das eine Aufgabe in der angeben zeit gelöst
sein sollte/muss. Z.b. eine Tür muss offen sein, oder ein Schalter sollte gedrückt sein.
i: Punkte die der ball einsammeln muss und das Ziel(oder die Ziele) sollten erst erscheinen, wenn
die angeben Punkte eingesammelt wurden. Wird ein Zeit object verwendet könnte dies in die Punkte
berechnung einfließen. Wie viel Punkte es gibt, wenn das Obj eingesammelt wird sollte
der Level Ersteller entscheiden Pro Obj, oder halt -1 für eine Konstante oder -2 für zufällig.
10
Verschiedne Hintergründe auswählbar und lad bar.

Ich denke das waren erstmal meine vorschläge und Fragen.....
Währe schön, wenn wir zusammenarbeiten könnten an diesem Spiel.

Z.b. Du machst deine Version mit DX(oder ?) und ich meine mit Canvas weiter.
Weil ich sehe es wie gesagt nicht ein das ein Einfaches 2D Spiel gleich 100% Cpu last benötig.
Bei einem 3D spiel ist das was anders, aber sowas läuft leider nicht 100%ig auf meinem "alten"
laptop.

Was meint ihr zur Menusteuerung ?
Ich wollte wohl eine eigene machen, die komplet aus 2 Dateien gelesen wird. So das z.b. Sprach Dateien
Denkbar währen und eine für verschiednes Aussehen.

Ich werde sobald das Spiel richtig läuft auch noch ein Plattformunabhänigen Level Editor Basteln.
Ich möchte alle OBJ in Gruppen in einer PageControl laden.

Wenn man ein Obj Platziert hat sollte beim auswählen des OBJ ein Dialog kommen mit den einstellungs Möglichkeiten.
(Für Später versionen schonmal vorbereiten).
Michael Springwald
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#155
  Alt 22. Sep 2007, 20:00
Zitat von mimi:
Noch mal ein paar Fragen:
01
Wenn es mehrer Rote Türen gibt und nur ein Schalter wird jetzt bei mir alle Rote Türen geöffnet die er findet ist das richtig ?
Richtig.

Zitat von mimi:
02
Bei mir können nicht mehrer Bälle gleichzeitig fliegen. Beim Klicken mit der Maus wird der Ball ausgewählt.
Dazu wird in der ObjectList das Jeweilige Object rauß gesucht, um Fehler zu vermeiden, wird geprüft ob es ein Ball ist.
Klingt ein bisschen verwirrend,aber bin gespannt wie du das umsetzt :]

Zitat von mimi:
03
Um wie viel erhöhst du die Geschwindigkeit bei den Speed Feldern ?
und den Kissen, Bumper und Wände ?
Speed-Felder: +0.5 pro Frame
Wand = v * 0.99 (v = geschwindigkeit)
Bumper = v * 1.5
Kissen = v * 0.5


Zitat von mimi:
04
Beim Beamer kann der Ball doch nur beim Beamer Start rein oder ? und nicht beim Beamer Ziel ?
Richtig.

Zitat von mimi:
ich hätte da noch ein Paar vorschläge die ich bei mir evlt. noch einbauen werde mit der Zeit:
Sind ein paar kuhle Sachen dabei, werd mir einiges davon mal durch den Kopf gehen lassen, danke :]

Zitat von mimi:
Z.b. Du machst deine Version mit DX(oder ?) und ich meine mit Canvas weiter.
Mein Spiel basiert auf Andorra2D, unterstützt also sowohl DirectX als auch OpenGL und ist damit theoretisch plattformunabhängig .. wollte das eigentlich in nächster Zeit mal testen und mit Lazarus in meiner Linux-VM compilieren.. mal gucken ^^
Florian Heft
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#156
  Alt 22. Sep 2007, 20:23
ach so war es auch. Stimmt.
Danke für die Infos.... der Level Editor ist auch schon fast fertig.

da ich nicht mit Komma Zahlen rechnen kann werde ich wohl plus 1 oder so machen.....
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#157
  Alt 22. Sep 2007, 22:12
Neuester Stand:
01 Level Editor ist soweit Fertig bis auf paar Kleinigkeiten.
02 Orginal Level können geladen und gespeichert werden
03 Ein Screenshot kann vom Level Gemacht werden
04: Level Testen

hier mal ein Aktueller Screenshot im Anhang.
(für alle die auf dem Laufenden Bleiben wollen)

Als nächstest es geplant:
01 Umschalten zwischen Level Editor und Spiele Modus
02 Pausieren vom Spiel
03 Spiel Stand Sichern und wieder Laden
04 GameOver bei Säure Kontankt(geht zwar schon, hatte ich nur deaktivert)
05 beim erfolgt nächstes Level Laden

da hast du doch einfach nur mit FindFirst gearbeitet oder ?
bzw. zu erst mit FindFirst und FindNext alle Dateien in einer TSTringlist geladen und
dann per LevelIndex denn du beim nächstenlevel einfach +1 genommen hast.
oder ?

06 Anfang Menu.

Sagt mal was ihr so vom Screenshot haltet. Bis jetzt ist es einfach nur gefüllte Fläche mit FillRect.
Weil ich noch keine Grafiken dafür habe.
Miniaturansicht angehängter Grafiken
bildschirmfoto-drawball_1.5_von_michael_springwald_115.png  
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#158
  Alt 25. Sep 2007, 16:47
Du hast doch geschrieben das du neue Grafik gemacht hast ?
sind sie schon im Archiv im ersten Beitrag von die dabei ?
Habe es mir heute noch mal geladen, aber die Grafiken sehen nicht anders aus.

mir ist noch eine Idee zu den Zielen gekommen:

Wenn es mehrer Bälle gibt, könnte man doch den Bällen und den Zielen ID'S und Gruppen geben.

z.b. ich verwende 5 Bälle. der 1 ball kann nur in das eine Ziel rein, die anderen beachten ihn nicht

Drei Bälle gebe ich jetzt die gleiche Gruppe und setzte beim Ziel die Gruppen Eigenschaft auf die Gruppe.
z.b. 4 dann können nur noch Bälle rein die der 4. Gruppe angehören.

und bei den ID'S genau so: Beim Ziel kann nur der Ball rein der die Richtige ID hat.
z.b. Ball2 kann nur in das Ziel2 rein. sonst nirgendwo.

und das nicht alle Bälle ins ziel müssen.

z.b. sagst du das von 10 Bällen nur 5 ins ziel müssen. Das währe bei größeren Levels Praktisch. Dann erfühllen diese Bälle eine Teilaufgabe.... und gut.

Meine Version ist so gut wie Fertig bzw. Version 0.5 Alpha.

ich weiß nur noch keine schöne Lösung für den Missions Manger.
Das habe ich bei mir so vorgestellt:
Es sollen mehrer Level Packte Geben -> Genant Mission.
Ein Level Packt besteht immer aus: Mehren Level zusätztlich sollen eigene Grafiken/Sound/Musik Dateien verwendet werden können.

In der ersten Version dachte ich mir das so:
Ich nehme ein TPageControl schalte die Buttons aus.
Dann nehme ich eine TreeView(Die VST geht zwar, hat aber viele Fehler)
Lade dort das entweder ein Verzeichnis rein oder eine Mission Liste Datei.
Die Missions Liste hätte den Vorteil das die levels die nicht als Standard dabei sind wo anders liegen könnten.
hat Aber auch den Nachteil das diese Datei bearbeitet werden müsste......

Klicke ich jetzt auf eine Misson sollen paar Daten Kommen wie:
Anzahl der Levels, eine Beschreibung, Name des Autor, Wann sie zu letzt geändert wurden ist und soweiter.
Was würdet ihr besser finden ?

Klicke ich auf ein Level soll das gleiche kommen, aber es soll eine Vorschau geben.
Dazu wollte ich alle Grafiken um die Hälfte verkleinern Ich hoffe das reich oder noch mehr.

Und Später halt noch eine "Punkte Liste".

edit01. ps:
Das ist das Este Projekt von Vielen angefangen Projekten das Fertig wird. Kein Anders Projekt von mir ist seit Jahren so weit gekommen.
Michael Springwald
  Mit Zitat antworten Zitat
mimi

 
FreePascal / Lazarus
 
#159
  Alt 25. Sep 2007, 16:55
Zitat:
Speed-Felder: +0.5 pro Frame
Wand = v * 0.99 (v = geschwindigkeit)
Bumper = v * 1.5
Kissen = v * 0.5
ich wollte das gerade ein bauen, aber ich weiß noch nicht wie.
ich habe zwei Möglichkeit die Geschwindigkeit bei mir zu beeinflussen:

Per Variable: TGameItem.Speed+Wert
Per Zeit schleife. Da der Ball immer langsamer wird pro Frame musste ich eine Zeit schleife einbauen.

Alle 50 Durchgänge nimmt die Geschwindigkeit ab.

Ich frage mich jetzt wie könnte ich das am besten umsetzten.
Hast du, habt ihr eine oder mehre Ideen ? wenn ja welche.
Michael Springwald
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#160
  Alt 26. Sep 2007, 11:15
[quote="mimi"]
Zitat:
ich wollte das gerade ein bauen, aber ich weiß noch nicht wie.
ich habe zwei Möglichkeit die Geschwindigkeit bei mir zu beeinflussen:
Per Variable: TGameItem.Speed+Wert
Per Zeit schleife. Da der Ball immer langsamer wird pro Frame musste ich eine Zeit schleife einbauen.
Alle 50 Durchgänge nimmt die Geschwindigkeit ab.
Ich fand das mit der Multiplikation immernoch am besten ^^
Wieso unterstüzt Lazarus eigentlich keine Floats? Oo

Aber nochmal zur Verdeutlichung:

Intern rechnest du grundsätzlich mit dem 100-fachen eines jeden Wertes, intern liegt der Ball also z.B. bei "5000|4000" (statt 50|40) und wenn er über ein Beschleunigungsfeld rollt, kommen zur Geschwindigkeit jeden Frame + oder -50 dazu (statt +- 0.5).
Nur beim Zeichnen (und nur da), rechnest du dann die Positionswerte auf die Bildschirmgröße um.. teilst also alle Werte durch 100.
Dann wird aus 5000|4000 wieder 50|40 und der Ball liegt irgendwo oben links in der Ecke...

Zitat von mimi:
da hast du doch einfach nur mit FindFirst gearbeitet oder ?
bzw. zu erst mit FindFirst und FindNext alle Dateien in einer TSTringlist geladen und
dann per LevelIndex denn du beim nächstenlevel einfach +1 genommen hast.
oder ?
Jups, da die Levelverwaltung wie gesagt noch nicht fertig ist..

[quote="mimi"]Du hast doch geschrieben das du neue Grafik gemacht hast ?
sind sie schon im Archiv im ersten Beitrag von die dabei ?
Habe es mir heute noch mal geladen, aber die Grafiken sehen nicht anders aus./quote]
Sind noch nicht alle veröffentlicht..kommt noch irgendwann..

Zitat von mimi:
Wenn es mehrer Bälle gibt, könnte man doch den Bällen und den Zielen ID'S und Gruppen geben.
Tolle Idee, liese sich ja durch Ball- und Zielfarben (rote Bälle ins rote Ziel etc.) veranschaulichen.

Zitat von mimi:
und das nicht alle Bälle ins ziel müssen.
z.b. sagst du das von 10 Bällen nur 5 ins ziel müssen. Das währe bei größeren Levels Praktisch. Dann erfühllen diese Bälle eine Teilaufgabe.... und gut.
Auch toll :]

Zitat von mimi:
ich weiß nur noch keine schöne Lösung für den Missions Manger.
Klicke ich jetzt auf eine Misson sollen paar Daten Kommen wie:
Anzahl der Levels, eine Beschreibung, Name des Autor, Wann sie zu letzt geändert wurden ist und soweiter.
Was würdet ihr besser finden ?
Klingt doch gut so 8)

Zitat von mimi:
edit01. ps:
Das ist das Este Projekt von Vielen angefangen Projekten das Fertig wird. Kein Anders Projekt von mir ist seit Jahren so weit gekommen.
Fühle mich geehrt, dass die Spielidee wohl so antreibend ist ^^
Florian Heft
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 16 von 22   « Erste     6141516 1718     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 13:38 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