flash游戏编程基础教程 ,flash游戏制作教程及代码

现在是添加玩家和 NPC 的时候了。 为此,您需要编写一个 Car 类。 它将有一个 Move() 方法,玩家可以使用该方法控制他的汽车。 NPC 的移动将通过 Update() 完成,它只是更改 Y 坐标。

class Car{ constructor(image, x, y) { this.x = x; this.y = y; this.image = new Image(); this.image.src = image; } Update() { this.y = speed; } Move(v, d) { if(v == “x”) //X-axis movement { this.x = d; //Offset // if(this.x this.image.width * scale > canvas.width) { this.x -= d; } if(this.x canvas.height) { this.y -= d; } if(this.y < 0) { this.y = 0; } } }}

让我们创建第一个要检查的对象。

var objects = [ new Car(“images/car.png”, 15, 10)]; //An array of game objectsvar player = 0; //the number of the object controlled by the player

现在您需要向 Draw() 函数添加一个用于绘制汽车的命令。

for(var i = 0; i < objects.length; i ){ ctx.drawImage ( objects[i].image, //Render image 0, //Initial X position in the image 0, //Initial Y-axis position in the image objects[i].image.width, //Image width objects[i].image.height, //Image height objects[i].x, //X-axis position on the canvas objects[i].y, //Y-axis position on the canvas objects[i].image.width * scale, //The width of the image on the canvas multiplied by the scale objects[i].image.height * scale //The height of the image on the canvas multiplied by the scale );}

在按下键盘时调用的 KeyDown() 函数中,您需要添加对 Move() 方法的调用。

function KeyDown(e){ switch(e.keyCode) { case 37: //Left objects[player].Move(“x”, -speed); break; case 39: //Right objects[player].Move(“x”, speed); break; case 38: //Up objects[player].Move(“y”, -speed); break; case 40: //Down objects[player].Move(“y”, speed); break; case 27: //Esc if(timer == null) { Start(); } else { Stop(); } break; }}

现在您可以检查渲染和控制。

flash游戏编程基础教程 ,flash游戏制作教程及代码

碰撞时什么都没有发生,但这将在以后修复。 首先,您需要确保删除视图中丢失的对象。 这是为了避免堵塞 RAM。

在 Car 类中,我们添加值为 false 的字段 dead,然后在 Update() 方法中对其进行更改:

if(this.y > canvas.height 50){ this.dead = true;}

现在您需要更改游戏的更新功能,替换与对象关联的代码:

var hasDead = false; for(var i = 0; i < objects.length; i ){ if(i != player) { objects[i].Update(); if(objects[i].dead) { hasDead = true; } }} if(hasDead){ objects.shift();}

如果您不移除物体,当生成太多汽车时,游戏将开始降低计算机速度。

游戏物体碰撞

现在您可以开始实施碰撞。 为此,请为 Car 类编写一个方法 Collide(),它将检查汽车的坐标:

Collide(car){ var hit = false; if(this.y car.y) //If the objects are on the same line horizontally { if(this.x this.image.width * scale > car.x && this.x < car.x car.image.width * scale) //If the objects are on the same line vertically { hit = true; } } return hit;}

现在我们需要在 Update() 函数中添加碰撞检查:

var hit = false; for(var i = 0; i < objects.length; i ){ if(i != player) { hit = objects[player].Collide(objects[i]); if(hit) { alert(“You crashed!”); Stop(); break; } }}

这是游戏中的内容

flash游戏编程基础教程 ,flash游戏制作教程及代码

碰撞时可以添加任何逻辑:

打开动画;

添加效果;;

删除对象;

健康状况的改变,等等。

所有这些都由开发人员自行决定。

结论

这是一个非常简单的游戏,但足以了解 JS 如何处理图形以及一般如何创建游戏。 您可以在 GitHub 存储库中找到图像和完整的游戏代码。

使用画布非常适合处理图形:它提供了很棒的功能并且不会过多地加载浏览器。 我们现在也有一个可用的 WebGL 库(示例和用法),它可以为您提供大量的性能和 3D 工作(canvas 无法做到这一点)。

理解 WebGL 可能很困难——也许相反,许多人对尝试 Unity 引擎更感兴趣,它知道如何编译项目以在浏览器中运行它们。

 

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。

(0)

相关推荐

  • photoshop软件免费下载中文版

    Photoshop简称“PS”,是Adobe Systems开发和发行的图像处理软件,主要处理以像素所构成的数字图像。该软件可分为图像编辑、图像合成、校色调色及功能色效制作部分等,支持Windows操作系统 、Android与Mac OS等。 ps 2022中文版是一款强大的电脑修图必备工具!最新ps 2022与旧版本相比,新增了许多新的功能,其中包含:视觉…

    2023-06-06 网络资讯
  • 世界时间网,世界时间:查询当前时区时间

    宇宙中存在很多神奇而神秘的事物,其中之一就是一些非常特殊的数字。这些数字不仅在自然界中广泛存在,而且在宇宙中的一切物质之间起着关键的作用,决定着宇宙的运行规律和演化轨迹。因此,这些数字不仅仅是数学上的概念,更是宇宙实际运行的基本元素,有着重要的物理和哲学意义。 一个经典的例子是“黄金分割比”,即1:1.618,它是一种神奇的比例,存在于自然界的许多事物中,如…

    网络资讯 2023-05-14
  • 佛祖生日庆典仪式

    #夏日生活打卡季# 明日四月初八“佛诞节”,5大传统习俗,消灾祈福好运连连 农历四月初八“佛诞节”,亦称“浴佛节”,是佛教创始人释迦牟尼的生日。是汉地佛教一年之中最隆重的节日之一,传说此节从求福灭罪的宗教要求传衍而来。 2、壮族圩逢节,牛诞日 四月初八也是露圩壮族圩逢节,是当地壮族人民为祭祀雷神而举行的庙会活动,也是壮族人民为纪念“牛诞日”而举行的一次“感恩…

    网络资讯 2023-06-04
  • lol活动中心,《LOL活动中心:最新活动及优惠折扣信息》

    十周年惊喜!在LOL十周年曝出的活动中,你的商店受到了玩家们的期待,10月18日你的商店活动开启,很多玩家都在问《LOL》2019你的商店活动地址是什么,针对这个问题我已经整理好了相关的资讯,感兴趣就来看看吧。 翻开属于你的皮肤及优惠。十周年庆典之际你的商店再次归来,召唤师们可以在你的商店中获得专属道具折扣,购买到自己心仪的皮肤。 小编也已经去抽奖啦,抽出来…

    网络资讯 2023-05-21
  • 广州侨鑫保利汇景台 什么是广州侨鑫保利汇景台

    侨鑫·保利·汇景台 国际知名设计公司联袂 Martin Kemp Design 2pi r design 汉森伯盛国际设计 CICADA诗加达 Icon Interior Design&Decoration ONE 57 侨鑫·保利·汇景台建筑效果图 汇景台的设计延续了新城景观长廊的理念,创作了包括迎宾水苑、诗艺雅庭、馥花蝶舞、僖水悦庭和森林曲道在…

    网络资讯 2023-06-06
  • 网络骗局揭秘,游戏账号买卖中的网络骗局

    自从清明出去玩了几天之后,回来一直状态不太对,做事情效率实在太低了,之前几乎每天一篇文章安排的满满的,这两天明明坐在电脑旁边,这里点点,那里看看,一晃一天就过去了,几个网站都没有更新,而且生物钟有点颠倒了,晚上2.3点都睡不着,早上睡不醒,起来坐到电脑桌旁边完全没一点精神,整个人的状态差到极点了,慢慢调整吧…   清明跑了深圳一趟,去一…

    2020-04-11
  • 地铁时刻表,查询地铁时刻表:快速简便方法

    各位小伙伴们注意啦!自4月28日起,地铁1、7、8、9、10、13号线共计6条线路,逢周末(周五、周六)实施延时运营,全网首末班车时刻表也随之更新,记得收藏哦~详见↓ 编辑:周梦真 资料:上海发布

    网络资讯 2023-05-13
  • 家用制氧机前十排名,最好的家用制氧机排名清单

    制氧机可快速分离出纯净氧气,大大方便了需要吸氧治疗的人群。家用制氧机可分为中轻度与重度两类使用情况,中轻度一般能满足高原缺氧、老人护理的需求,而针对慢性阻塞性肺病等呼吸系统疾病患者,需要制氧机不间断稳定工作,使用强度更高。 制氧机选什么牌子更可靠呢?可以看看下面这份排行榜。 No.1 综合评分85 亚适 2980.00 查特集团并购CAIRE、SeQual、…

    网络资讯 2023-05-10
  • 桑的部首 ,摘桑葚注意事项

    三月中下旬至四月初,惠风和畅,是摘桑椹的好时节。现在不少地方都是种有桑树,10块钱门票,进入任你吃,要带出来的话10块/斤,这个月初的时候去桑园摘了3斤,感觉太多了,吃不完了,就把它们晒干,晒干后,连3两都不到了,新鲜桑椹的水分实在太多了。 但即使是这样,“葚”字中“甚”,还是很难理解它的意思的,总不可能是“甚至”的意思吧,查《汉字源流字典》P783如下图,…

    2023-06-05
  • 金山卫士wifi共享,金山卫士WiFi快速安全共享方案

    软件适用场景:一台能上网的笔记本或是装了无线网卡的台式机,你自己没有无线路由器,你身旁没有可用的wifi,像出租屋,学校宿舍,没有WIFI的办公场所等;而你的手机,IPAD又需要连接无线WIFI上网。那么你可以用用这个小办法自己创建一个免费的WIFI。免得天天去蹭网了。 这类软件常用的有360免费WIFI,腾讯电脑管家上wifi共享精灵,金山卫士的一键Wi-…

    网络资讯 2023-05-12
  • 赛尔号新手攻略,赛尔号新手必看攻略:如何快速熟悉赛尔号游

    赛尔号是很多玩家们都熟悉的动漫了,当然它也改编成了很多游戏作品,其中有很多都是非常优秀的作品,比如今天小编为大家带来的这款《赛尔号:无限宇宙》就是一款非常不错的作品,它在继承原作的基础上,开放了星球的自由探索与场景互动,解开彩蛋,收获稀有物品、隐藏精灵。此外,玩家还能建造基地、家具及装饰等,畅享DIY乐趣,下面雨落就为大家带来《赛尔号:无限宇宙》的体验分享。…

    网络资讯 2023-05-10
  • csol纹身 应该如何找到最适合自己的CSOL纹身设计

    【百万玩家最喜爱的游戏娱乐媒体,把最带劲的娱乐资讯,最权威的游戏推荐,最齐全的手游礼包放进你的口袋,却不用你多安装一个APP,还等什么?赶紧就关注微信号 【kdyx91】 每日七点不见不散~】 最近有个叫Sunshine的组合以其独特的风格迅速蹿红。因为网友嫌其颜值不够,调侃说“我决定回家洗个头,出道了”!想我CSOL美女众多,很多女角色颜值爆表,是时候组一…

    网络资讯 2023-06-03