Hilfestellungen zu meinem projekt
Übersicht

![]() |
kogBetreff: Hilfestellungen zu meinem projekt |
![]() Antworten mit Zitat ![]() |
---|---|---|
Guten Tag zusammen,
![]() Ich weiss nicht ob jemand schonmal ein ähnliches Problem hatte, wie man erkennt, sind die roten Dots an der Spiegelverkehrten stelle :/ Hat jemand gerade eine Idee so auf den Ersten blick was es sein könnte, oder soll ich Code posten? Suche schon seit Stunden, weil das komische ist, bei manchen Aktionen (Häuser setzen oder hügel anheben stimmen die Koordinaten ... |
||
- Zuletzt bearbeitet von kog am Mi, Jun 06, 2012 11:20, insgesamt 2-mal bearbeitet
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es liegt an der Position des Jupiter in Relation zu den Maisfeldern von Bauer Knolle.
... NATÜRLICH brauchen wir Code, Mann! |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich dachte es wäre ein Grundlegendes Problem und jemand hätte gerade die Zauberlösung ![]() BlitzMax: [AUSKLAPPEN] Type Terrain Drawing: BlitzMax: [AUSKLAPPEN]
mpos ist die Variable mit den Maus Koordinaten auf der Iso Map, ermittelt mit GetPosition(mx+scrollx,my+scrolly) wie gesagt, ich weiss nichtmal wieso es bei manchen Sachen stimmt und bei manchen nicht. Der Code wurde von Java in Bmax umgeschrieben von mir. |
||
![]() |
Chrise |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also jetzt ohne den Code genauer anzusehen sähe das für mich nach einem klassischen Fall von "X mit Y vertauscht" aus. Ich würde mal alle deine Schleifen genau anschauen, ob die Verschachtelung von x und y Schleifen auch immer gleich konstruiert ist.
Sry Bladerunner, ich denke du weißt warum ich mich genau an dieser Stelle entschuldige ![]() Chrise |
||
Llama 1 Llama 2 Llama 3
Vielen Dank an Pummelie, der mir auf seinem Server einen Platz für LlamaNet bietet. |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe gerade nochmal den Code durchgesucht, jedoch auf kein Ergebniss gekommen.
Keine X oder Y Variable die vertauscht ist, bzw. wo ich es nicht sehe .... Kurz vor der verzweiflung .... *Edit* Endlich die entscheidende Stelle: Original Code: [AUSKLAPPEN] public void lift(int nodeCol, int nodeRow) {
if ((nodeCol < 0) || (nodeRow < 0) || (nodeCol >= nodeElevations[0].length) || (nodeRow >= nodeElevations.length)) { // out of range... } else { short height = (short)(nodeElevations[nodeRow][nodeCol] + STD_HEIGHT_DIFFERENCE); if ((isMaxDifference(nodeCol - 1, nodeRow - 1, height)) && (isMaxDifference(nodeCol, nodeRow - 1, height)) && (isMaxDifference(nodeCol + 1, nodeRow - 1, height)) && (isMaxDifference(nodeCol + 1, nodeRow, height)) && (isMaxDifference(nodeCol + 1, nodeRow + 1, height)) && (isMaxDifference(nodeCol, nodeRow + 1, height)) && (isMaxDifference(nodeCol - 1, nodeRow + 1, height)) && (isMaxDifference(nodeCol - 1, nodeRow, height))) { // increase height nodeElevations[nodeRow][nodeCol] += STD_HEIGHT_DIFFERENCE; } } } und ich hatte Code: [AUSKLAPPEN] nodeElevations[nodeCol][nodeRow] += STD_HEIGHT_DIFFERENCE
weil das beim Programmieren logisch war und überall auch, jedcoh begreiffe ich nicht warum es da vertauscht wird ... jedenfalls ist es nun richtig... ![]() |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Sry Bladerunner, ich denke du weißt warum ich mich genau an dieser Stelle entschuldige
NP, es mag ja immer wieder den Fall geben dass man auch ohne tieferen Einblick erkennt woran es liegt - ich hätte ein Vertauschen von Achsen eigentlich ausgeschlossen da ich da eine Rotation erwartet hätte, keine Spiegelung. Zudem ist es im allgemeinen einfach günstiger möglichst umfassend die Problematik zu erläutern, denn darauf zu hoffen dass es jemand sieht und dann denkt: 'Moment, das hatte ich doch auch mal' ist eher selten zielführend. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oke, aufjedenfall funktioniert es so. Jedoch verstehe ich nicht wieso ich (bzw. der Programmierer) es da vertauscht?
Hat jemand für diesen Grund eine Idee? Eine Andere Frage, hat jemand eine Idee, wie man sauber und schön Wasser darstellen könnte? ich dachte, das es vl. bis zur mitte des Tiles kommt bei der Schräge, jedoch krieg ich es beim Zeichen nicht hin, Würdet ihr einfach Tiles machen, welches Wasser und Land beinhaltet? ![]() |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du könntest auch zwei Arten von Tiles machen. Einmal Bodentiles, die wirklich nur für die flache Ebene sind. Darunter fällt auch das Wasser.
Und darauf könntest du die ganzen Hügeltiles legen. Hieße, du hast für jedes Feld zwei Bildinformationen. Es ist leider nie weit fortgeschritten, aber ich hatte es mal so gemacht: https://www.blitzforum.de/foru...+adventure |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann müsste ich also jeweils einen Hügel mit z.b. Wasser und Grass machen oder? | ||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eben nicht, das wollte ich dir ja ersparen.
Mache den Hügel mit tranzparenten Boden. Zeichne also erst den Boden (Wasser oder Wiese oder wasauchimmer), dann den Hügel darüber. |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sooo aktuell einbisschen umgeändert und gebastelt, aber ich denke, es wird so schlussendlich am besten kommen.
![]() --------------- Welchen Algo. würdet ihr für Pathfinding empfehlen? Schaute schon den A*8 an , jedoch ob der für Iso Map optimalsten ist? |
||
![]() |
Nova |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Drehung der Tiles ändert nichts am Wegfindungsalgorithmus. ![]() |
||
AMD Athlon II 4x3,1GHz, 8GB Ram DDR3, ATI Radeon HD 6870, Win 7 64bit |
![]() |
Blitzcraft |
![]() Antworten mit Zitat ![]() |
---|---|---|
Eien Isomap ist eigentlich nichts anderes als eine Tilemap mit Höhe, d.h. A* (meinst du doch oder?) lässt sich verwenden.
Du musst nur angeben welche Tiles nicht begehbar sind, zu welchen in der Isomap auch Klippen u.a. gehören. Am Algorithmus musst du erst etwas ändern wenn du zB Brücken erstellen willst. |
||
Screenshot aus meinem ersten Projekt |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
*Edit*
Erledigt, hatte den richtigen Ansatz, jedoch eine Variable vergessen ![]() Hallo zusammen, ich brauche einen logischen Denkansatz: Ich habe es nun geschafft, das wenn dem männchen beim laufen etwas in den Weg kommt, es mit A* den nächsten freien punkt auf seiner Ziellinie findet... Jedoch gibt mir aktuell den A* Algo eine neue TList. ![]() wie würdest ihr es am besten Lösen die neuen Punkte zur aktuellen Pfadliste hinzuzufügen? mfg |
||
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
![]() Guten tag Zusammen, ich melde mich mal mit einem Problem zurück.. Also ich habe "Zellen" welche die Map sozusagen unterteilt, jedoch muss ich ja um die Männchen zu bewegen die gesamte liste abrattern und Updaten. Jedoch wie man sehen kann wird das bei 2600 Objekten ziemlich zeitaufwendig ... Ich frage mich wie BlueByte das damals auf einer 166mhz CPU zum laufen brachte mit weit über 1000 Siedler. Habt ihr einen Ansatz, wie ihr das lösen würdet? |
||
Windows 7 Home Premium 64bit
CPU: Intel Core i5 3450 Ivy Bridge GPU: HIS HD 4870 1GB GDDR5 RAM: 4x 4GB DDR3-SDRAM Dual Channel |
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die meisten der Siedler damals hatten fest zugewiesene Routen, die man als Spielr wenig bis nicht beeinflussen konnte. Wenn es doch mal mehr Einheiten wurden die man sendete kam der Rechner instant ins Schwitzen.
Ansonsten lass nur eine bestimmte Anzahl Wegfindungen pro zyklus zu und der Rest der Einheiten idled bis er mit berechnen dran war. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
mhh nunja es liegt nicht am Pathfinding ... sondern das ich pro Frame durch die komplette Welt rattere... alle Objekte checken ob Update
Mhhh hab den übeltäter gefunden, es liegt an der Kollisionsüberprüfung mit den Anderen Siedler... obwohl viele faktoren berücksichtigt wird und nur die eigene Zelle gecheckt wird, dauert das durchrattern lange :/ Muss wohl warten bis ich eine alternative gefunden habe ... (Event system?) *edit* eindeutig, Kollisionscheck, ohne ihn könnten locker 6000 Objekte da sein... ![]() *edit* Das Programm zum testen: http://kognetwork.ch/Die%20Erbauer/Client.rar (Windows) mit Rechtsklick setzt man ein Haus. |
||
Windows 7 Home Premium 64bit
CPU: Intel Core i5 3450 Ivy Bridge GPU: HIS HD 4870 1GB GDDR5 RAM: 4x 4GB DDR3-SDRAM Dual Channel |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group