- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
9秒学院-htl5游戏开发入门教程
9秒学院-技术分享
HTML5游戏制作完全指南
简介
你想使用HTML5的Canvas制作一款游戏吗?跟着这个教程,你将立刻上道儿。
阅读该教程需要至少熟悉javascript相关知识。
你可以先玩这款游戏或者直接阅读文章并且下载游戏源码。
?
创建画布
在画任何东西之前,我们必须创建一个画布。因为这是完全指南,并且我们将用到jQuery.
var CANVAS_WIDTH = 480;
var CANVAS_HEIGHT = 320;
var canvasElement = $(canvas width= + CANVAS_WIDTH +
height= + CANVAS_HEIGHT + /canvas);
var canvas = canvasElement.get(0).getContext(2d);
canvasElement.appendTo(body);
?
游戏循环
为了呈现给玩家连贯流畅的游戏动画,我们要频繁地渲染画布来欺骗玩家的眼睛。
var FPS = 30;
setInterval(function() {
update();
draw();
}, 1000/FPS);
现在我们先不管update和draw里面的实现,重要的是我们要知道setInterval()会周期性的执行update和draw
?
Hello world
现在我们已经搭建好了一个循环的架子,我们去修改update和draw方法来写一些文字到屏幕。
function draw() {
canvas.fillStyle = #000; // Set color to black
canvas.fillText(Sup Bro!, 50, 50);
}
专家提醒: 当你稍微更改了一些代码的时候就执行一下程序,这样可以更快的找到程序出错地方。
静止文字正常的显示出来了。因为我们已经有了循环,所以我们可以很容易地让文字动起来~~~
var textX = 50;
var textY = 50;
function update() {
textX += 1;
textY += 1;
}
function draw() {
canvas.fillStyle = #000;
canvas.fillText(Sup Bro!, textX, textY);
}
执行程序。如果你一步一步照着上面做下来,可以看到文字移动。但是上一次的文字却还留在屏幕上,因为我们没有擦除画布。现在我们在draw方法中加入擦除方法。
function draw() {
canvas.clearRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
canvas.fillStyle = #000;
canvas.fillText(Sup Bro!, textX, textY);
}
现在你可以看到文字在屏幕上移动了,它已经算是一个真正意义上的游戏,只不过是个半成品。
?
创建player
创建一个包含player所有信息的对象,并且要有draw方法。这里创建了一个简单的对象包含了所有的player信息。
var player = {
color: #00A,
x: 220,
y: 270,
width: 32,
height: 32,
draw: function() {
canvas.fillStyle = this.color;
canvas.fillRect(this.x, this.y, this.width, this.height);
}
};
我们现在用一个纯色的矩形来代表player.当我们把它加入游戏当中的时候,我们需要清除画布并且画上player.
function draw() {
canvas.clearRect(0, 0, CANVAS_WIDTH, CANVAS_HEIGHT);
player.draw();
}
?
键盘控制
使用jQuery Hotkeys
jQuery Hotkeys plugin在处理键盘行为的时候,可以更加容易的兼容不同的浏览器。让开发者不用因为不同浏览器之间的keyCode?andcharCode不同而苦恼,我们这样绑定事件:
$(document).bind(keydown, left, function() { ... });
移动player
function update() {
if (keydown.left) {
player.x -= 2;
}
if (keydown.right) {
player.x
您可能关注的文档
- 4月管理系统中算机应用真题及答案.doc
- 4月无锡省锡中三数学期中试卷(含答案).doc
- 4月自学考试历题科目代码02972.doc
- 4月概率论与数统计(经管类)试题答案.doc
- 4月无锡新区初数学期中试卷(含答案).doc
- 4月广东省高等育自学考试各专业课程考试时间安排表.doc
- 4月自学考试当中国政治制度试题及答案.doc
- 4月自学考试马思主义基本原理概论试题.doc
- 4月自考《普通理学》各章复习重点.doc
- 4月知尚教育高物理专题九力学实验.doc
- 9月计算机等级试二级C语言笔试试题及答案解析.doc
- 9第九章 知识技能的学习练习题答案.doc
- 9月浙江省通用术高考试卷及答案.doc.doc
- 9第九章_建设国特色社会主义政治.doc
- 9页教师招聘考《教育法规基础》知识点笔记(9页).doc
- 9诗歌鉴赏表达巧之表达方式(抒情)(学生).doc
- A cleanwell-light place.doc
- A briefsummary of American literature.doc
- A Compaative Research on Family Education between China and America.doc
- A frien is a second self.doc
最近下载
- 钍矿石选矿在线检测技术:原理、应用与展望.docx VIP
- 经营企划-经营计划与预算管理课件资料.ppt VIP
- [宜宾]2024年四川宜宾工业职业技术学院(筹)招聘员额制工作人员5人笔试历年参考题库附带答案详解.docx
- 《AI+新媒体运营》全套教学课件.pptx
- 部编版小学语文五年级上册期中复习课件(四单元全).pptx VIP
- 前厅服务员中级理论模拟题379道.doc VIP
- 新媒体营销:营销方式+推广技巧+案例实训(微课版)PPT全套完整教学课件.pptx
- 【部编版】小学五年级语文上册期中复习ppt课件【完整版】.pdf VIP
- 中国居民投资理财行为调研报告(2024年12月)-上海高金&蚂蚁集团.pdf
- 旧设备评估报告模板.docx VIP
原创力文档


文档评论(0)