土人系列AS入门教程--实战篇

这次我们要进入实战,我要教你们做一个很简单的游戏,下面的每句代码我都会加上注释,如果你看过上面的教程,我想要全部理解应该不会困难。

现在让我们开始吧。这个游戏是我初学的时候按教程做的一个游戏,所以印象比较深刻。这个游戏叫做蜗牛赛跑,流程是这样的:画面上有若干条赛道,每条赛道上面有一只蜗牛,每只蜗牛爬行的速度不一样。游戏开始了,你要猜猜哪只蜗牛先跑到终点。如果你猜对了,You Win,否则,Game Over。

第1步,我们先设置场景的大小 600*400 px ,运行速度为 48帧/秒 这个是我个人喜好速度。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://zsrimg.ikafan.com/upload/20080214222707158.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>

第2步,我们把默认的层名称改成Bkground,并且画上赛道、起跑线和终点线,我这里是4条赛道。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://zsrimg.ikafan.com/upload/20080214222708623.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>

第3步,新建一个层,层命名成WN_Layer,然后画一个会动的蜗牛放在这个层,F8定义成MC,MC命名成WN_MC。把蜗牛的尾巴放在整个MC的正中间,如果少了这步,蜗牛还没到终点就结束了。然后复制3个一样的蜗牛,在属性栏里面调整一下颜色,使他们看起来有点区别。然后对齐放到各条赛道的起点位置。

第4步,新建一个层,命名成btn , 然后做一个按钮,复制4个分别放在4个蜗牛的旁边。
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://zsrimg.ikafan.com/upload/20080214222709574.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>

第5步,记住蜗牛开始的X轴位置数据,我这里是25,然后把一个蜗牛拖到终点看看它的X轴位置数据多少,然后记下来,为AS做准备。我这里得到的是540。记得把它放回去哦~
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://zsrimg.ikafan.com/upload/20080214222709956.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>

第6步,新建一个层,命名为Actoins,用来写AS的。这个层我们需要4个关键帧。我来讲一下为什么。
我们需要一个帧来准备开始游戏,也就是让玩家猜的帧,是游戏一开始的蜗牛不动的画面。这个就由第1帧来完成了。我们做的4个按钮也就是要让玩家去猜哪只蜗牛会赢。
当游戏开始以后,玩家不能改变数据了,所以在乌龟爬的过程中,按钮层没有内容。
第2个帧我们要让每个蜗牛都爬一次,为什么只让他们爬一次呢?因为时间轴的指针经过这个关键帧的时候,只让帧里面的AS执行一次而已。为了让蜗牛不断地爬,我们需要重复的让时间指针走过这个第2帧,所以我们第3帧的内容就是要让时间指针回到第2帧。
第3帧以后就是显示结果的帧了,那我们新建一个层,命名show ,做第4跟第5两个关键帧,在第4帧放一个胜利的字样,在第5帧放一个失败的字样。
另外在游戏结束后,我们需要一个按钮让玩家再玩一次,所以,按钮层的第 4到5 两个帧需要一个按钮。

布置完以后,整个层的结构如图(还没有任何 AS):
screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.open(this.src);}" alt="" src="http://zsrimg.ikafan.com/upload/20080214222709450.gif" onload="if(this.width>screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" border=0>
现在我们有 4 个对象 : _root.wn1 , _root.wn2 , _root.wn3 , _root.wn4

下面我们一帧一帧来做:

Action 第1帧

CODE:

_root.stop(); //停止时间轴
_root.truewinner = 0;
_root.guesswinner = 0;

后面2句代码定义了两个变量truewinner,guesswinner在_root这条时间轴。变量是用来储存数据的,可以自己定义。这里的truewinner,guesswinner分别表示 哪号蜗牛赢了 和 玩家猜的是哪号 。这里初始化了这两个数据。

Action 第2帧

CODE:

_root.wn1._x += random(10)/10+random(1); //蜗牛1号的X轴数据增加某一数值
_root.wn2._x += random(10)/10+random(1); //蜗牛2号的X轴数据增加某一数值
_root.wn3._x += random(10)/10+random(1); //蜗牛3号的X轴数据增加某一数值
_root.wn4._x += random(10)/10+random(1); //蜗牛4号的X轴数据增加某一数值

看过对象篇,这里理解起来不难吧?
_x 表示对象蜗牛的属性之一:X轴的位置。
+= 表示自加 , 这样理解  a=a+1  和 a+=1 是一样的。表示自加1。
这里有个方法 , random()
这个方法用来获得一个随机的数字,如 random(10) 获得 0-9 中间的任何一个数字。上面的表达式获得一个从 0-1.9 的一个随机数。

Action 第3帧

CODE:

if (_root.wn1._x>540) {
    _root.truewinner = 1;
}
if (_root.wn2._x>540) {
    _root.truewinner = 2;
}
if (_root.wn3._x>540) {
    _root.truewinner = 3;
}
if (_root.wn4._x>540) {
    _root.truewinner = 4;
}
//判断哪只蜗牛到了,到了就改变truewinner的值,纪录哪只蜗牛获胜
if (_root.truewinner != 0) {
    if (_root.guesswinner == _root.truewinner) {
        _root.gotoAndStop(4);
    } else {
        _root.gotoAndStop(5);
    }
} else {
    _root.gotoAndPlay(2);
}
/*--------------------------------------------
判断truewinner的值,如果被改变了,说明已经有蜗牛到了
如果还没有改变,说明蜗牛们还没到。
如果没到,就把_root的指针跳到第2帧,让他们继续跑,如果到了,
判断玩家压的那只和真正到的那只是不是一样。如果猜对了,让时间
指针跳停到第4帧,否则跳停到第5帧。
---------------------------------------------*/

仔细理解一下流程,应该不难

接下来是按钮上的AS:
第1帧的按钮

CODE:

on(release){
_root.play();
_root.guesswinner = 1;
}

第一只蜗牛旁边的按钮上面的as。松开按钮后,指针跳到第2帧,然后纪录变量guesswinner为1(猜第1只)。
其它蜗牛旁边的代码类似,就是纪录变量guesswinner值为相对应的 2、3、4

最后一个按钮,用来重玩的。

CODE:

on(release){
_root.gotoAndStop(1);
_root.wn1._x = 25;//蜗牛1号回起点
_root.wn2._x = 25;
_root.wn3._x = 25;
_root.wn4._x = 25;
}

全部看明白了吧?嗯,看看我做的

(0)

相关推荐

  • 土人系列AS入门教程--实战篇

    这次我们要进入实战,我要教你们做一个很简单的游戏,下面的每句代码我都会加上注释,如果你看过上面的教程,我想要全部理解应该不会困难. 现在让我们开始吧.这个游戏是我初学的时候按教程做的一个游戏,所以印象比较深刻.这个游戏叫做蜗牛赛跑,流程是这样的:画面上有若干条赛道,每条赛道上面有一只蜗牛,每只蜗牛爬行的速度不一样.游戏开始了,你要猜猜哪只蜗牛先跑到终点.如果你猜对了,You Win,否则,Game Over. 第1步,我们先设置场景的大小 600*400 px ,运行速度为 48帧/秒 这个是我

  • 土人系列AS入门教程 -- 对象篇

    虽然AS不是真正的面向对象的编程,但是它也有对象的概念.这个概念贯穿整个AS的始终,所以,对对象的理解,比对语法或者其他的理解更为重要.现在开始吧: 首先,我们来了解一下路径,路径分两种:绝对路径和相对路径.做过html的朋友应该知道这个概念.但这里我还是要详细解释一下,我认为对路径的理解要深入,我初学的时候就是磕在路径上. 在讲路径之前,有必要先讲一下 .语法 : 举例说明,这里要表示房间里的桌子上的一本书,用 .语法这么表示: 房间.桌子.书 如果要再细到书上的页上面的字,很显然 房间.桌子

  • 土人系列AS入门教程--基础篇

    我写的这些教程,目的是希望初学Flash的爱好者们能多动手,少提问.我下面这些教程面象有 Flash(MX) 基础操作知识的读者. AS基础 ----------------------------------- 做过Flash动画的Flash爱好者们都知道,要做好一个Flash动画,AS是必不可少的,即使只是很简单的几句代码也能起到整个Flash画龙点睛的作用.这里我只简单的介绍一下AS的基本常识. 首先我们要了解AS要写在什么地方,什么时候AS会被触发执行. 1.帧: 写在关键帧上面的AS,

  • 土人系列AS入门教程--语法篇

    接下来我要讲的是AS的语法. 首先要让大家明白的是:AS 语法的大小写是敏感的. 如: gotoAndPlay() 正确  gotoAndplay() 错误 . 关键字的拼写必须和语法一致,要做到很容易,因为在Flash的AS面板里面,关键字会有不一样的颜色显示. 很多Flash小鸟们也许要开始埋怨,记不住咋办?我这里有个办法,就是背.不要流下委屈的泪水,俺们都是这么走过来的.多用两次你就记住了. 这里说一下,我们要从开始就养成编程的好习惯,如在每个语句后面都加上分号,有可能的话,尽量给复杂的语

  • ASP.NET Core快速入门之实战篇

    NO1 留言板(mysql的使用) 演示:http://haojima.net 这个功能很简单.就是对数据库的写入和展示.如果在Windows下,相信大家分分钟都可以搞定.而初次接触.net core + mysql可能需要注意些细节. 首先打开vs2017新建一个asp.net core项目(选Web应用程序),然后nuget 导入Microsoft.EntityFrameworkCore.Tools 1.1.1和MySql.Data.EntityFrameworkCore 8.0.8-dmr

  • 灵活实用VBS入门教程应用篇

    上一篇文章我们了解了VBS编程的一些基础知识,要更深入地学习还要学习选择结构和循环结构. 选择结构 选择结构,即是对条件进行判断,然后根据判断的结果,选择执行不同的分支的结构.常见的有IF条件语句和Select Case语句. ●IF条件语句 IF条件语句又有多种具体的形式,如If-Then.If-Then-Else.If-Then-ElseIf.下面分别用例程来说明.用笔记本编写一个如下内容的VBS脚本: dim a,b a=inputbox("输入第一个数字","输入&q

  • Visual Studio ASP.NET Core MVC入门教程第一篇

    ASP.NET Core MVC入门教程第一节课,具体内容如下 1.开始环境 visual studio 2017 社区版或其他版本.安装时勾选"Web和云"组中的"ASP.NET及网页开发"项和"其他工具"组中的".NET Core平台开发"项. 2.创建一个网页应用 (1)在 Visual Studio中, select 文件 >新建 >项目. (2) 在"新项目"对话框中的左面板中,点击&

  • 什么是docker Docker入门教程第一篇

    Docker是个新生的事物,概念类似虚拟化.网上关于Docker入门的东西已经很多了.不过本文探讨了Docker的特点.特性.原理,还介绍了具有中国特色的安装测试过程,另外还谈到了Docker的社区生态和Dockerfile,并使用Dockerfile构建一个nginx环境. 缘起 在几个月前听说Docker,但是一直没有时间去研究,前一段时间趁着azure免费试用,赶紧实验一下,但是卡在了ubuntu基础镜像的下载上(由于国内网络的特殊原因),所以也就搁浅了,这里把经验和体会分享一下. Doc

  • javascript入门教程基础篇

    一. 简介 1. 什么是javascript JavaScript 是网景(Netscape)公司开发的一种基于客户端浏览器.面向(基于)对象.事件驱动式的网页脚本语言. 2. 为什么要使用javascript 表单验证 网页特效 小游戏 Ajax 3.快速入门 在程序中,如果想编写js代码,有两种办法: 1)在html文件中,在一对script标记中,直接编写 <script language='javascript'> document.write('hello'); </scrip

  • Docker安装和基础用法 Docker入门教程第二篇

    本系列文章将介绍Docker的有关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 (4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源 (5)Docker 网络 1. 安装 1.1 在 Ubuntu 14.04 上安装 Docker 前提要求: 内核版本必须是3.10或者以上 依次执行下面的步骤: sudo apt-get update sudo apt

随机推荐