Spielfeld in Felder unterteilen



  • Hallöchen,

    ich hab keine Ahnung wie ich z. B. 10x10 Pixel als 1 Feld Element programmiere. Wie habt Ihr das in eueren Spielen gemacht???

    thx GG 🙂



  • Hi,
    ich denke was du meinst sollte mit Arrays gehen,
    falls du ein einfaches Konsolenprogramm machen willst.
    Ich hab hier glaube ich dazu ein Tutorial,
    ich werds mal für dich suchen.

    cu max



  • Hi,
    sorry ich kann das Tutorial leider nicht mehr finden,
    falls ich´s noch find poste ich nen Link.

    cu max



  • Erstell ein 2Dimensionales Array für dein Feld. Und wenn du jetzt dann auf Feld(5; 4) was zeichnen willst, dann zeichnest du an Pixel(5 * 10; 4 * 10).

    Aber überleg erstmal, ob das mit den Feldern eine gute Lösung ist. Nicht für jede Spielart ist diese Methode geeignet. Was für eine Art Spiel soll das denn werden?



  • @Master_Max: np, trodzdem danke!!

    @Optimizer: So eine Art Strategiespiel



  • Ich glaube es ist besser, wenn du für jede Einheit speicherst, auf welchem Feld sie ist und nicht auf einem Feld speicherst, welche Einheit da drauf ist.

    Also du brauchst vorläufig eigentlich überhaupt kein Array für das Spielfeld. Die Einheiten-Objekte müssen halt ihre eigenen Koordinaten speichern.

    In meinem Spiel bewegen sich die Einheiten völlig frei von Feldern, deshalb hab ich dazu keinen Source. Aber so schwer ist das ja nicht. Viel Glück!



  • Optimizer schrieb:

    Ich glaube es ist besser, wenn du für jede Einheit speicherst, auf welchem Feld sie ist und nicht auf einem Feld speicherst, welche Einheit da drauf ist.

    Also du brauchst vorläufig eigentlich überhaupt kein Array für das Spielfeld. Die Einheiten-Objekte müssen halt ihre eigenen Koordinaten speichern.

    In meinem Spiel bewegen sich die Einheiten völlig frei von Feldern, deshalb hab ich dazu keinen Source. Aber so schwer ist das ja nicht. Viel Glück!

    hmmm.. kannst du mir da ma bitte bitte noch einen kleinen Denkanstoss geben? 😕



  • Aber wenns dann ums Zeichnen geht muss bei jedem Feld erst bei allen Objekten nachgefragt werden "Bist Du auf Feld 1,1 ?
    Bei 100 Objekten dauert das viel zulange und die Framerate sinkt in den Keller,
    also sollten sich alle Objekte in einem Extra Zeichen-Array eintragen, das geht schneller !



  • maty schrieb:

    Aber wenns dann ums Zeichnen geht muss bei jedem Feld erst bei allen Objekten nachgefragt werden "Bist Du auf Feld 1,1 ?
    Bei 100 Objekten dauert das viel zulange und die Framerate sinkt in den Keller,
    also sollten sich alle Objekte in einem Extra Zeichen-Array eintragen, das geht schneller !

    Völliger Kas. 🙂
    Da wird überhaupt nichts gefragt. Wieso sollte ich Fragen, ob ein Objekt auf einem bestimmten Feld ist?

    ZeichenpositionX = Einheit.feldX * 10;
    ZeichenpositionY = Einheit.feldY * 10;



  • versteh nicht was du meinst ...

    also zb. kennt jedes Objekt seine eigene Position die es zur Zeit hat:

    Object[1].position_x = 1;
    Object[1].position_y = 2;

    ...

    Object[100].position_x = 20;
    Object[100].position_y = 26;

    Wenn jetzt alle Felder gezeichnet werden sollen müsste ja bei Feld 1,1 bis zb. Feld 50,50 , bei jedem Feld nachgefragt werden welches Objekt darf ich da zeichnen. Also muß in einer Schleife geschaut werden wer zb. auf feld 10,10 steht.
    Woher soll die DrawSzene-Methode wissen was es zeichnen soll ... ?



  • es muss doch mindestens 25 mal die sec alle Felder neu gezeichnet werden ... denk ich mal ... ?



  • Was haben die Felder mit den Einheiten zu tun? Klar muss die Landschaft zuerst gezeichnet werden. Und nicht für die komplette Karte sondern nur für den sichtbaren Bildausschnitt.
    Und anschließend noch mal die Einheiten drauf rendern. Warum muss beim Zeichnen des Feldes abgefragt werden, ob da eine Einheit draufsteht...



  • nun ich habe eine Methode DrawSzene() die ständig die aktuelle Szene Hintergrund inkl. Sprites für jede Kachel zeichnet, angefangen bei Kachel 1,1 bis 50,50. die schaut einfach in das Zeichenarray und holt sich da die Bildkoordinaten fürs kopieren. (für Spiele in Civ 2 Art).
    Und das geht recht schnell !



  • ach so du zeichnest dann immer nur den Hintergrund und alle Objekte der Reihe nach drüber - mh geht natürlich auch 😉



  • Wie wäre es mit nachdenken?





  • Du kannst von mir aus auch drüber nachdenken, k.A. ob du 'ne Chance hast die Vorteile beider Methoden zu erkennen.



  • Na Dir werde ich in Deinen Gedankenwegen nicht folgen können ;o)

    Ich denke mir aber das wenn ich frage ob Du es erklärst nur sowas kommt wie:

    Denk nach.

    Ich würde gerne verstehen wieso Du die Antworten so gibst wie Du sie gibst. Wenn Dich jemand nach dem Weg fragt, sagst Du dann auch: Lies ne Strassenkarte ?

    Wofür ist Deiner Meinung nach ein Forum da ?

    (und das soll kein Flame sein oder so. Ich will Dich nur verstehen, soweit mir das in meiner kleinen Welt möglich ist )

    Jemanden auf google etc. zu verweise ist gut. Oftmals fehlen aber die Suchbegriffe die einem nicht einfallen. (Gerade wenn man etwas zum ersten mal macht weiß man nicht so recht wonach man suchen muß) Hier wäre es z.B. nett wenn Du mit Deiner erfahrung einen schubs geben kannst nach was man denn suchen kann.

    Wäre doch ein mittelweg in dem den Leuten weitergeholfen wird. (but teaching them research skills by example is teaching them to grow food for a lifetime). Mit Sätzen wie "Denk drüber nach" ist der Punkt aber nicht erfüllt. Da fehlt ein Schubs in die richtige richtung. 🙂



  • Du sollst nicht mir folgen. Die beiden sollten dem jeweils anderen Gedankengang folgen.



  • ja knuddlbaer, geb dir recht.
    Nachdem ich lesen musste wie hier geantwortet wird war mir die Lust hier noch was zu schreiben echt vergangen. Es gibt ja noch andere Foren wo ein anderer umgangston herrscht ... 😞


Anmelden zum Antworten