Drawmania - Don't Drop

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

UFFF, wenn man mal ein Tag nicht da ist ^^.

also wo fange ich an :

HighScore-Online-Liste
Das ist ja nicht das erste mal das ich hier ne Internet Highscore liste zeige. Und weil ich wieder sehen das viele interesse haben wie ich das gemacht habe, werde ich mal im bei Tips und Tricks mal meine Codes veröffendlichen.
Wie schon PMV sagte :
"PB-Programm -> PHP-Script -> DB (wahlweise auch Datei) -> PHP-Script -> PB-Programm"
Da es für euch einfacher ist das mit einer Datei zu machen, mache ich das dann mit einer Datei.

2D-Drawing
Ich hoffe ich habe das jetzt richtig zusammengefast, aber wie ich das gelesen habe, möchten ein paar von euch "mit machen" und dafür ein bisschen CODE haben damit ihr wisst wie solche 2D-Drawingeffekte zu programmieren sind ?

Wenn ich nun ehrlich bin ist in dem kleinen Spiel nicht so viel drin was ich Zeigen könnte.
das Einzige interessante wäre eine Explosion wie sie im Spiel vorkommt.

Die andere Seite des Spiels sind dann die Berechnungen:
Das erstes wären da die Winkelfunktionen (sin, cos, tan) ein Wichtiger Punkt im zusammenhang mit Objekten mit hilfe von LineXY.
Denn damit können alle Bewegungen (Gravitation, Reflexion, Stoßvorgänge, Animation)

DrawMania
Um näher auf das Thema 2D-Drawing und die Serie DrawMania einzugehen schlage ich vor ich mache ein neues Thema auf (am bessten in Tips/Tricks) in dem wir Weiter darüber reden können.
Desweiteren bite ich an das ihr auf "meinen" TS-Server kommt wenn ihr über das Thema reden wollt. 195.4.16.173:8779[/i]

EDIT: Wegen dem "rausgeben" von CODEs :
Ich bin bereit über alles zureden, wenn ihr was haben wollt. Aber eine Sache die ich nicht rausgebe (sry) ist die Berechnung für die Kreis-Kreis kollision. Weil ich an der 1 Jahr gesessen habe bis sie perfekt war
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
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Ich hoffe ich habe das jetzt richtig zusammengefast, aber wie ich das gelesen habe, möchten ein paar von euch "mit machen" und dafür ein bisschen CODE haben damit ihr wisst wie solche 2D-Drawingeffekte zu programmieren sind ?

Ich vermute, es weiß jeder, wie man die 2D-Drawing-API benutzt, aber es würde jetzt eher drum gehen, ein solides Grund-Framework bereitzustellen, welches von anderen einfach verwendet werden kann, damit a) nicht jeder komplett von vorn beginnen muß und b) alle Spiele in einem einheitlichen Stil erscheinen. Dazu gehört meiner Meinung nach zumindest eine API für die Entities, eine API für das Hauptmenü und eine API für die Highscores. Wenn Du eben ein paar knackige Funktionen draus machst, mit klaren Parametern und sauberen Rückgabewerten, dann braucht sich jeder Entwickler erstmal nur auf sein eigentliches Spiel konzentrieren, und nicht - um es mal sinnig zu beschreiben - dran verzweifeln, weil er nicht weiß wo er FlipBuffers() oder StartDrawing() aufrufen muß :mrgreen:

Bei so einer Basis wäre es dann im Grunde auch wurscht, ob Du uns den Code zeigst oder nicht - die Funktionen müssen nur schön allgemein und solide sein, sodaß man sie nur benutzen muß. Dann kannst Du auch Deine Kreis-Kollisionen geheimhalten ;)

Wenn Du jetzt aber nur ein paar Tips gibst, dann versucht jeder selbst, irgendwas zusammenzufrickeln, und manch einer scheitert vielleicht schon an den einfacheren Dingen. Oder einer will die coole Explosion oder den Schweif nachprogrammieren, kriegt's nicht hin und gibt auf. Wenn man nun aber Funktionen wie explodeEntity(*e, power, time) oder traceEntity(*e, steps) etc hat, und natürlich auch die ganzen restlichen Basis-Funktionen wie showEntity(*e), setEntityPos(*e, x, y), moveEntity und weiß der Geier hat, dann ist es wohl wahrscheinlicher, daß auch ein paar der Mit-Projekte fertig werden.

Wenn Dein Code sauber programmiert ist, müßtest Du ja eh bereits einige elementare Funktionen haben. Daher müßtest Du diese evtl. nur noch leicht anpassen und als LIB, DLL oder als Source bereitstellen.

So würde ich das zumindest machen, wenn ich so ein "Projekt" vorhabe. Rein theoretisch könntest Du auch noch einen Contest draus machen, wer mit Deinen Hilfsmitteln das spannendste Spiel abliefert ;)
Bild     Bild

ZeHa hat bisher kein Danke erhalten.
Klicke hier, wenn Du wissen möchtest, woran ihm das vorbeigeht.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Beitrag von Xaby »

eine Art Game-Creation-Kit. :mrgreen:

Wurde schon oft hier im Forum angesprochen. Richtige Ergebnisse gab es aber leider nur wenige.

Beispiele: 2D-Jump'n'Run-Engine

Einige Beispiele für 3D-Programmierung.


Wenn wir es doch einmal klipp und klar schaffen würden, die Dinge, die für ein Spiel von hoher Wichtigkeit sind, zusammen zu tragen, wäre das schon ein guter Schritt nach vorn.


Klar wissen die meisten, dass es einen Main-Loop gibt und dass man die einzelnen Ereignisse mit IF-Abfragen überprüft.

Aber sich jedes mal Gedanken drüber zu machen, wie man die Menüs im Spiel oder die Partikel-Effekte auf einfache und effiziente Art einbringt, ist unschön.

Vielleicht sollten wir gemeinsam im Forum soetwas wie GameGadgets()
entwickeln.

Oder Objekte, die fach nur noch ein Aussehen zugewiesen bekommen und der Rest bleibt gleich.

Z.B.: Höhe, Breite (wird vom Aussehen angenommen)
Danach kann man sie natürlich zoomen und die Rückgabewerte sind dem entsprechend größer. (je nach dem, ob man die eigentliche Größe oder die dargestellte Größe abfragt)

Positionen natürlich. Dann woraus sie bestehen. Ob Collisionsabfrage mit anderen Objekten gestattet ist oder irrelevant ...

eventuell sogar Geräusche zuweisen, wenn ein bestimmtes Ereignis zutrifft.


Später im Programm dann:

Code: Alles auswählen

InitGameEngine()

CreateMenu(1,"Spiel")
AddMenuPoint(1,"Starten")
; AddMenuPoint(-1,"Zurück")

CreateMenu(2,"Optionen")
AddMenuPoint(1,"Sound")
AddMenuPoint(2,"Grafik")
AddMenuPoint(3,"Steuerung")

Procedure Abfrage()
If Menu(1,1)
  SpielStarten ...
EndIf

EndProcedure

Loop
  Abfrage()  


EndLoop
So in der Richtung vielleicht für das Menü.

:shock: :allright:
Kinder an die Macht http://scratch.mit.edu/
Benutzeravatar
bluejoke
Beiträge: 1244
Registriert: 08.09.2004 16:33
Kontaktdaten:

Beitrag von bluejoke »

Jaa das wäre natürlich auch nett, aber es würde schon reichen, wenn man bei dem Spiel eigene Objekte entwerfen könnte...

Was ganz anderes: Das Spiel birgt wirklich hohes Suchtpotential, aber ich rege mich durchaus häufig darüber auf, dass die Kollision nicht besonders gut funktionieren mag, wenn die Mausbewegung der Kreisbewegung entgegengesetzt ist.
Ich bin Ausländer - fast überall
Windows XP Pro SP2 - PB 4.00
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

@ZeHa und Xaby ich antworte hier darauf

@bluejoke:

Die Kollision ist nur dann nicht richtig wenn man die Maus in die Kugel rein bewegt, extrem Beispiel:

Die Kugel ist bei 70,20 und mein Mausmittelpunkt bei 71,60. Man kann also sagen direkt drunter, die Kugel würde also fast gerade nach oben apprallen.
Bewegt man aber jetzt die Maus genau 40 Pixel nach oben (MouseDeltaY) dann ist die Maus in der Kugel, an hand der Werte wird nun Kugel und Maus auseinander bewegt > aus 70,20 Kugel und 71,20 Maus wird 31,20 und 71, 20, Dadurch ist die Kugel nun aber an der linken Seiten und es wird ein völlig anderer Abprallwinkel berechnet, der aber in SEINEM Fall richtig ist.

Ich muss mir noch mal etwas genau mit der bewegung der Maus befassen, um sowas zu verhindern.
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
Benutzeravatar
Thorium
Beiträge: 1722
Registriert: 12.06.2005 11:15
Wohnort: Germany
Kontaktdaten:

Beitrag von Thorium »

Kekskiller hat geschrieben:irgendwer muss noch die 100.000-marke knacken :D
Getan. :mrgreen:
Irgendwer muss jetzt die 250.000 Marke knacken.

Das Spiel ist super. Aber wenn man einmal den Dreh raushat, dann kann man praktisch unendlich lange spielen. Nur irgendwann wirds dann langweilig und die Konzentration lässt nach. Ich fänds klasse wenn sich der Schwierigkeitsgrad steigern würde. z.B. erhöhen der Geschwindigkeit des Balls.
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Is das bekloppt^^

PS: Wegen dem Drawmania proggen, darf man denn auch die restlichen 2D Befehle nutzen? Ich meine Box, Ellipse (was eigentlich unnötig ist, aber trotzdem), Plot.
Bild

Immer die neueste PureBasic Version. Auf allem Betriebssystemen. Ich bin ein OS-Nomad!
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

JA, weiteres hier
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
Benutzeravatar
Deeem2031
Beiträge: 1232
Registriert: 29.08.2004 00:16
Wohnort: Vorm Computer
Kontaktdaten:

Beitrag von Deeem2031 »

Thorium hat geschrieben:
Kekskiller hat geschrieben:irgendwer muss noch die 100.000-marke knacken :D
Getan. :mrgreen:
Irgendwer muss jetzt die 250.000 Marke knacken.
Kein Problem, hat ja "nichtma" 'ne Stunde gedauert :lol: (komm so auf ca. 300.000 Punkte/Stunde)
Man sollte es also schon im vorraus einplanen, dass man viel zeit braucht, wenn man noch oben in die Highscore will :twisted:
Bild
[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Hmmm ich glaube das ist etwas zu einfach ^^, aber ok, auf zur 500k Marke
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
Antworten