Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.08.2014, 18:27

Visuelle Effekte mit SFML 2.1

Hey ho liebe Community,

ich habe ein kleines Kartenspiel programmiert (Bayrisch Waddel) und bin soweit eigentlich fertig. Man kan super gegen den Computer spielen.
Nun möchte ich das ganze Spiel noch etwas verschönern und mehr Bewegung ins Spiel bringen!

Deswegen folgende Fragen:

- Es gibt 3 besondere Trümpfe in dem Spiel, diese würde ich gerne durch einen pulsierenden Rand (2-3 Farben) leicht erkennbar machen. Wie soll ich das anstellen?
- Ich will als nächstes eine misch-Animation hinzufügen, habe mir das wie folgt überlegt: Ich modelliere mir das mischen in ca. 10 Bildern und lasse diese in einen bestimmten Zeitintervall ablaufen // gibt es hier auch eine andere Möglichkeit?
- Ich möchte, dass sich nach dem mischen die Karten zu den Spielern bewegen, wie kann ich das realisieren? Meine Idee : Ich berechne mir eine lineare Funktion zwischen den zwei Punkten in Abhängigkeit von der Zeit, diese gibt mir die Position des Sprites zurück. Wäre das so korrekt?


Liebe Grüße
Doktor Gauß

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

2

17.08.2014, 01:02

- Es gibt 3 besondere Trümpfe in dem Spiel, diese würde ich gerne durch einen pulsierenden Rand (2-3 Farben) leicht erkennbar machen. Wie soll ich das anstellen?
So etwas und andere ähnliche Effekte gehen am Einfachsten mit einem Shader. Wenn du das nicht willst, dann gibt auch Möglichkeiten z.B. mit einem Sprite dessen Farbe du änderst oder einfache Shapes.

- Ich will als nächstes eine misch-Animation hinzufügen, habe mir das wie folgt überlegt: Ich modelliere mir das mischen in ca. 10 Bildern und lasse diese in einen bestimmten Zeitintervall ablaufen // gibt es hier auch eine andere Möglichkeit?
Es gibt ja unzählige Mischarten. Wenn du kreativ sein willst, dann würde ich verschiedene Arten "animieren" und immer mal die eine und andere abspielen. Zum Animieren gibt es verschiedene Wege. Du kannst dies in Echtzeit mit den eigentlichen Karten machen (musst einfach bestimmte Pfade speichern und dann an wenden) oder aber kannst das auch alles in Pre-Production (auch mit eigenes für Animationen entwickelten Programmen) machen und dann z.B. mit animierten Sprites das ganze darstellen. Da gibt es wirklich viele Möglichkeiten, am Besten nimmst du mal eine und probierst ein bisschen rum.

- Ich möchte, dass sich nach dem mischen die Karten zu den Spielern bewegen, wie kann ich das realisieren? Meine Idee : Ich berechne mir eine lineare Funktion zwischen den zwei Punkten in Abhängigkeit von der Zeit, diese gibt mir die Position des Sprites zurück. Wäre das so korrekt?
Ja eine lineare Bewegung mit einem Zeitlimit ist die simpelste Lösung. Evtl. sieht ein nicht linearer Weg etwas schöner aus.

Im grossen und ganzen solltest du nicht vergessen, dass die Animationen den Spielfluss nicht zu stark bremsen sollte, schliesslich wollen die Leute ein Spiel spielen und nicht umherfliegenden Karten zu schauen. Oft haben Kartenspiele auch eine Option, die Animationen zu deaktivieren oder schneller/langsamer zu machen.
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

3

17.08.2014, 14:32

Danke eXpl0it3r für deine Antwort!

Zitat

So etwas und andere ähnliche Effekte gehen am Einfachsten mit einem Shader. Wenn du das nicht willst, dann gibt auch Möglichkeiten z.B. mit einem Sprite dessen Farbe du änderst oder einfache Shapes.


Ich habe das erstmal so gemacht: Dazu habe ich folgende Befehle benutzt: setOutlineThickness(2) , setOutlineColor(sf::Color::Red), damit habe ich einen kleinen roten Rand um die Karte. Wie benutzte ich einen Shader richtig? Habe das noch nie gemacht.

Zitat

Es gibt ja unzählige Mischarten. Wenn du kreativ sein willst, dann würde ich verschiedene Arten "animieren" und immer mal die eine und andere abspielen. Zum Animieren gibt es verschiedene Wege. Du kannst dies in Echtzeit mit den eigentlichen Karten machen (musst einfach bestimmte Pfade speichern und dann an wenden) oder aber kannst das auch alles in Pre-Production (auch mit eigenes für Animationen entwickelten Programmen) machen und dann z.B. mit animierten Sprites das ganze darstellen. Da gibt es wirklich viele Möglichkeiten, am Besten nimmst du mal eine und probierst ein bisschen rum.


Kannst du das bitte näher erklären mit der Echtzeit Animation? Wie / welche Pfade muss ich speichern und wie anwenden?
Ich würde das in Blender machen, dazu die Kamera frontal auf die Karten und die Animation dort durchführen und in 10 + Bildern speichern und diese dann in einer Schleife durchlaufen lassen.
animierten Sprite? Was genau bedeutet das?

Zitat

Ja eine lineare Bewegung mit einem Zeitlimit ist die simpelste Lösung. Evtl. sieht ein nicht linearer Weg etwas schöner aus.

Alles klar, dazu habe ich mir schon was ausgedacht.

Zitat

Im grossen und ganzen solltest du nicht vergessen, dass die Animationen den Spielfluss nicht zu stark bremsen sollte, schliesslich wollen die Leute ein Spiel spielen und nicht umherfliegenden Karten zu schauen. Oft haben Kartenspiele auch eine Option, die Animationen zu deaktivieren oder schneller/langsamer zu machen.

Daran hatte ich überhaupt nicht gedacht! Vielen Dank, werde versuchen das zu berücksichtigen.


Danke nochmal!

Liebe Grüße Doktor Gauß

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

17.08.2014, 15:00

Echtzeitanimation soll bedeuten, du bewegst die Karten erst im Spiel und renderst nicht vorher eine Animation. Mit Pfaden etc sind dann natürlich die Wege der Karten gemeint. Du machst dann im Prinzip das selbe was du bei Blender vorher machst und ab-renderst von deinem Programmcode aus.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

eXpl0it3r

Treue Seele

Beiträge: 386

Wohnort: Schweiz

Beruf: Professional Software Engineer

  • Private Nachricht senden

5

18.08.2014, 09:23

Wie benutzte ich einen Shader richtig? Habe das noch nie gemacht.
SFML verwendet direkt GLSL, d.h. du musst dies zuerst lernen. Das offizielle Tutorial gibt dann genügend Informationen wie du Shaders mit SFML verwendest. Über GLSL wirst du genügen Informationen im Internet finden.

Kannst du das bitte näher erklären mit der Echtzeit Animation? Wie / welche Pfade muss ich speichern und wie anwenden?
Wie Schorsch gesagt hat, du bewegst du Karten in Echtzeit anstatt sie in Blender vorabzurendern. Die Pfade wären dann einfach Positionen wie die Karten sich auf dem Bildschirm bewegen.

Ich würde das in Blender machen, dazu die Kamera frontal auf die Karten und die Animation dort durchführen und in 10 + Bildern speichern und diese dann in einer Schleife durchlaufen lassen.
animierten Sprite? Was genau bedeutet das?
"in einer Schleife durchlaufen lassen" wenn du das wirklich mit einer Schleife machst, dann würdest du die Animation nicht sehen. Stattdessen musst du in einer bestimmten Zeitintervall das Bild wechseln, das kann man dann eben als animiertes Sprite betrachten (Google den Begriff einfach mal wenn du immer noch unsicher bist).
Blog: https://dev.my-gate.net/
—————————————————————————
SFML: https://www.sfml-dev.org/
Thor: http://www.bromeon.ch/libraries/thor/
SFGUI: https://github.com/TankOs/SFGUI/

Werbeanzeige