Flash游戏开发实战(一)

Flash as3.0游戏开发之《植物大战僵尸》-游戏实现原理及地图实现(一) - 第1张  | 游戏开发网-最好的游戏编程开发技术网站!

我不得不承认,我不是植物大战僵尸的骨灰玩家,所以,如果你发现这个系列的教程有什么地方错误的,请告诉我。

定义游戏的主要结构

植物大战僵给了我们很好的视觉和感觉上的享受。你得保护你的房子以免被吃脑的僵尸入侵,这相当的吸引人。总的来说,杀死僵尸是很有趣的。但是这视觉上的东西和游戏玩法无关,我们可以用屠夫大战管子工,鸽子大战骆驼,圆形大战方块来代替。

在这个系列的教程中,我们用圆形来代替植物,用方块来代替僵尸,伟大的圆形将会阻止邪恶的方块进入我们的基地。游戏区域可以被简化为一个区块游戏。

设想一下这种局面:
Flash as3.0游戏开发之《植物大战僵尸》-游戏实现原理及地图实现(一) - 第2张  | 游戏开发网-最好的游戏编程开发技术网站!

然后尽量把它想象成这样:
Flash as3.0游戏开发之《植物大战僵尸》-游戏实现原理及地图实现(一) - 第3张  | 游戏开发网-最好的游戏编程开发技术网站!

我们所拥有的是一个位于(2,2)的植物,它会尽力阻止走在第二行(从第0行开始,下同)的僵尸,并且另一个僵尸正在沿着第三行接近我们的基地,还有一个正从第四列落下的阳光。不可能有另外一个植物位于(2,2),并且不可能出现一个僵尸走在第二行与第三行之间。

创建游戏区域

正如你在上图看到的那样,这个游戏的区域是一个5行9列的矩阵。因此,第一件要做的事就是定义一个数组。我设想你的fla文件有一个文档类为Main。下面是Main.as的内容:

这样,gameField数组就是一个5*9的矩阵了。

画出游戏区域

下面的代码对于测试来说足够了,至少我们会画出一个游戏区域来。

drawField函数所做的事情都能够在setupField函数里实现,但是我想让他们分离,我得让一个函数只处理一件事。唯一有趣的一行代码是第25行的是在#007D00和#00AE00之间生成随机颜色。

这就是我们的游戏区域了。如果你想要让区块体面点。请。。。自便。

捕获阳光

阳光是植物大战僵尸里的货币。他们从天上掉下来,落到某一区块上。捡起这些阳光,你才能购买植物。

我用到了timer事件使得每五秒落下一束阳光,如果你对timer还不熟悉的话,请搜索。

现在,阳光还不会从天上掉下来,而是直接出现在某一随机的区块中。此时此刻,我还不知道是否两束阳光可以同时落到同一区块中。在这个例子里,他们是可以的,但是如果原版的植物大战僵尸里不允许这样的话,请告诉我。

当一束阳光落到地上的时候,它能够被玩家捡起。一个鼠标事件侦听器处理这整个任务。下面是代码:

下面简要概述一下用到的函数:
drawField:画出游戏区域
fallingSuns:开始制造阳光,使他们坠落
newSun:创建新的阳光
setupField:生成区块数组
sunClicked:当玩家点击阳光时调用
下面是效果:



用鼠标捡起阳光吧。

转载于:https://www.cnblogs.com/delphi2014/p/4077087.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/459924.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何做相册_手机里的照片太多,不得已只能删除?那就试试制作电子相册吧

许多人都喜欢使用手机拍照,这也就导致自己手机相册中保存的照片越来越多,到后面想要再拍照片的话,就不得不删除之前的照片,如何解决这个办法呢?那就试试用【迅捷视频转换器】将其制作成电子相册吧。制作电子相册打开软…

python windows窗口置顶_想用Python编程却不知如何下手?一篇搞定编程准备工作

导读:为了简化Python编程的学习难度,开发过程中的工具、环境尽量使用同一套,此后所有的编程环境都以Windows系统下Python3.8为准,代码编辑器及IDE(集成开发环境)使用VS Code。目的很简单,就是为了让所有的讲解和学习集…

小程序 ajax 加载,小程序实战-小程序网络请求异步加载

最初看到小程序的网络请求的时候,尤其是演示示例中,userInfoReadyCallback这个函数更是一头雾水。其实并不怎么理解.一直很费解.网上各路大侠都有解释,但是就是,不知道是怎么个顺序,而我也是个对程序执行流程很关注的人,现在把我的心得分享给…

华为手机怎么强制关机_华为忘记锁屏密码怎么办?多品牌手机通用解锁密码

手机忘记登陆密码怎么办?下面小编介绍几种方法,轻松解开那些忘记锁屏密码的手机,第一种方法可能大家还知道,但第二种方法肯定没几个人知道。1、手机原地复活这种方法是可以解决锁屏密码的问题,但也一并把手机上所有的数…

HTML5与搜索引擎优化[转载]

原文:http://lusongsong.com/reed/398.html 我觉得HTML5的兴起完全是因为iPhone和iPad,自从Adobe停止开发flash、Android4.0不支持flash后,我觉得在不久的将来HTML5会广泛应用,而且HTML4已经10年没更新了。 HTML5与HTML4代码结构对…

如何让 zend studio 10 识别 Phalcon语法并且进行语法提示

让 zend studio 10 识别 Phalcon语法并且进行语法提示https://github.com/rogerthomas84/PhalconPHPDoc下载解压后,把里面 phalcon 整个目录复制到 workspace 的C:\Documents and Settings\Administrator\Zend\workspaces\DefaultWorkspace\.metadata\.plugins\org.…

包r语言_R语言入门之寻找你的R包

关于寻找目标R包,一般可以在官网利用关键词搜索即可获得相关信息,不过米老鼠在这里想给大家介绍一个特别的R包,它可以帮助你寻找你想要的理想R包。不过,在正式讲解,我想和大家提醒一下安装R包的注意事项: &…

NOI2011 智能车比赛

SPFA。 我们关键是要找到关键点,包括起点,终点,和相邻矩形接触线段的上端点和下端点(如图有红色圈住的点为关键点)。 我们要做的就是在这些关键点之间连边。 我们把这些关键的点拿出来: 其实就是一些竖直的线段。 除了…

ftp服务器上传文件权限设置,ftp服务器 上传文件权限设置

ftp服务器 上传文件权限设置 内容精选换一换华为云对象存储服务帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用对象存储服务。云数据库RDS服务上的MySQL在使用上有一…

悼念512汶川大地震遇难同胞——一定要记住我爱你

Problem Description当抢救人员发现她的时候,她已经死了,是被垮塌下来的房子压死的,透过那一堆废墟的的间隙可以看到她死亡的姿势,双膝跪着,整个上身向前匍匐着,双手扶着地支撑着身体,有些象古人…

获取当前ip_教程丨WIN10系统下设置固定IP或动态IP

无论是电脑、手机或其他一切电子设备,如果需要上网,它就必须有一个IP地址,然后IP地址的获取通常又分为 动态IP(自动获取)或 静态IP(手动设置)两种模式(您所在的网络具体适用哪种模式,请咨询您的网络管理员;目前学校都是…

php实现服务器文件同步,PHPstorm配置同步服务器文件

1、配置服务器一、链接配置服务器打开菜单栏 Tools -> Deployment -> Configurationapp点击 选择 SFTP,并填写相关服务器信息:测试Type:链接类型,这里选择SFTP3dHost:服务器ip地址ormPort:端口&…

oc 实例变量可见度、方法

为什么80%的码农都做不了架构师?>>> ⼀、实例变量可⻅度 public 在类的外部和内部均可访问 protected(默认) 只能在该类和其⼦类内访问 private 只能在该类内访问 ⼆、⽅法(定义、声明、调用&#xff…

使用 js替换网页中的关键词为链接

要求把一段html脚本中的疾病名添加到疾病库的链接&#xff0c;只添加一次&#xff0c;要避开超链接或图片链接。 最初是用的 str.replace(糖尿病, <a href...>糖尿病</a>); 结果找了半天&#xff0c;愣是没找到替换后的效果&#xff0c;原来是有个图片的title中…

凡人修仙传显示无法连接服务器,《凡人修仙传》网络异常及橙色BOSS补偿说明...

【网络异常及橙色BOSS补偿说明】亲爱的玩家朋友&#xff1a;《凡人修仙传》所有服务器由于网络异常在今晚(12月6日晚)陆续出现了延迟与宕机。对广大玩家造成了影响&#xff0c;我们深表歉意&#xff01;网络异常还对部分大区的橙色BOSS造成了影响&#xff0c;导致活动没有顺利进…

白屏优化_今日头条品质优化 图文详情页秒开实践

背景作为一个内容类应用&#xff0c;看新闻读资讯一直是头条用户的核心需求&#xff0c;页面的打开速度直接关系到用户使用头条的核心体验&#xff0c;在头条中&#xff0c;为了更多的承载足够丰富的样式和逻辑下保持多端体验的统一&#xff0c;详情页的内容我们是通过 WebView…

JPA字段长度 Mysql数据库

2019独角兽企业重金招聘Python工程师标准>>> 今天有个表字段超长了&#xff0c;默认是255&#xff0c;当时随手把表结构改成3600。然后晚上回来研究JPA控制的字段长度。 实验一&#xff1a; Column(length50, nullabletrue) private String valueText; 毫无疑问&…

JavaWeb学习----Cookie实现记住密码的功能

【声明】 欢迎转载&#xff0c;但请保留文章原始出处→_→ 生命壹号&#xff1a;http://www.cnblogs.com/smyhvae/ 文章来源&#xff1a;http://www.cnblogs.com/smyhvae/p/4096807.html 【正文】 本文主要内容&#xff1a; •1、什么是Cookie •2、Cookie带来的好处 •3、Co…

【学习笔记】在storyboard中给TabViewController添加tab页面

正题&#xff1a;1、首页动态拖一个UIViewController到storyboard中2、然后右键UITabBarController在木manaul栏右侧的加号连线新的UITabViewController就成功添加完毕转载于:https://blog.51cto.com/3048821/1682420

使用matlab画半透明椭圆

先上最终效果图&#xff1a; 本来是想直接用scatter和alpha来画的&#xff0c;结果在尝试以下代码后&#xff0c;发现无法显示透明效果 scatter(rand(1000,1),rand(1000,1), filled); alpha(0.5) 具体原因可以参考stackoverflow&#xff08;http://stackoverflow.com/questions…