AKTUALISIERT ANTWORT:
Der wahre Schuldige ist:
KeyboardState Keyboard = new KeyboardState();
Sie können "Keyboard" nicht als Variablennamen verwenden. Es ist eine Klasse von XNA! Sie deklarieren es neu. Daher werden Ihre Tastendrücke nicht mehr erkannt! Verwenden Sie stattdessen:
KeyboardState keyb = Keyboard.GetState();
und aktualisieren Sie Ihre Referenzen
Diese Antwort ist etwas gilt:
Sie Character initialisieren
C = new Character(100, 100, new Position(200, 200));
Aber dann in Ihrem Update() Methode, die Sie tun :
spriteBatch.Draw(myTexture, myVector, Color.White);
Sie ändern den Wert von Pos in der Zeichenklasse ordnungsgemäß, aber dies steht in keinem Zusammenhang mit myTexture. In der Tat, du zeichnest überhaupt nicht "Charakter" auf dem Bildschirm.
TL; DR: Sie verbessern die Klasse "Character", aber Sie zeichnen myTexture. Sie ändern die Koordinaten für das Objekt, das myTexture und nicht für Character enthält.
Außerdem, wenn Sie "Zeichen" auf dem Bildschirm zeichnen möchten, wäre der beste Weg, einfach Vector2D statt Ihrer eigenen Pos-Klasse zu verwenden.
Eine weitere Sache:
In Loadcontent sind Sie
tun
myVector = new Vector2(C.Pos.Col, C.Pos.Row);
Aber die Dokumentation eindeutig fest: /// Loadcontent wird einmal pro Spiel aufgerufen werden und ist der Ort, zu laden /// all deine Inhalte.
Das sollte Ihnen helfen, wie Sie es reparieren. Wenn Sie noch Fragen haben, schreiben Sie einfach einen Kommentar unter meiner Antwort.
Vielen Dank für Ihre Hilfe, es funktioniert jetzt. Ich habe gerade mit XNA angefangen und die Konzepte gelernt. Nochmals vielen Dank. – Novak