Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert sind; Die von diesem Forum gesetzten Cookies düfen nur auf dieser Website verwendet werden und stellen kein Sicherheitsrisiko dar. Cookies auf diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.
Hallo, Gast! (Registrieren)
29.04.2024, 19:58



Projekt Eisenfels (Sommerprojekt)(Brauche viiiiel Hilfe)
#21
23.07.2013
Abercromby Offline
Ponyville Pony
*


Beiträge: 248
Registriert seit: 29. Mai 2012

RE: Projekt Eisenfels (Sommerprojekt)(Brauche viiiiel Hilfe)
(21.07.2013)Truncatus schrieb:  Was ich also am Überlegen bin ist, wie man nun Figuren erstellt, in die Datenbank kloppt, aus der Datenbank bekommt, um sie zu benutzen. Dann, wie man die Figuren auf das Canvas-Spielbrett bekommt, wie man die BP abfragen und demnach die Laufweite erfassen kann, wie man die Daten zweier Figuren ins KS bekommt, ect. Also Schritt für Schritt. Morgen stelle ich nochmal meine aktuellen Skripte hoch und würde dann mal gerne wissen, wer denn bei was weiß, was zu tun ist. Für Ideen, Ergänzungen, ect bin ich gerne offen, nur möchte ich endlich was vorwärts bringen. 2 Wochen sind schon rum und irgendwie steht nur etwas irgendwie, was nichts ist, wie ich finde. Ich möchte endlich mit der Hilfe von Partnern dieses Spiel endlich erstellen.

In der hinsicht musst du definitiv mit mehreren datenbanken arbeiten. Das hier wird ein relativ langer post, also obacht.

Für die Figuren würde ich eine einfache tabelle "Figuren" anlegen. In dieser erhält jede Figur eine einzigartige ID, den Namen, alle grundstats (HP, BP, Atk, Def, etc.) und eine Sprite-ID. Dies wird später relevant wenn du deine figuren voneinander unterscheiden möchtest. Wenn nicht jede figur gleich gewichtet werden soll, brauchst du noch einen Wert, der dann von der maximal möglichen truppenstärke abgerechnet werden soll (sagen wir 1 für fußsoldaten, 2 für berittene und 3 für drachenreiter).

Um die Figuren auf das Spielbrett zu bekommen, musst du innerhalb des Programms eine Klasse für die Figuren anlegen. Diese Klasse enthält Variablen um die werte der Figurentabelle zu übertragen, also ID, Name, Stats, Wert, Sprite-ID, etc. Dazu müssen noch 2 zusätzliche Werte hinzugefügt werden, nämlich die koordinaten x und y, um die Figur auf dem Feld navigieren zu können und zusätzlich ein Wert für das Team. Wird eine Figur gewählt, musst du ein Objekt von dieser Klasse erzeugen und die Werte in die Variablen übertragen. Dann wird der Truppenwert der Figur von der Gesamtstärke abgerechnet bis dieser wert auf 0 ist, dann kann mit der plazierung begonnen werden.

Allerdings müssen wir vorher einen blick auf den mapgenerator werfen. Diser erzeugt mit 2 Zufallszahlen zwischen 10 und 40 die Spielfläche. Die Generierung der Truppenstärke muss auf eine fläche von einem minimum von 10*10=100 Feldern bis zu einer Fläche von 40*40=1600 Feldern angepasst werden. Jedes Feld erhält eine Koordinate sodass das feld ganz oben links die koordinate 1,1 hat, das rechts daneben die Koordinate 2,1 usw.

Für die Generation der Felder brauchen wir erneut eine Tabelle, die jedem Typ feld eine ID zuweist, Dazu dann ein Name, ein Boolean ob passerbar oder nicht, die Kosten in BP (0 für unpassierbare felder), eine Sprite-ID und gegebenenfalls ein modifikator für den Tarn- oder Schutzwert der Figuren, wenn sie auf diesem feld stehen (das ist allerdings zukunftsmusik. lass diese werte außer acht, bis alles andere funktioniert).

Zu begin würde ich die Generierung des Spielfelds dem zufall überlassen (sodass einfach willkürlich feld-ids für jedes feld generriert und zugewiesen werden). Später müsste ein Algorythmus entworfen werden, der den Generator dazu zwingt, dass jedes passierbare feld an mindestens ein weiteres angrenzen muss, damit auch die Fußsoldaten das Spielfeld frei navigieren können. Erneut wird für die Felder auch wieder eine klasse benötigt, wo die Werte für jedes Feld gespeichert werden können, darüber hinaus wieder die koordinaten x und y und ein wert, der gegenbenenfalls die darauf stehende figur repräsentiert.

Für die Erfassung der Laufweite ist mein bester vorschlag, dass der cursor auf der figur startet und dann mit jeder bewegung des cursors kontrolliert wird, ob die figur diese position erreichen kann, und in "echtzeit" die bp-kosten berechnet wertden. Allerdings sind zuverlässige Algorythmen für pathfinding relativ schwierig und ich kann dazu jetzt zumindenst nichts auf dem ärmel schütteln.

Bein KS muss zunächst für die Figur, die am zug ist gefragt werden, ob eine Figur von anderen Team in reichweite steht. Dazu werden alle felder innerhalb des Radius abgefragt werden, ob eine figur darauf steht und wenn ja, ob sich die zugehörigkeit mit der der aktuellen figur unterscheidet. Trifft das zu, sollen die Koordinaten vorgemerkt werden, sodass dier spieler im Kampfmodus dann nur zwischen diesen koordinaten wechseln. Alternativ kann der Kampfmodus in den bewegungsmodus integriert werden, sodass, wenn der cursor über ein feld mit einer feindlichen Figur gerät, dass das Spiel automatisch eine abfrage macht, ob die spielfigur den feind erreichen kann und bei Erfolg in den Kampfmodus schaltet.

Wenn es zwischen 2 Figuren zum Kampf kommt, müssen nur die werte der beiden Objekte gegeinander verglichen werden. Wenn eine der beiden Figuren schaden erleidet, kann dieser dann einfach innerhalb des objekts von den HP abgezogen werden und sollte diese auf 0 fallen, wird das objekt gelöscht und die Truppenkosten der Gesamtstärke des Besitzers wieder angerechnet. Wenn diese zurück auf den Ausgangswert fällt, weiß das Spiel dass dieser keine Figuren mehr besitzt und verloren hat.

[Bild: TheSeth-0.png]
Zitieren
#22
27.07.2013
TheBlueBrony Offline
Silly Filly
*


Beiträge: 76
Registriert seit: 14. Jun 2012

Projekt Eisenfels (Sommerprojekt)(Brauche viiiiel Hilfe)
Bin ich zu spät?

Kann sehr gut html, css, php, JavaScript, ajax, MySQL

Wenns noch was zu helfen gibt oder so kann ich helfen...

Skype: TheBlueBrony
kannst mich auch so adden falls du irgendwie Hilfe bei irgendwelchen Programmiersachen brauchst.

[Bild: qr2d42-2.png]
Zitieren
#23
27.07.2013
Truncatus Offline
Wonderbolt
*


Beiträge: 1.367
Registriert seit: 06. Apr 2012

RE: Projekt Eisenfels (Sommerprojekt)(Brauche viiiiel Hilfe)
Brauch ich definitiv.

Was ich brauche, ist das eigentlich Gameplay. Ich weiß zwar, was da sein soll, aber wie man das mit PHP umsetzen kann, weiß ich überhaupt nicht.
Zudem würde ich gerne schonmal einiges in Ajax packen, soweit es möglich ist. Das könnte man also schonmal in der Zwischenzeit machen.



Hier geht es nur um die Verknüpfung der einzelnen Seiten mittels AJAX
Spoiler (Öffnen)


Ich hoffe, du kannst mir da weiterhelfen.^^

Zitieren
#24
28.08.2013
Truncatus Offline
Wonderbolt
*


Beiträge: 1.367
Registriert seit: 06. Apr 2012

RE: Projekt Eisenfels (Sommerprojekt)(Brauche viiiiel Hilfe)
Da bin ich wieder.

Projekt läuft leider net so gut, aber wir haben mehr Zeit bekommen. Wäre also super, wenn wir da noch was geschaukelt bekommen.

Folgende Situation:

Ich möchte nun auf meinem Feld(Canvas) Figuren platzieren und sie durchs Feld marschieren lassen. Mittels eines Kartengenerators kann ich beliebige Karten erzeugen lassen. Man muss halt eben darauf spielen können. Stellt es euch wie ein Schachbrett vor(8X8), wo zwei Armeen an Figuren stehen.

Folgende Ziele:
1.
Wie kann ich Figuren platzieren? Muss kein spezielles Motiv oder ähnliches sein. Lediglich ein Steinchen oder sowas, was man als Figur identifizieren kann.

2.
Ich möchte diese Figur schließlich bewegen. Später kommt auch das Limit an Bewegung hinzu. Wie kann ich sie bewegen. Mein Vorhaben ist es, die Figur auszuwählen und ihr anschließend den Befehl des Bewegens zu geben. Ist wie in einem Strategiespiel. Ich klick auf die Einheit und klicke dorthin, wo sie gehen soll.

3.
In meinem Spiel wird gekämpft. Gegenüberstehende sich feindlich gesinnte Steine sollen sich bekämpfen können. Wie kann ich abfragen, dass ein Steinchen neben einem steht?

Zitieren
#25
31.08.2013
sai Offline
Wonderbolt
*


Beiträge: 1.107
Registriert seit: 15. Apr 2012

RE: Projekt Eisenfels (Sommerprojekt)(Brauche viiiiel Hilfe)
Bei den ersten beiden Punkten kann dir ohne den Code und ohne eine grobe Architektur nicht wirklich weitergeholfen werden

(28.08.2013)Truncatus schrieb:  3.
In meinem Spiel wird gekämpft. Gegenüberstehende sich feindlich gesinnte Steine sollen sich bekämpfen können. Wie kann ich abfragen, dass ein Steinchen neben einem steht?
Figur 1 bei (x1|y1)
Figur 2 bei (x2|y2)

Wenn "daneben stehen" auch diagonal ist:
abs(x1 - x2) <= 1 && abs(y1 - y2) <= 1

anderenfalls:
(abs(x1 - x2) + abs(y1 - y2)) == 1

abs ist der Betrag

[Bild: sai_white.png]
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste