Javascript und Canvas

ricounltd

Mitglied
Hallo,
ich suche jemanden der sich mit JS und dem neuen HTML5-Tag "canvas" gut auskennt und schon einmal damit gearbeitet hat. Ich komme bei meiner Idee einfach nicht weiter und bitte deshalb hier um Hilfe.

Mein aktueller Code sieht so aus:

HTML:
<!DOCTYPE html>
<html lang="de">
<head>
  <meta charset="utf-8" />
  <title>RPGJS Game</title>
  <link type="text/css" rel="stylesheet" href="rsrc/css/style.css" />
  <script type="text/javascript">
	/** This function is called on page load. */
	function loadRPG() {
      /** Get the canvas element. */
	   rpg = document.getElementById("canvasRPG");
	  
	  /**
	   * Make sure you got it.
	   * If you have it, create a canvas user interface element.
	   */
	  if(rpg.getContext) {
	    /** Specify 2d canvas type. */
		ctx = rpg.getContext("2d");
        
		/** Paint it. */
		ctx.fillStyle = '#222';
        ctx.rect(0,0,rpg.width,rpg.height);
        ctx.fill();
		
        /** Draw character. */
		drawCharacter();
	  }
    };
	
	function drawCharacter() {
      ctx.beginPath();
	  ctx.fillStyle = "#fff";
	  ctx.closePath();
	  ctx.rect(5,5,10,20);
      ctx.fill();
	};
  </script>
</head>
<body onload="loadRPG()">
  <div id="canvasRPG-parent">
    <canvas id="canvasRPG" width="640" height="480"></canvas>
  </div>
</body>
</html>

...wird auch bis jetzt alles super dargestellt, nur weiss ich jetzt nicht, wie ich das ganze zum "laufen" bringe. Ich möchte mit den Pfeiltasten (bzw. Richtungstasten) meine Spielfigur bewegen können.

Danke schonmal im voraus für eure Antworten.

Gruß,
Van
 
Deine Frage hat mit dem Canvas Element gar nichts zu tun. Du brauchst erst mal eine Struktur, in der du deine Figurdaten ablegst (mindestens mal x und y Koordinate). Dein drawCharacter passt du entsprechend an, dass es diese Daten zum Zeichnen nimmt.

Via setInterval (z.B. mit 30ms Verzögerung) oder evtl. auch requestAnimationFrame, das wäre aber komplizierter, erzeugst du jetzt die Animation. Bei jedem Frame änderst du die Position deiner Figur entsprechend der gedrückten Tasten und zeichnest anschließend das gesamte Canvas neu (spätere Verbesserung: Nur den geänderten Bereich neu zeichnen).
 
Hey, danke dir!

...aber frisst das nicht extrem Ressourcen, wenn ich den Canvas immerwieder neu zeichne/bzw. den geänderten Abschnitt oder laufen alle Games so ab?
 

Neue Beiträge

Zurück