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 引擎更感兴趣,它知道如何编译项目以在浏览器中运行它们。

 

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/284174.html

(0)

相关推荐

  • 张依依时尚照片欣赏,创造101女团参加的综艺

    再有几天的时间,由黄子韬、张杰、陈嘉桦、胡彦斌、罗志祥、王一博担纲导师的女团竞演秀《创造101》就要和大家见面了。在首批参演的选手中,张依依的名字引起了小编的注意。 张依依,陌陌平台上的当红播主,粉丝数量超过32万。除了在线上拥有高人气,在线下她也是一名红人。在去年法国的戛纳电影节,她作为陌陌平台的官方代表,登上了红毯仪式。 拥有青春靓丽外形的张依依还是时尚…

    2023-06-03 网络资讯
  • 警花艳照门 警花艳照门事件有何启示

    看起来,美丽是女人的罪过,美丽让男人为之疯狂,但这真的是真的吗?虽然说,美女对男人来说是一件很有诱惑力的事情,但是,对于女人来说,长得漂亮并不是什么大罪,只会成为男人犯错的“挡箭牌”。 在2010年,广东某地,一个名为 C的副市长,在网络论坛上发布了一条关于“灌酒,强|奸女记者”的信息,这条信息在网络上引起了很大的轰动。 陈亚春在1971年被迫停学,从事长期…

    网络资讯 2023-06-03
  • 上qq号,上QQ号需要网证

    《关于“上qq号”的一些思考与探索》 一、为何要上qq号也许在如今这个信息爆炸的时代,上qq号似乎显得有些过时了。但不可否认的是,对于很多人来说,qq号依然是他们与朋友、家人、同学保持联系的重要工具。就好像是在茫茫人海中,qq号就像是一座桥梁,连接着彼此的世界。它能让我们随时了解到对方的动态,分享生活中的喜怒哀乐。我觉得,就像我们每天都要吃饭喝水一样,上qq…

    网络资讯 2025-08-14
  • 怎么关闭端口,怎么关闭端口号占用

    《怎么关闭端口》 在计算机网络领域,端口的关闭是一项重要的操作,它可以帮助我们提高网络安全性、优化网络性能或者解决一些特定的网络问题。然而,对于初学者来说,关闭端口可能并不是一件容易的事情,因为它涉及到一些底层的网络知识和技术。在这篇文章中,我将尝试为大家介绍一些关闭端口的方法和技巧,希望能够对大家有所帮助。 一、什么是端口? 在深入探讨如何关闭端口之前,我…

    2025-08-28
  • adol笔记本,Adol笔记本:最佳选择,超越极限

    在这个科技迅猛发展的时代,时尚生活已颠覆了传统观念。随着信息浪潮和科技的发展,现代人更加追求自由、激情、主张的完全数字娱乐生活,轻薄时尚的外观、强劲的性能、持久的续航的笔记本,让越来越多拥有它的时尚达人在今天这个张扬个性的年代成为众人关注的焦点,这一切的背后都需要强大科技的支撑。 这份强大,来自于英特尔!2017年9月,英特尔发布的第八代低压酷睿处理器i5-…

    网络资讯 2023-05-14
  • 服务器cpu排行,最新CPU性能排名:一览无余

    欢迎来到嘻游联盟,我是悟空,关注我,帮你免费出一套适合你的电脑配置单! 是不是自己想配电脑,可不知道从何配起,应该怎么选,听别人说的天花乱坠,也不知道它到底怎么样,别急,今天,它来了它来了,一个网站解决你的困扰—-快科技CPU天梯图(网址:http://www.mydrivers.com/zhuanti/tianti/cpu/)。 市面主流的CP…

    网络资讯 2023-05-12
  • 绍兴服务器租用,绍兴服务器托管

    《绍兴服务器租用:全面解析与实操建议》 一、绍兴服务器租用的背景与需求 在当今数字化时代,无论是企业还是个人,对于服务器的需求都日益增长。绍兴作为一个经济活跃的地区,各类企业和组织也纷纷开始考虑租用服务器以满足其业务发展的需要。也许你会问,为什么要租用服务器呢?其实,这就好像是为自己的业务搭建了一个专属的“数字家园”,可以更好地存储和管理数据,提供稳定的在线…

    2025-09-19
  • 中国交友中心,中国交友中心:寻找真爱的好去处

    在寻找爱情方面,绝对不要消极等待,应该象对待事业和学业那样,积极地去努力。真爱是靠努力获得的。适合你的人也许也适合其他人,如果自己不去努力争取,好的异性都被抢光了,再找满意的人就难了。所以,在爱情方面,早下手比晚下手要好。 【活动流程】: 一、(18:30-19:30) 爱情转盘:分成小组交友聊天,互换交友卡,看哪位异性最适合你。(深入了解) 我们尽可能的让…

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

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

    2023-06-05
  • 西门子吸油烟机,西门子吸油烟机:最佳选择把油烟吸走

    在吸油烟机的选购上,很多人都会有以后有很大的疑惑,究竟按照我们中国家庭的烹饪习惯,究竟买哪一个类型的会比较好,侧吸?顶吸?还是传统的中式会比较好?对于这个问题,其实没有什么标准的答案,你说中国烹饪习惯油烟会多,可能中式会比较好,但是假如这时候的对手是拥有强大吸力的侧吸或者是顶吸呢?正因为如此,我们在选购的时候更应该关注的是抽油烟机的吸力而不是样式,所以接下来…

    网络资讯 2023-05-22
  • 格拉内罗与西班牙人提前解约的原因,什么是格拉内罗

    在球场上挥洒汗水的同时,不少球员也在商业领域取得了成功,比如说曾效力于阿森纳与AC米兰的弗拉米尼,比如说巴萨中卫皮克,又比如说曾效力于皇马,上个月刚离开西班牙人的武磊原队友格拉内罗。格拉内罗出生于1987年7月2日,要到今年夏天才会度过自己的33岁生日,对一位中场球员来说这个年龄并不算太老,但在今冬转会市场上,格拉内罗与西班牙人提前解约,然后自由转会加盟了身…

    2023-06-05
  • nokia 610,Nokia610照片传输

    《关于nokia610的深度探讨》 一、外观设计 nokia610的外观设计可能是它给人留下深刻印象的第一个方面。我觉得它的整体造型比较简洁大方,线条流畅,没有过多繁琐的装饰。机身的弧度设计,拿在手中感觉还不错,贴合手掌的曲线,也许能让长时间握持的舒适度有所提升。它的颜色选择虽然不算特别丰富,但那种经典的配色,比如黑色和白色,给人一种沉稳而又不失时尚的感觉。…

    2025-10-31