图形不显示在屏幕上

Graphics not displaying on screen

本文关键字:屏幕 显示 图形      更新时间:2023-09-26

我正在尝试开发一款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

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

$('#gameCanvas')

你的id不匹配

除了mike的回答,还有另外两个问题:

首先:你的HTML文档不是HTML5,看看你的Doctype

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

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