html5html5 3d游戏开发教程哪里教的好?

  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.  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 += 2;  }  }  是不是感觉移动不够快?那么我们来提高它的移动速度。  function update() {  if (keydown.left) {  player.x -= 5;  }  if (keydown.right) {  player.x += 5;  }  player.x = player.x.clamp(0, CANVAS_WIDTH - player.width);  }  我们可以很容易的添加其他元素,比如炮弹:  function update() {  if (keydown.space) {  player.shoot();  }  if (keydown.left) {  player.x -= 5;  }  if (keydown.right) {  player.x += 5;  }  player.x = player.x.clamp(0, CANVAS_WIDTH - player.width);  }  player.shoot = function() {  console.log("Pew pew");  // :) Well at least adding the key binding was easy...  };  添加更多游戏元素  炮弹  我们开始真正意义上的添加炮弹,首先,我们需要一个集合来存储它:  var playerBullets = [];  然后,我们需要一个构造器来创建炮弹:  function Bullet(I) {  I.active =  I.xVelocity = 0;  I.yVelocity = -I.  I.width = 3;  I.height = 3;  I.color = "#000";  I.inBounds = function() {  return I.x &= 0 && I.x &= CANVAS_WIDTH &&  I.y &= 0 && I.y &= CANVAS_HEIGHT;  };  I.draw = function() {  canvas.fillStyle = this.  canvas.fillRect(this.x, this.y, this.width, this.height);  };  I.update = function() {  I.x += I.xV  I.y += I.yV  I.active = I.active && I.inBounds();  };  return I;  }  当玩家开火,我们需要向集合中添加炮弹:  player.shoot = function() {  var bulletPosition = this.midpoint();  playerBullets.push(Bullet({  speed: 5,  x: bulletPosition.x,  y: bulletPosition.y  }));  };  player.midpoint = function() {  return {  x: this.x + this.width/2,  y: this.y + this.height/2  };  };  修改update和draw方法,实现开火:  function update() {  ...  playerBullets.forEach(function(bullet) {  bullet.update();  });  playerBullets = playerBullets.filter(function(bullet) {  return bullet.  });  }  function draw() {  ...  playerBullets.forEach(function(bullet) {  bullet.draw();  });  }  敌人  enemies = [];  function Enemy(I) {  I = I || {};  I.active =  I.age = Math.floor(Math.random() * 128);  I.color = "#A2B";  I.x = CANVAS_WIDTH / 4 + Math.random() * CANVAS_WIDTH / 2;  I.y = 0;  I.xVelocity = 0  I.yVelocity = 2;  I.width = 32;  I.height = 32;  I.inBounds = function() {  return I.x &= 0 && I.x &= CANVAS_WIDTH &&  I.y &= 0 && I.y &= CANVAS_HEIGHT;  };  I.draw = function() {  canvas.fillStyle = this.  canvas.fillRect(this.x, this.y, this.width, this.height);  };  I.update = function() {  I.x += I.xV  I.y += I.yV  I.xVelocity = 3 * Math.sin(I.age * Math.PI / 64);  I.age++;  I.active = I.active && I.inBounds();  };  return I;  };  function update() {  ...  enemies.forEach(function(enemy) {  enemy.update();  });  enemies = enemies.filter(function(enemy) {  return enemy.  });  if(Math.random() & 0.1) {  enemies.push(Enemy());  }  };  function draw() {  ...  enemies.forEach(function(enemy) {  enemy.draw();  });  }  使用图片  player.sprite = Sprite("player");  player.draw = function() {  this.sprite.draw(canvas, this.x, this.y);  };  function Enemy(I) {  ...  I.sprite = Sprite("enemy");  I.draw = function() {  this.sprite.draw(canvas, this.x, this.y);  };  ...  }  碰撞检测  function collides(a, b) {  return a.x & b.x + b.width &&  a.x + a.width & b.x &&  a.y & b.y + b.height &&  a.y + a.height & b.y;  }  function handleCollisions() {  playerBullets.forEach(function(bullet) {  enemies.forEach(function(enemy) {  if (collides(bullet, enemy)) {  enemy.explode();  bullet.active =  }  });  });  enemies.forEach(function(enemy) {  if (collides(enemy, player)) {  enemy.explode();  player.explode();  }  });  }  function update() {  ...  handleCollisions();  }  function Enemy(I) {  ...  I.explode = function() {  this.active =  // Extra Credit: Add an explosion graphic  };  return I;  };  player.explode = function() {  this.active =  // Extra Credit: Add an explosion graphic and then end the game  };  加入声音  function Enemy(I) {  ...  I.explode = function() {  this.active =  // Extra Credit: Add an explosion graphic  };  return I;  };  player.explode = function() {  this.active =  // Extra Credit: Add an explosion graphic and then end the game  };
楼主发言:1次 发图:0张
请遵守言论规则,不得违反国家法律法规html5 游戏开发入门 哪个框架比较好_百度知道
html5 游戏开发入门 哪个框架比较好
Construct2、ImpactJS、GameMaker三个是收费的,其中Construct2与GameMaker更像一个游戏开发工具,可以实现不用写一行代码来制作游戏,更适合于没有编程基础的人使用。而ImpactJS作为一个高质量的框架,且易于扩展,虽然是收费的,但是物有所值。开源引擎中,three.js是最火的,但是仅限于开发3D游戏。其次是CreateJS,由Adobe官方赞助且采用Flash类似的API以及模块化开发,是Flash开发者以及将Flash游戏转换成html5不可多得的选择。Turbulenz虽然开源时间比较晚,但颇有后来者居上的趋势,由于其对2D和3D的同时支持,是同时开发2D和3D游戏的最佳选择。LimeJS与Crafty相比的优势在于有一个公司进行维护,相比个人要更稳定,但是需要依赖于Google Closure,也使之成为一个重量级的框架。Crafty体积小、轻量级,更适合于小游戏的开发。Cocos2d-html5作为国产框架的一个优势在于中文文档和教程多,且得到了Google的支持,但相比ImpactJS、CreateJS仍不够成熟。melonJS、Quintus、lycheeJS的开发者和使用者都较少,相关文档和教程也相对少,还有待观察。
其他类似问题
为您推荐:
提问者采纳
根据要做的游戏了解计算机图形学, w3school上有js的在线手册MDN上有html5的教程, cnblogs上能找到几个做html5游戏的博主有些挺好的入门博文要先把js熟悉了, 也可以直接找个好用的框架做, 之后要做游戏可以自己参考着cocos2d之类的框架做, html5的内容不算多一两天就能大致学会了
网络工程师
html5的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁HTML5赚钱经验 教你如何简单坐赚三万美刀_产业_游戏鸟
您的位置:&& >
HTML5赚钱经验 教你如何简单坐赚三万美刀
16:12&&&&&&来源:游戏鸟&&&&&&作者:非好人&&&&&&&&&&&&
现今苹果App Store当中的应用数量可以以海量来形容,最新发布的应用对排行榜的冲击力也越来越小,很明显,其已成为一个饱和市场。一款游戏要想在App Store中冲到美国&免费游戏榜&首位需要日下载超过五万次。
不奇怪,有超过99%的应用的日下载都达不到这个要求。如果能达到这个下载量,一般都是病毒传播和运气的产物。不幸的是,这种事情可遇而不可求。
开发商可以通过一些方法来增加日常安装量:用市场手段为每个安装量而付费。然而,现实是当你为每个安装增加成本时,其ARPU(每用户平均收入)会下降或者不变,而且收购成本与ARPU之间的差距还会逐月增大。
要想管控这种风险,开发商需要有一支非常有经验的营销团队以及大量的资金。但当前的独立开发者在大多数情况下,每个应用程序的月收入连500美元(约3000元人民币)都不到。
当前,开放网络正在从Flash独占桌面环境朝着一个开放、处于上升空间的跨平台HTML5技术所转变。与几十万的原生应用开发商以及数以百万计的应用程序相比,当前只有几百个游戏工作室和小规模社区独立组织在分享HTML5游戏开发的美味蛋糕。
以下为原文翻译:
详细来说,HTML5游戏市场与原生App Store商业模式相比有着若干差异:
与App Store发行商正在为满足玩家对高质量HTML5游戏的需求,而积极找寻和接洽开发商不同的是,像Softgames这个世界上最大的HTML5平台,对休闲游戏有强烈的需求。Softgames平均每个工作日都会发布一款新的跨平台游戏,相比于App Store这种拥有几十万应用的平台,Softgames对开发商开展业务而言实在是一块&风水宝地&。
以休闲游戏为主导的平台能够给开发商带来巨大的收益,开发商只需马上行动,提交简单和精心打造的项目,并不断扩充即可。无需投入大量资源,无需长期投入,HTML5技术可以在一两个月内就设计出一款优秀的游戏。游戏可出售给像Softgames这样的发行商,独家/非独家授权皆可。
独家授权的话,开发商最高可获得多达三万美元的收益。这份收益比大多数独立发行的应用在整个应用生命周期内所产生的收益都要大。
与存在着大量山寨应用,大量原生应用开发商的App Store相比,HTML5游戏市场提供了巨大的市场机遇。Softgames上有超过250款流行大作,并对例如麻将、纸牌或者祖玛类型的游戏有强烈的需求。开发者可快速行动以填补这方面的空白并从中受益,而这些机遇在App Store当中根本不存在。
当前HTML5游戏的主要收入来自应用内广告。而由于低支付聚合支出和一个全球性的支付构架的缺失,&免费加增值&的模式是不存在的。然而,其对于能一次快速开发一款游戏的开发者来说,这一点并不是劣势。开发者可以将游戏出售给开发者,并将精力转移到更佳的作品上面去。这种做法可以让开发者在游戏发布之后,无需冒风险再分配大量资源去做优化,维护和升级游戏。
在开发者投身于HTML5跨平台游戏开发之前,有几件事情需要注意:
1、对初学者而言,要想开发一款能在所有平台都正常运行的HTML5&游戏无疑是一项挑战。&因此,测试、优化和学习是实现&一套代码,多个设备&的关键。下一步对初学者而言可能更加的困难,那就是要在海量的HTML5支持设备上测试你的游戏。例如,不同操作系统,甚至不同的版本运行情况各不相同,你还得进行新功能的性能调试。聚焦于一点,一个一个项目的推进是避免遇到太大困难的正确方法。
2、游戏需要兼容各种不同的控制方式,&你的用户可能通过鼠标、键盘、智能电视遥控器或者他们的iPhone来玩游戏。此外,你的游戏在不同屏幕分辨率下可能会有巨大的差异。在一些分辨率下,有些游戏的显示可能会出问题。你需要进行智能的规划,以避免这些潜在的问题,因为其会使你的游戏遭受失败。
3、通常情况下,HTML5游戏的音频的滞后&是导致浏览器(尤其是移动浏览器)载入时间过长、游戏卡顿,浏览器崩溃的最直接原因。幸运的是,当前已有一些重大的改进,将基本音频支持内置到HTML5游戏内。然而对于原生游戏而言,这个功能还不完善。因此开发者应该使用基本声音库而不是扩展音频,以避开陷阱。
开发者如何从HTML5&中受益
今天对开发者而言有两种商业模式:1、开发者将游戏通过独家或者非独家的方式卖给诸如Softgames这样的发行商;2、从应用内置广告产生的收益中与发行商进行分成。
非独家授权方式的话,开发者可以将游戏多次出售给不同发行商,Softgames购买非独家授权游戏的价格通常在500-5000美元(约万元人民币)之间。可以预见的是,开发者通过一款高质量HTML5游戏在几周内可以产生上万美元(六万人民币)的收益。
HTML5应该被视为原生开发的一种巨大的替代品。与其把冀期望成功给运气,开发者可以有效安排时间和精力给下一款游戏,并通过发行商网站对高质量HTML5休闲游戏的巨大需求而获得收入。
Softgames作为HTML5游戏的先锋,已经有超过十年的移动发行方面的经验,并完全专注HTML5游戏平台已有三年之久。开发者应该早日加入HTML5游戏开发的淘金热行列中来,以免为时已晚。
游戏鸟官方微信
youxiniao(扫我)
每日推送最热最新的
好玩的单机手游
一款以视觉错觉为主题的解谜益智游戏,其核心的玩法与《投影寻真》相似。
育碧旗下的经典动作游戏,本色终究让移动平台的玩家看到了一款最接近原作风格的刺客信条
好玩的网游手游
剑灵正版卡牌手游来了!《战斗吧剑灵》以《剑灵》端游为IP的动作卡牌手游。
一款拥有丰富卡牌和深度策略的休闲竞技游戏,策略变化多样,竞技趣味十足。
游戏库推荐[页面设置&&我的站点&&]
站内搜索:
论坛帖子网站URL
热搜:&&&&&&&&&&&&&&&&&&&&
当前位置: →
→ Html5游戏开发必备
Html5游戏开发必备
  核心提示:无论是游戏从业人员还是玩家,都不会否认Html5游戏已经进入了火热期。相关数据显示,在2014年度中,中国Html5手游用户规模已经达到1.08亿人,预测该数据在2015年度中,将增长至1.59亿人。...
  无论是游戏从业人员还是玩家,都不会否认Html5游戏已经进入了火热期。相关数据显示,在2014年度中,中国Html5手游用户规模已经达到1.08亿人,预测该数据在2015年度中,将增长至1.59亿人。眼下,在各种碎片化的时间里,我们都不难见到身边正有低下头玩Html5的玩家,毫无疑问,Html5游戏已经成为了手游行业的新蓝海。为手游而生的cocos游戏引擎,早在很多年前,就以敏感的行业嗅觉捕捉到了Html5游戏的巨大潜力,开启了Html5分支。经过数年的优化和创新,趋于完美的cocos游戏引擎已经成为了开发者必备的Html5游戏引擎。
  触控cocos游戏引擎
  Html5游戏开发者人手必备的Cocos引擎
  从在Google的赞助下开启Html5分支,把Cocos 2d-x成功移植到Cocos 2d-HTML5版本,到把Cocos 2d-HTML5和Cocos 2d-x JSB融合,推出跨全平台的高性能游戏引擎Cocos 2d-js,再到将Cocos 2d-js已接入到cocos游戏引擎,cocos耗时将近五年,完成了Html5游戏开发一站式解决方案。
  Cocos游戏开发一站式解决方案
  在这个彻底融合了不同平台的工作流和API的cocos游戏引擎中,cocos团队提供了完备的Html5游戏开发工具,以支持开发者完成所有类型的Html5游戏制作。开发者使用cocos游戏引擎,能够获得包括开源引擎、工具链、运行平台,以及渠道接入、测试分析、收付费在内的全方位服务,全新的All in One游戏开发模式清晰流畅,重新定义了无缝工作流,使开发者获得&一次开发,全平台运行&的高效游戏开发体验,简单便捷地完成Html5游戏开发,被赞为&人手必备的Html5游戏引擎&。
  性能优越,关注开发者盈利
  Cocos游戏引擎以以2D骨骼动画和UI布局系统的优质性能为基础,在各个方面都进行了创新和调试,使cocos游戏引擎变得更加实用与高效。对Web引擎渲染器的改造有效提升了游戏质感的流畅程度;针对不同机型和移动浏览器进行升级的屏幕显示和音频适配策略则为开发者省去了调试兼容环节&&
  一直以来,cocos团队的愿景都不仅仅是助力开发者简单高效地完成游戏开发,cocos希望帮助更多的开发者研发出能够赚取千万收入的精品游戏。为此,cocos游戏引擎已达成了与Intel、Facebook等海内外巨头的合作。同时,基于Cocos 2d-js研发的runtime已经展开了与微信、傲游浏览器等超级App和主流浏览器的合作,实现了打通用户、统计、支付、分享等环节的服务方式,切实拓宽了游戏入口,为开发者拓展了Html5游戏的发布渠道,将盈利数额提升至最大化。
上一篇:下一篇:
相关内容延伸阅读5-2901.&
相关草根站长热门阅读
大家好!我是这次访谈的主持人华省省,感谢您参与此次访谈,第一次做访谈很荣幸,能够成功邀请这位草根创业者80后。  80后的工作和互联网没有任何关系,他利用业余的时间创建了日IP稳定在一万多的网站。WordPress的流行不是由Wordpress程序本身决定的,而是由广大的Wordpress开发者和爱好者推出来的。现在建站选择Wordpress,最方便的就是可以在网上找到非常多的优秀的免费Wor随着移动互联网的发展,越来越多的企业和个人已经开始筹划开发自己的移动应用,而原生APP开发成为了大家关注的焦点。那么,什么是原生APP呢?原生APP又称Native App,该开发针对IOS、Andr随着互联网的不断进步和发展,网站建设的扁平化风格也被渐渐推出,从过去的扁平化设计来看,其强调色彩以及极简化,但是这种没有其它修饰元素存在的网站真的能俘获用户的心吗?不完全是,毕竟少了修饰总会有让人觉得在使用织梦建站的时候,有的网站在用户体验或者是优化中需要一个字母地图例如:八度盒子游戏网中有很多游戏,为了方便用户查找游戏,那么就需要一个字母地图来为用户导航。那么如何制作字母地图呢?  下面切入正题许多朋友都想将自己的pc网站转换成手机网站,因为PC网站在手机上浏览起来非常的不方便。今天,邵连虎博客就教大家使用百度siteapp将PC网站转化成手机网站。  第一步,百度搜索百度siteapp,找在上次,我们介绍了博客怎么取消博客首页乱码,并且说了两款wordpress插件,上次已经介绍了BD cache Reloaded fix这款插件,这款插件的工作原理是进行数据库的缓存,减少数据库查询,
你是怎么知道非凡网赚网的?
你所知道的非凡网赚网是做什么的
做任务赚钱
学习网赚知识
赚友互动交流您目前使用的浏览器该进博物馆啦~~~
为了更佳的浏览体验,请使用现代浏览器访问本站
Outdated Browser
您的浏览器已禁用 Javascript,启用它获得更好的体验。
Outdated Browser
这是为桌面用户准备的工具,但您可以安心在这里浏览
46.5% 的互联网用户在使用 此款浏览器
GOOGLE CHROME
支持如下操作系统
16.5% 的互联网用户在使用 此款浏览器
MOZILLA FIREFOX
支持如下操作系统
21.6% 的互联网用户在使用 此款浏览器
INTERNET EXPLORER
支持如下操作系统
10.3% 的互联网用户在使用 此款浏览器
APPLE SAFARI
支持如下操作系统
1.5% 的互联网用户在使用 此款浏览器
支持如下操作系统
冷静 这是为桌面用户提供的不是为手机用户提供的}

我要回帖

更多关于 html5 游戏开发教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信