Grafikdinge für ein Kartenspiel (2D)
Grafikdinge für ein Kartenspiel (2D)
Hi,
ich habe mit PB bis jetzt immer nur kleine Anwendungen entwickelt und möchte mich mal an ein 2D-Kartenspiel wagen. Ich hatte das in BlitzMax vor Ewigkeiten mal angefangen und möchte es alternativ dazu mal in PB versuchen. Wie ich Grafiken anzeigen lassen inkl. Blending usw. ist weniger kompliziert. Dennoch kamen im Rahmen der Konzeptionierung ein paar Fragen auf:
1. Ich möchte das Hintergrundbild (= Foto von Holztisch mit Kerze) mit einem Partikeleffekt (= Flamme der Kerze) etwas beleben - wie kann ich das in PB/2D am besten umsetzen? Hier genau mein Bildausschnitt mit einem Partikeleffekt von Ninfa3D: http://www.youtube.com/watch?v=FTjuqxwhKJw.
2. Ich möchte Animationen mit fester Bildrate abspielen - wie bekomme ich das hin?
3. Ich möchte eine GUI nutzen, um z.B. das Spielemenü zu erstellen, den Spielernamen eingeben zu können, Online-Server anzeigen zu lassen etc. Gibt es da fertige GUIs? Und wie funktioniert die GUI in Verbindung mit den Animationen aus 2.? Hab ich Probleme z.B. bei Tastatureingaben zu erwarten?
4. Das ganze soll auf Win/Lin/Mac funktionieren (das ist auch ein Grund, der für PB spricht).
Kann mir jemand in dem ein oder anderen Punkt weiterhelfen? Ich habe mit Grafikprogrammierung unter PB noch wirklich keinerlei Erfahrungen gesammelt.
Viele Grüße
René
ich habe mit PB bis jetzt immer nur kleine Anwendungen entwickelt und möchte mich mal an ein 2D-Kartenspiel wagen. Ich hatte das in BlitzMax vor Ewigkeiten mal angefangen und möchte es alternativ dazu mal in PB versuchen. Wie ich Grafiken anzeigen lassen inkl. Blending usw. ist weniger kompliziert. Dennoch kamen im Rahmen der Konzeptionierung ein paar Fragen auf:
1. Ich möchte das Hintergrundbild (= Foto von Holztisch mit Kerze) mit einem Partikeleffekt (= Flamme der Kerze) etwas beleben - wie kann ich das in PB/2D am besten umsetzen? Hier genau mein Bildausschnitt mit einem Partikeleffekt von Ninfa3D: http://www.youtube.com/watch?v=FTjuqxwhKJw.
2. Ich möchte Animationen mit fester Bildrate abspielen - wie bekomme ich das hin?
3. Ich möchte eine GUI nutzen, um z.B. das Spielemenü zu erstellen, den Spielernamen eingeben zu können, Online-Server anzeigen zu lassen etc. Gibt es da fertige GUIs? Und wie funktioniert die GUI in Verbindung mit den Animationen aus 2.? Hab ich Probleme z.B. bei Tastatureingaben zu erwarten?
4. Das ganze soll auf Win/Lin/Mac funktionieren (das ist auch ein Grund, der für PB spricht).
Kann mir jemand in dem ein oder anderen Punkt weiterhelfen? Ich habe mit Grafikprogrammierung unter PB noch wirklich keinerlei Erfahrungen gesammelt.
Viele Grüße
René
Re: Grafikdinge für ein Kartenspiel (2D)
1.
Du kannst dir eine LinkedList anlegen in der verschiedene Sprites (als Partikel) sich dann bewegen, jenachdem was du vorhast. Also ein "Flammen"-Sprite welches sich nach oben hin ausblendet, und kleine "Funken"-Sprites
2.
Animationen kannst du wenn es echte Movies sind, mit der Movie-Lib abspielen. ansonsten gibs hier im Forum auch "SpriteAnimationen" in der eine serie von Sprites immer wieder wiederholt wird.
3.
Da dazu gibs bereits viele User-Includes welche vor und nachteile haben, zu finden hier im Forum.
Du kannst dir eine LinkedList anlegen in der verschiedene Sprites (als Partikel) sich dann bewegen, jenachdem was du vorhast. Also ein "Flammen"-Sprite welches sich nach oben hin ausblendet, und kleine "Funken"-Sprites
2.
Animationen kannst du wenn es echte Movies sind, mit der Movie-Lib abspielen. ansonsten gibs hier im Forum auch "SpriteAnimationen" in der eine serie von Sprites immer wieder wiederholt wird.
3.
Da dazu gibs bereits viele User-Includes welche vor und nachteile haben, zu finden hier im Forum.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Grafikdinge für ein Kartenspiel (2D)
Kurze Antworten und nur eingeschränkt hilfreich, trotzdem Danke dafür - wenigstens überhaupt eine Antwort.
Zu Animationen: Ich meinte ich keine Filme sondern z.B. das Aus- und Einblenden von Fenstern, Sprites etc. und deren Bewegung. Die sollte auf jedem System gleich schnell ablaufen (einfaches Beispiel: eine Laufschrift).
Zur GUI: Ich habe lediglich sgx gefunden. Hast du Links zu anderen User-Includes, die's hier gibt?
Gruß
René
Zu Animationen: Ich meinte ich keine Filme sondern z.B. das Aus- und Einblenden von Fenstern, Sprites etc. und deren Bewegung. Die sollte auf jedem System gleich schnell ablaufen (einfaches Beispiel: eine Laufschrift).
Zur GUI: Ich habe lediglich sgx gefunden. Hast du Links zu anderen User-Includes, die's hier gibt?
Gruß
René
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Grafikdinge für ein Kartenspiel (2D)
stichwort "timing".Die sollte auf jedem System gleich schnell ablaufen
http://www.purebasic.fr/german/viewtopic.php?t=17400
http://www.purebasic.fr/german/viewtopic.php?t=19394
GUI
http://www.purebasic.fr/german/viewtopic.php?t=18504
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Re: Grafikdinge für ein Kartenspiel (2D)
Wenn du mit GUI die ganze Gadget-Lib von PB im Screen haben willst, dann ist das nur schwer möglich.
Entweder du nimmst die das Beispiel von Kaeru Gaman und machst dir deine eigene GUI bauen.
Wenn zB nur um die Eingabe geht, solltest du dir mal die KeyboardInkey() funktion angucken, die sollte fürs erste reichen.
Vllt solltest du selber noch mal sagen was du als hilfreich empfindest ...
- Möchtest du ganze Codes, Beispiele, Includes
- Möchtest du nur viele Ideen und herangehensweisen
- einfach nur Stichworte ...
Viel mögen es nciht wenn ihnen alles "vorgesetzt" wird, sonden bsteln lieber selber, grauchen halt aber n Startschuss
Entweder du nimmst die das Beispiel von Kaeru Gaman und machst dir deine eigene GUI bauen.
Wenn zB nur um die Eingabe geht, solltest du dir mal die KeyboardInkey() funktion angucken, die sollte fürs erste reichen.
Vllt solltest du selber noch mal sagen was du als hilfreich empfindest ...
- Möchtest du ganze Codes, Beispiele, Includes
- Möchtest du nur viele Ideen und herangehensweisen
- einfach nur Stichworte ...
Viel mögen es nciht wenn ihnen alles "vorgesetzt" wird, sonden bsteln lieber selber, grauchen halt aber n Startschuss
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Vermilion
- Beiträge: 1846
- Registriert: 08.04.2006 16:00
- Computerausstattung: Apple iMac (2010) & HP Notebook
- Wohnort: Heidekreis
Re: Grafikdinge für ein Kartenspiel (2D)
Benutze doch mal die Suchfunktion und werde doch selber mal kreativ.
Wenn die grafische Benutzeroberfläche ein eigene Optik und ein spezielles Verhalten besitzen soll, kommts du ohnehin nicht darum herum, selber zu programmieren.
Wenn die grafische Benutzeroberfläche ein eigene Optik und ein spezielles Verhalten besitzen soll, kommts du ohnehin nicht darum herum, selber zu programmieren.
Re: Grafikdinge für ein Kartenspiel (2D)
Danke für die Unterstützung...
Da ich das Spiel als "Terminsache" auf dem Tisch habe bin ich für jede Hilfe dankbar, sowohl Ideen als auch fertige Sourcen. Und die Suchfunktion nutze ich IMMER, wenn ich Hilfe brauche. Aber ich habe festgestellt, dass einige helle Köpfe hier im Forum ab und zu Dinge in ihrer Schublade haben, die dann sofort weiterhelfen und noch nicht im Forum erfragt wurden. Btw @Kaeru: Danke für deine Links.
Ich werde mir mal anschauen, ob ich sgx (=GUI-System) für meine Anforderungen anpassen kann - parallel dazu werd ich mir mal ganz allgemein Kaeru Gamans Beispiel dazu anschauen, wie aufwendig eine eigene Implementierung wäre. Die Partikel werde ich wohl wirklich selbst erzeugen (mithilfe von LinkedLists, wie von Stargate vorgeschlagen).
Beim Timing bin ich mir nicht sicher, wie ich die Kombination aus Effektdarstellung (fixed rate mit z.B. 30 FPS) und der GUI (hier gerade die Eingabe, die öfter als mit 30 Inputs/s arbeiten soll) hinbekomme. Ich kann ja nicht einfach die Schleife zur Darstellung des ganzen Spiels auf 30 FPS 'bremsen', da ich so z.B. bei der Tastatureingabe in einem Text-Gadget max. 30 Tastendrücke verarbeiten kann, oder sehe ich das falsch?
Gruß
René
Ich werde mir mal anschauen, ob ich sgx (=GUI-System) für meine Anforderungen anpassen kann - parallel dazu werd ich mir mal ganz allgemein Kaeru Gamans Beispiel dazu anschauen, wie aufwendig eine eigene Implementierung wäre. Die Partikel werde ich wohl wirklich selbst erzeugen (mithilfe von LinkedLists, wie von Stargate vorgeschlagen).
Beim Timing bin ich mir nicht sicher, wie ich die Kombination aus Effektdarstellung (fixed rate mit z.B. 30 FPS) und der GUI (hier gerade die Eingabe, die öfter als mit 30 Inputs/s arbeiten soll) hinbekomme. Ich kann ja nicht einfach die Schleife zur Darstellung des ganzen Spiels auf 30 FPS 'bremsen', da ich so z.B. bei der Tastatureingabe in einem Text-Gadget max. 30 Tastendrücke verarbeiten kann, oder sehe ich das falsch?
Gruß
René
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Grafikdinge für ein Kartenspiel (2D)
wenn du eine Doppelschleife baust, wie das bei WindowdScreen mit Gadgets drumrum üblich ist,
wird das kein Problem, bzw. das Problem wird wo anders liegen.
dort hast du eine Innere Eventschleife, die nur verlassen wird, wenn kein Event anliegt.
in der äußeren Schleife findet Screen-Darstellung und Timing statt.
du könntest also beliebig schnell Tastendrücke verarbeiten.
dafür bleibt das Game stehen wenn einer schnell genug tippt.
... wenn du allerdings eine ScreenGUI baust, benutzt du ja keine Gadgets.
Eine Beschränkung der FpS auf 30 oder 60 und ein synchrones Game-Timing ist gar nicht unüblich, besonders bei kleinen Games.
du kannst natürlich auch die Vorgänge trennen, das ist etwas (viel) mehr Aufwand.
Grundsätzlich gilt auch hier: Solve The Right Problem.
Wieso muss jemand in einem Kartenspiel Briefe nach Diktat schreiben?
überleg dir, ob umfangreiche, schnelle Texteingabe überhaupt eine benötigte Feature ist.
... ich seh das im Moment keinesfalls ...
...wie eng ist die "Terminsache"?
nur um eine Vorstellung zu haben, wie viel Raum dir wirklich bleibt zum Rumexperimentieren...
wird das kein Problem, bzw. das Problem wird wo anders liegen.
dort hast du eine Innere Eventschleife, die nur verlassen wird, wenn kein Event anliegt.
in der äußeren Schleife findet Screen-Darstellung und Timing statt.
du könntest also beliebig schnell Tastendrücke verarbeiten.
dafür bleibt das Game stehen wenn einer schnell genug tippt.
... wenn du allerdings eine ScreenGUI baust, benutzt du ja keine Gadgets.
Eine Beschränkung der FpS auf 30 oder 60 und ein synchrones Game-Timing ist gar nicht unüblich, besonders bei kleinen Games.
du kannst natürlich auch die Vorgänge trennen, das ist etwas (viel) mehr Aufwand.
Grundsätzlich gilt auch hier: Solve The Right Problem.
Wieso muss jemand in einem Kartenspiel Briefe nach Diktat schreiben?
überleg dir, ob umfangreiche, schnelle Texteingabe überhaupt eine benötigte Feature ist.
... ich seh das im Moment keinesfalls ...
...wie eng ist die "Terminsache"?
nur um eine Vorstellung zu haben, wie viel Raum dir wirklich bleibt zum Rumexperimentieren...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
Re: Grafikdinge für ein Kartenspiel (2D)
Hab zugesagt, das Spiel bis Mitte November fertig und getestet zu haben.
Da ich jedoch vollzeitbeschäftigt bin und abends von meiner besseren Hälfte beansprucht bin finde ich kaum Zeit, um wirklich rumexperimentieren zu können. Aber das ist mein Problem. 
-
Kaeru Gaman
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
Re: Grafikdinge für ein Kartenspiel (2D)
ist klar, mich hatte auch nur ein ungefährer Zeitrahmen interessiert, nicht dass ich dich bis Ende Oktober mit Konzeptvorschlägen löcher.real hat geschrieben:Aber das ist mein Problem.
BTT... was für Gadgets brauchst du wozu?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.