[加入收藏]
[
教程购买
]
[服务指南]
首页
|
办公自动化
|
网页制作
|
平面设计
|
动画制作
|
数据库开发
|
程序设计
|
全部视频教程
应用视频:
Windows
|
Word2007
|
Excel2007
|
PowerPoint2007
|
Dreamweaver 8
|
Fireworks 8
|
Flash 8
|
Photoshop cs
|
CorelDraw 12
编程视频:
C语言视频教程
|
HTML
|
Div+Css布局
|
Javascript
|
Access数据库
|
Asp
|
Sql Server数据库
|
Asp.net
|
Flash AS
编程视频:
C语言视频教程
|
HTML
|
Div+Css布局
|
Javascript
|
Access数据库
|
Asp
|
Sql Server数据库
|
Asp.net2.0
|
Flash AS
应用视频:
Windows
|
Word2007
|
Excel2007
|
PowerPoint2007
|
Dreamweaver 8
|
Fireworks 8
|
Flash 8
|
Photoshop cs
|
CorelDraw 12
文字教程:
Windows教程
|
Word教程
|
Excel教程
|
PowerPoint教程
视频教程
:
Windows视频教程
|
Word2007视频教程
|
Excel2007视频教程
|
PPT2007视频教程
文字教程:
Dreamweaver教程
|
Fireworks教程
|
Flash教程
|
PhotoShop教程
|
HTML教程
|
Div+Css布局教程
视频教程:
Dreamweaver视频教程
|
Fireworks视频教程
|
Flash视频教程
|
PhotoShop视频教程
|
HTML视频教程
|
DIV+CSS视频教程
文字教程:
Fireworks教程
|
PhotoShop教程
|
CorelDraw教程
视频教程:
Fireworks 8视频教程
|
PhotoShop CS视频教程
|
CorelDraw12视频教程
文字教程:
Flash教程
|
Flash AS脚本教程
视频教程:
Flash 8视频教程
|
Flash AS视频教程
文字教程:
Access教程
|
sql server教程
视频教程:
Access数据库视频教程
|
Sql Server2005数据库视频教程
文字教程:
C语言教程
|
Javascript教程
|
Asp教程
|
Asp.Net网站开发教程
视频教程:
C语言视频教程
|
JavaScript视频教程
|
ASP视频教程
|
ASP.NET视频教程
|
网站制作视频教程
|
ASP动态网站制作视频教程
当前位置 >
文字教程
>
Flash教程
Tag:
flash cs
,
flash 8
,
鼠绘
,
as
,
手绘
,
工具
,
文字
,
loading
,
入门
,
初学
,
mc
,
影片剪辑
,
声音
,
mtv
,
游戏
,
引导
,
遮罩
,
菜单
,
补间
,
广告条
,
时钟
,
视频教程
面向对象法制作贪吃蛇小游戏
文章类别:
Flash
| 发表日期:2008-9-21 15:10:56
这不能算是一个教程,只是我
学习
oop
过程中的一个总结,有不对的地方,还请各位大侠多多指正!
/UploadTeach/200808/20080804171937484.swf
一、
面向过程的编程
假如你以前做过贪吃蛇,可以跳过这一节,直接看
oop
的写法。
起初的想法是:在库里有
3
个
MC
,分别是
head
(蛇头),
body
(蛇关节),
wall
(墙)。
游戏
开始时:先载入一个
head
,然后有一个从
1
到
snakeLength
的
for
循环,载入
snakeLength
个
body
,分别命名为
body1
,
body2…”body”+snakeLength
,另外还要载入一圈围墙
wall
,
wall
的个数要视舞台的长宽而定了。
游戏进行时:
head
的移动通过单位改变它的坐标就可以了,这个单位也就是单位位移,即
head
的长宽,
body
的移动,可以设两个值,
oldX
,
oldY
,来记录上一个位置的坐标,作为下一个
body
的目标坐标,也就是,
head
走一步,
body1
走到
head
的
old
坐标,
body2
走到
body1
的
old
坐标
…
依此类推。蛇的移动,我们用
setInterval
来实现,因为我们可以用第二个参数来改变设的移动速度,也就可以做到
level
越高,速度越快,以增加游戏的难度。
这是一个很好的想法,可是在动手作的过程中,问题就暴露出来了。蛇头吃到墙和
body
应该是
game
Over
的,应该怎么实现呢?你可能会想到
hitTest
,好的,我们来设想一下,假设蛇头为长宽均为
20
个像素的正方形,舞台为
400*400
,那么一圈围墙将会有
20+20+18+18=76
个
wall
,再有
10
个
body
,那么蛇头没走一步,要进行这样的碰撞检测。首先是一个
10
次的循环
hitTest
(
”body”+i
);然后是
26
次循环
hitTest
(
”wall”+i
);这仅仅是只有一圈围墙的空白围墙,假如再加上一些障碍墙呢?那么很轻易就能有
100
次以上的循环
hitTest
,对于现在的计算机来说,应该算不了什么,的是你怎么给他们命名呢?
for
循环
”wall”+i
?障碍物呢?障碍物的位置坐标怎么记录?另外还有一个很重要的东西,
food
,贪吃蛇嘛,肯定要有东西吃,检测碰撞后,我们要判定碰到的是什么,假如是
food
应该怎么加分,碰到
wall
后怎么
gameOver
?,游戏过关怎么更换地图?当想到这些问题的时候,你会发现,自己的代码写的乱七八糟,当你试着修改的时候,可能是牵一发而动全身。
面对这些问题,我们选择了面向对象的编程,即
OOP
。
二、
面向对象的编程
面向对象的编程就是将
head
,
body
,
map
写到单独的类文件里。
我们在实例化这些类的时候,就产生了对象,
Movieclip
就是一个类,当我们新建一个
mc
的时候,就是新建了一个对象,它有自己的属性和方法
…
闲话说多了,谈游戏。
第一步:我们不考虑怎么让
head
走,而是想怎么生成一个地图,贪吃蛇是一个区块游戏,所以我们把地图方到外部的文件的二维数组里,方便维护和修改,根据数组来
attach
库里的
tile
,这个数组里不同的
flag
值,代表不同的东西,比如:
0
代表空,
1
代表
head
,
2
代表
body
,
3
代表
food
,
4
代表
wall
。而库里的
tile
里,不同帧里有不同的东西,我们只要根据
flag
跳到相应的帧里就可以了,然后执行相关的加分,
gameOver
等操作,当蛇移动的时候,我们只需要修改目标坐标的
flag
值就可以了。
首先、新建地图,我们用一个
Map
类来完成,它应该有这样的功能:
1
根据
mymap
数组新建地图,
createMap(mymap);
2
建立地图的过程中,应该能根据
flag
是
tile
跳到相应的帧,
setObj
(
flag
);
3
当蛇吃到
food
后,能随机的生成下一个
food
,
randomFood
();
然后、我们新建一个
Body
类,他的功能如下:
1
跟这上自己的上一节(
father
),往前走,
go
(
father
);
最后、我们新建一个
Head
类,他是
Body
的子类,功能大致如下:
1
自动的往前走,并返回下一目标位置的
flag
,以便游戏根据
flag
进行相应的操作,
goNext
();
2
根据键盘按下的
key
来设置速度
step
,
setStep
(
key
);
到这里,我们需要的类都建好了,下一步,就是在
fla
文件里,将他们连起来了。
第二步:
首先、我们新建一个
map
类,用
map
类的
createMap
方法来新建一个地图。
然后、再新建一个蛇头
head
,接着是一个
body
数组,用来存放蛇关节,数组的每个元素都是一个
body
类。
最后、我们就是用一个
setInterval
,让蛇头和
body
不断的移动,然后,我们就开始游戏了。
附件:
oop贪吃蛇.rar
进入论坛和作者讨论学习:
http://space.flash8.net/bbs/thread-359546-1-1.html
上一篇:
{技巧}键盘控制人物行走的另个做法
人气:2988
下一篇:
{技巧}让 "Flash" 写文件(AS3)
人气:2216
Flash视频教程
Windows操作
[文]
Word教程
[文]
Excel教程
[文]
PowerPoint
[文]
Dreamweaver
[文]
Fireworks
[文]
Flash教程
[文]
PhotoShop
[文]
CorelDraw
[文]
C语言教程
[文]
Html教程
[文]
Div+Css布局
[文]
Javascript
[文]
ACCESS数据库
[文]
ASP教程
[文]
SQLServer
[文]
ASP.NET教程
[文]
FlashAS
[文]
视频教程列表
计算机基础入门及办公自动化:
Windows视频教程
Word视频教程
Excel视频教程
PPT视频教程
网页制作开发视频教程:
Dreamweaver视频教程
Fireworks视频教程
Flash视频教程
Photoshop视频教程
HTML视频教程
Div+Css布局视频教程
静态网站项目实例视频教程
平面广告设计视频教程
Fireworks视频教程
Photoshop视频教程
CorelDraw视频教程
初级程序设计及ASP动态网站开发
C语言视频教程
Javascript视频教程
Access数据库视频教程
Asp网站开发视频教程
Asp项目实例开发视频教程
Asp.net动态网站开发视频教程
Sql Server数据库视频教程
Asp.net视频教程
Flash 动画角本编程视频教程
Flash视频教程
Falsh MTV视频教程
文章教程搜索
输入您的搜索字词
google
本站
提交搜索表单
Flash推荐教程
.给所有ActionScript初学者的建议
.flash站满整个网页且flash总是居
.Flash鼠绘:绘制竹林燕子
.Flash鼠绘:水晶按钮的制作方法
.Flash鼠绘:小鸟的绘制
.Flash鼠绘:卡通风车的绘制
.flash视频教程(21视频教程网)
.用Flash制作一只慧眼
.用Flash制作龙骨(洋葱皮效果)
.狡猾的小球--经典FLASH制作
.Flash鼠标事件:起伏的立体方块群
.震动窗口
.鼠绘动物技术篇
.《心心相印》PS Flash制作贺卡
.圣诞贺卡的制作[FLASH版]
.萤火虫特效
.FLASH简单三步制作飞越星空效果
.Flash 8 AS做滤镜效果的类别整理
.Flash视觉特效之科技之光
.翻页书源文件
.实现一个简单的补间动画及扩展
.Light Factory--激光(视频教程)
.用AS来表达模糊或震动效果
.Flash中利用ActionScript实现动
.雪夜的作法讲解
.FCL组件库-交互特效Interactive
.加载外部文本文件的另类方法!
.2006:火山基础开发习惯总结
.在Flash动画中使字体清楚的三种
.介绍一种作仿3D flash动画的方法
Flash热门教程
.Flash教程:雪景动画制作源码
.Flash教程:飞舞的两只蝴蝶2
.Flash教程:飞舞的两只蝴蝶
.Flash教程:图案文字的制作方法
.Flash教程:一箭穿心的制作技巧
.Flash教程:镂空文字的制作技巧
.Flash教程:红旗飘飘制作方法
.Flash教程:变色花朵的制作技巧
.Flash教程:爆炸文字的制作方法及
.Flash教程:鸡蛋绘制方法及技巧
.Flash教程:雨伞绘制方法及技巧
.Flash教程:枫叶绘制方法及技巧
.Flash教程:小草绘制方法及技巧
.Flash教程:《香烟》制作步骤
.Flash教程:随风摆动的小草制作案
.Flash教程:flash与asp结合应用_
.Flash教程:flash与asp结合应用_
.Flash教程:flash与asp结合应用_
.Flash教程:绘制插画的技巧三
.Flash教程:绘制插画的技巧二
.Flash教程:绘制插画的技巧
.Flash CS6中文版安装及激活的方
.Flash教程:打造鼠标触发的焰火飘
.Flash教程:打造鼠标触发的焰火飘
.Flash教程:Flash AS3学习源代码
.Flash教程:Flash动画如何转成GI
.Flash教程:如何解决Flash画面运
.Flash教程:用Flash CS4文字颜色
.Flash教程:CS6中文版简单安装方
.Flash教程:Flash雪花脚本的编写
Word教程网
Excel教程网
Dreamweaver
教程网
Fireworks教程网
PPT教程网
FLASH教程网
PS教程网
HTML教程网
DIV CSS教程网
FLASH AS教程网
ACCESS教程网
SQL SERVER教程网
C语言教程网
JAVASCRIPT教程网
ASP教程网
ASP.NET教程网
CorelDraw教程网
关于我们
|
教程购买
|
广告刊登
|
网站地图
|
湖北继续教育网
|
QQ:2693987339(点击联系)购买教程光盘
地址:湖北省武汉市曹家湾32号501室 电话:027-86646545 15972130058
--
教程购买问题汇总
21视频教程网专业的网站开发视频教程学习网站
ICP备案号:
鄂ICP备14009716号-13
公安备案号:
42011102002974
看全部视频教程
购买方式/价格
:
咨询客服
tel:
15972130058