snake: Snake Spiel: Bewegung der Schlange mit C++ mit D3D

hallo,

ich weis nicht ob das hier richtige Themenbereich ist aber dieser hat sich für mich am treffendsten gelesen.

Wie das Thema schon sagt geht es um ein Snake-Spiel mit C++ und D3D.

Ich habe es mir nämlich zum Ziel gemacht ein kleines Snake-Spiel nicht mit der Konsole zu realisieren sondern mit D3D im Vollbildmodus (und C++ ;)).

Ich wollte eigentlich nur wissen ob irgendjemand sowas ähnliches schon einmal gemacht hat oder damit Erfahrung hat oder eine Idee für die Lösung meines Problems hat.
Mein Problem ist die Bewegung der Schlange.

Die Schlange soll als Kette von kleinen Sprites dargestellt werden. Ich habe bisher schon einiges Ausprobiert aber bisher noch kein Ergebnis erreicht das meine Erwartungen erfüllt hätte.

Hier ist die Klasse CSnake, die wie der Name schon sagt die Schlange darstellen soll. Die Methode Render() wird bei jedem Durchlauf aufgerufen. Ich weiss nicht ob es notwendig ist oder ob es irgendjemanden was hilft aber ich poste es trotzdem mal.

class CSnake
{
private:
        // Snake-Element-Sprite
        CSprite* Snake;
public:
        // Konstruktor
        CSnake(void)
        {
          Snake = new CSprite("graphic/snake_element.bmp");
        }

// Destruktor
        ~CSnake(void)
        {
          SAFE_DELETE(Snake)
        }

// rendert die Schlange
        void Render(void)
        {
        }

// setzt die werte zurück wenn z.B GameOver -> Neustart
        void Reset(void)
        {
        }
};

Die Schlange soll in 4 Richtungen kriechen und mit A,W,S und D bzw. den Pfeiltasten bewegt werden(abfrage bekomm ich selber hin;))

Dem Kopf sollen alle Schlangenglieder folgen wie bei Snake halt üblich und beim Erreichen eines "Futters" die Schlange länger werden.

Wenn jemand einen Ansatz, Beispielcode, Tutorial o.ä. hat, bitte posten, ich bin um jede Hilfe Dankbar.

  1. Servus Snake!

    Wenn jemand einen Ansatz, Beispielcode, Tutorial o.ä. hat, bitte posten, ich bin um jede Hilfe Dankbar.

    Mit DirectX und der Spieleprogrammierung in C++ habe ich an sich keine Erfahrung, ich habe jedoch ein exzellentes Buch zum Thema, welches mit einer Wahrscheinlichkeit von 100% Deine Frage beantwortet. Habe es bisher nur angelesen, kann jedoch trotzdem behaupten, dass es sehr zielgerichtet und kompetent formuliert ist. Didaktische Künste möchte ich hier nicht bewerten. Der Titel des Buches lautet 3D-Spieleprogrammierung  mit C++ und DirectX (sei dankbar, ich habe Dir sogar das günstigste Angebot dazu im Web gegeben ;~).

    Freundliche Grüße
    Stefano Albrecht

    --
    Sancta Simplicitas!
    1. Danke ist echt nett von dir das du dir diese Mühe gemacht hast aber ich habe bereits ein ähnliches Buch des gleichen Autors und ich wollte eigentlich keine neues Buch nur für ein kleines Snake-spielchen kaufen. Aber trotzde Danke!

      Wenn jemand eine Idee, einen Ansatz, einen konkreten Lösungsvorschlag, ein Tutorial oder mir sonst irgendwie helfen kann => Bitte posten!

  2. Hallo Snake,

    Mein Problem ist die Bewegung der Schlange.

    Die Schlange soll als Kette von kleinen Sprites dargestellt werden. Ich habe bisher schon einiges Ausprobiert aber bisher noch kein Ergebnis erreicht das meine Erwartungen erfüllt hätte.

    Das Spielfeld wird in Quadrate aufgeteilt. Die Schlange besteht aus n Quadraten. Soweit bist du sicher schon.
    Der Algorithmus für die Schlangenbewegung ist nun relativ simpel: Nimm das letzte Element der Schlange und setze es an die erste Stelle (unter Berücksichtigung der aktuell gewählten Richtung). Alle anderen Elemente bleiben unverändert.
    Der Rest sollte trivial sein, die gewählte Programmiersprache ist nebensächlich ;-)

    Gruß
    Mausi

    1. hi,

      Der Algorithmus für die Schlangenbewegung ist nun relativ simpel: Nimm das letzte Element der Schlange und setze es an die erste Stelle (unter Berücksichtigung der aktuell gewählten Richtung). Alle anderen Elemente bleiben unverändert.

      Ja, so simpel ist es aber natürlich nur dann, wenn die Farbe aller Schlangen"elemente" gleich sein soll.

      Hast du eine rot-grün-blau-gelb-rot-grün-blau-gelb-...-rot-grün-blau-gelb-gefärbte Schlange, und würdest dann lediglich das gelbe Element vom Ende vor das rote am Anfang setzen - dann bewegt sich die Schlange, die Farben bleiben aber "stehen" - und damit hast du ein mutiertes Viech geschaffen, dessen Farbstreifen über seinen Körper laufen ...

      gruß,
      wahsaga

      --
      /voodoo.css:
      #GeorgeWBush { position:absolute; bottom:-6ft; }
      1. Hi Wahsaga,

        • dann bewegt sich die Schlange, die Farben bleiben aber "stehen" - und damit hast du ein mutiertes Viech geschaffen, dessen Farbstreifen über seinen Körper laufen ...

        Stimmt, die Einschränkung gibts natürlich. Obwohl das bestimmt ganz witzig aussehen würde. Da würd ich doch sagen "its not a bug its a feature" :-)

        Gruß
        Mausi