图形不显示在屏幕上

时间:2014-08-08 17:15:48

标签: javascript html5 canvas

我正在尝试用HTML5开发游戏。现在代码应该在网页上显示一个画布,它只是没有这样做。 (我正在关注教程视频)。

以下是HTML的代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>Untitled Document</title>

</head>

<body>
<script src="jquery-1.11.1.min.js" type="text/javascript"></script>
<canvas id="GameCanvas"></canvas>
<script src="game.js" type="text/javascript"></script>

</body>

</html>

以下是game.js的代码:

// JavaScript Document

var canvasWidth = 800;
var canvasHeight = 600;

$('#gameCanvas').attr('width', canvasWidth);
$('#gameCanvas').attr('width', canvasHeight);

var canvas = $('#gameCanvas')[0].getContext('2d');

canvas.strokeRect(0, 0, canvasWidth, canvasHeight);

var image = new Image();
image.src = "ship.png";

canvas.drawImage(image, canvasWidth / 2, canvasHeight / 2);

以下是我正在使用的目录的屏幕截图:

http://prntscr.com/4aucqt

2 个答案:

答案 0 :(得分:0)

<canvas id="GameCanvas"></canvas>

VS

$('#gameCanvas')

您的ID不匹配。

答案 1 :(得分:0)

除了Mikes,还有另外两个问题:

首先:您的HTML文档不是HTML5,请查看您的Doctype

第二:除非您可以在画布上绘制图像,否则图像必须完全加载。只需使用onload回调:

var image = new Image();
image.onload = function(){
    canvas.drawImage(image, canvasWidth / 2, canvasHeight / 2);
}
image.src = "ship.png";