<1>創(chuàng)建實(shí)例背景圖。

<2>添加按鈕和“成績單”。
番茄系統(tǒng)家園 - 免費(fèi)重裝系統(tǒng)!簡單裝系統(tǒng),人人都是裝機(jī)大師!
當(dāng)前位置:首頁>軟件問題 > 詳細(xì)解析抓喜鵲游戲教程

詳細(xì)解析抓喜鵲游戲教程

來源:番茄系統(tǒng)家園瀏覽:時(shí)間:2022-05-25 08:57:18

本例应用了前几章节已经学习的产生随机对象和删除对应随机对象等知识,控制游戏过程中用户移动鼠标指针与创建的随机对象之间是否接触并执行相对应的程序块,显示用户通过移动鼠标指针所扑捉到的喜鹊数量。本实例还创建游戏的结束和重新开始程序,用户可进一步扩展,根据扑捉到的喜鹊数量来设置游戏关卡和游戏级别。通过本例的制作,读者可以掌握对简单基础游戏的创建全过程,停止游戏和重新开始游戏的控制。

本例思路:

创建实例背景图。

添加按钮和“成绩单”。

创建喜鹊动画和手型对象,将其转换为元件类。

编写喜鹊元件扩展类。

编写主程序类,控制游戏开始与结束,显示用户通过移动鼠标指针所扑捉到的喜鹊数量。

随机创建的喜鹊对象与用户鼠标指针接触所执行的控制程序。

停止游戏和重新开始游戏的控制。

实例步骤:

(1)新建一个空白文档,设置舞台大小为650*400,帧频设置为30,绘制游戏背景图或导入一张适合的背景图作为游戏背景,如下图13-1所示。

详细解析抓喜鹊游戏教程

图13-1 实例背景

(2)新建一个图层,创建三个按钮元件,如下图2-所示,并命名“实例名”为“start_btn” 、“help_btn”、“out_btn”,分别间隔放置于舞台右下角,如图13-2所示。

详细解析抓喜鹊游戏教程

图13-2 控制按钮

(3)新建一个图层,创建“成绩单”,如下图13-3所示。创建一个动态文本,添加实例名为“displayGrade_txt”,将用于显示用户通过移动鼠标指针所扑捉到的喜鹊数量。

详细解析抓喜鹊游戏教程

图13-3 缩放和绘制投影

(4)创建一个新影片剪辑并命名为“Fly”,扩展元件类也设为“Fly”。在“Fly”影片剪辑里创建喜鹊飞翔的动画,如下面演示图13-4 所示。

详细解析抓喜鹊游戏教程

(1)

详细解析抓喜鹊游戏教程

(2)

图13-4 喜鹊和手型

(5)再创建一个影片剪辑,命名为“gotgood_mc” ,在该影片剪辑内插放3个关键帧,绘制3个手型,如图1-(1)、(2)所示。再创建一个影片剪辑,命名为“MouseHand”,同时设置扩展元件类也为“MouseHand”,将影片剪辑“gotgood_mc”元件对象放置于此,并命名实例名为“gotgood_mc”,如图13-5所示。

详细解析抓喜鹊游戏教程

(1)

详细解析抓喜鹊游戏教程

(2)

详细解析抓喜鹊游戏教程

(3)

图13-5 手型

(6)下面先编写已经创建的元件扩展类“FLY”,该类接收一个Number类型参数,将其赋值作为该类产生对象的y轴方向上的递减值,如第16行代码所示,通过在构造函数中为其注册ENTER_FRAME事件侦听,使该类对象在被创建时便执行事件侦听器函数enterFrameHandler,也就是所创建的每一只喜鹊都以某一速度(变量speed值)作向上运动。此外,该类还提供两个方法:removeTimerHandler()用于清除事件侦听器函数,这在该类对象被删除时会被调用(删除不必要的事件侦听);另一个方法flySpeed()是取得_speed值。

AS3代码

复制代码

代码如下:

package {

import flash.display.MovieClip;

import flash.utils.Timer;

import flash.events.*;

public class Fly extends MovieClip {

private var _speed:Number;

public function Fly(speed) {

_speed = Math.round(speed);

this.addEventListener(Event.ENTER_FRAME,enterFrameHandler);

}

private function enterFrameHandler(event:Event):void{

this.y -= this._speed;

}

public function removeTimerHandler():void {

this.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);

trace("清除实例事件");

}

public function get flySpeed():Number{

return this._speed;

}

}

}

(7)下面是主程序类的编写,我们在构造函数初始化舞台的宽度和高度,并创建存储所有喜鹊对象的容器,如第22到25行代码所示。在第27到31行代码隐藏系统鼠标并创建“手型”,通过侦听stage对象的MOUSE_MOVE和MOUSE_DOWN事件来控制“手型”的鼠标跟随stageMoveHandler()和状态stageDownHandler()。

AS3代码

复制代码

代码如下:

package {

import flash.display.*;

import flash.events.*;

import flash.utils.Timer;

import flash.text.TextField;

import flash.ui.Mouse;

public class Main extends Sprite {

private var _grade:Number;//得分值

public var displayGrade_txt:TextField;//得分显示

public var start_btn:SimpleButton;//开始按钮

private var stageW:Number;

private var stageH:Number;

private var content_mc:Sprite;//存储所有喜鹊对象的容器

private var hand_mc:MovieClip;//“手型”对象

private var _timer:Timer;

public function Main() {

this.stageW = stage.stageWidth;

this.stageH = stage.stageHeight;

this.content_mc = new Sprite();

addChild(content_mc);

Mouse.hide();

this.hand_mc = new MouseHand();

hand_mc.mouseEnabled = false;

hand_mc.gotgood_mc.mouseEnabled = false;

addChild(hand_mc);

stage.addEventListener(MouseEvent.MOUSE_MOVE, stageMoveHandler);

stage.addEventListener(MouseEvent.MOUSE_DOWN, stageDownHandler);

init();

}

(8)stageMoveHandler()方法是简单的鼠标跟随,stageDownHandler()方法是当用户鼠标点击时播放步骤(5)中的“手型”影片剪辑动画,产生“抓”的动作效果。init()方法中开始初始化该游戏,主要是将displayGrade_txt显示文本的内容设置为0和为开始按钮注册事件侦听器函数。当用户单击start_btn按钮后,便调用startGame()方法,此时,将结束游戏按钮out_btn设置为可见,并注册事件侦听器函数,如第59、60行代码所示。然后通过创建Timer类对象实例进行计时,每隔500毫秒执行一次copy()侦听器函数,也就是创建一只喜鹊对象,如第62到64行代码所示。第65行将start_btn按钮设置为不可见。

提示:关于计时器Timer类:Timer(delay:Number, repeatCount:int = 0)

参数 delay:Number — 计时器事件间的延迟(以毫秒为单位)。

repeatCount:int (default = 0) — 指定重复次数。 如果为 0,则计时器重复无限次数。 如果不为0,则将运行计时器,运行次数为指定的次数,然后停止。

AS3代码

复制代码

代码如下:

private function stageMoveHandler(e:MouseEvent):void {

this.hand_mc.x = stage.mouseX;

this.hand_mc.y = stage.mouseY;

}

private function stageDownHandler(event:MouseEvent):void {

hand_mc.gotgood_mc.gotoAndPlay(2);

}

private function init():void{

_grade = 0;

displayGrade_txt.text = "0";

start_btn.addEventListener(MouseEvent.CLICK,startGame);

}

private function startGame(event:MouseEvent):void {

trace("开始游戏!");

out_btn.visible = true;

out_btn.addEventListener(MouseEvent.CLICK,outGame);

_timer =new Timer(500,0);

_timer.addEventListener(TimerEvent.TIMER,copy);

_timer.start();

start_btn.visible =false;

}

(9)copy()侦听器函数中,创建“喜鹊”对象,设置1到11之间的随机数作为其随机速度值,如第70行代码所示。统一设置其y坐标为舞台底部位置,x坐标为随机舞台宽度值,如第71、72行代码所示。将创建的“喜鹊”对象统一添加到content_mc容器中,并注册ROLL_OVER和ENTER_FRAME事件侦听。当用户移动鼠标指针经过“喜鹊”对象时,便会调用downHandler()侦听器函数,清除其事件侦听和清除该对象本身,如第81到85行代码所示,同时也调用refreshGrade()方法累加计算用户抓到的“喜鹊”数量。removeDrop()函数只是判断“喜鹊”对象是否运动到舞台顶部,当运动到舞台顶部时,清除“喜鹊”对象的事件侦听和其本身,如第95到100行代码所示。

AS3代码

复制代码

代码如下:

private function copy(event:TimerEvent) {

var mc = new Fly(Math.random() * 10 + 1);

mc.x = Math.random() * this.stageW;

mc.y = this.stageH;

content_mc.addChild(mc);

mc.addEventListener(MouseEvent.ROLL_OVER, downHandler);

mc.addEventListener(Event.ENTER_FRAME, removeDrop);

}

private function downHandler(event:MouseEvent) {

var mc = event.target;

mc.removeTimerHandler();

mc.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler);

mc.removeEventListener(Event.ENTER_FRAME, removeDrop);

content_mc.removeChild(mc);

//refreshGrade(mc.flySpeed);//还可以通过扩展refreshGrade方法,按不同速度得分

refreshGrade();//按数量

}

private function removeDrop(event:Event) {

var _mc:MovieClip = event.target as MovieClip;

if (_mc.y

_mc.removeTimerHandler();

_mc.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler);

_mc.removeEventListener(Event.ENTER_FRAME, removeDrop);

content_mc.removeChild(_mc);

}

}

public function refreshGrade(grade:Number = 1):void {

this._grade += grade;

displayGrade_txt.text = this._grade.toString();

}

(10)下面代码是对结束游戏的控制和重新开始初始化游戏。当用户单击“结束游戏”按钮便调用该方法,停止_timer对象的计时,将“开始游戏”按钮显示出来同时隐藏“结束游戏”按钮,如下面第111到113行代码所示。然后清除容器中的所有子项侦听和子项,如第116到124行代码所示,再重新调用init()方法。

AS3代码

复制代码

代码如下:

private function outGame(event:MouseEvent):void{

_timer.stop();

start_btn.visible = true;

out_btn.visible = false;

//下面清除容器中的所有子项侦听和子项

var num:uint = content_mc.numChildren;

var _mc:MovieClip;

for (var i:int = 0; i

_mc = content_mc.getChildAt(0) as MovieClip;

_mc.removeEventListener(MouseEvent.MOUSE_DOWN, downHandler);

_mc.removeEventListener(Event.ENTER_FRAME, removeDrop);

content_mc.removeChild(_mc);

}

init();

}

}

}

以上教程就是解析Flash CS4抓喜鹊游戏的知识,希望大家都能学到这样的基础知识。谢谢大家观看。

推薦系統(tǒng)

  • 雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載

    雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載64位
    系統(tǒng)大?。?/em>0MB系統(tǒng)類型:WinXP

    雨林木風(fēng)在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)知名品牌,雨林木風(fēng)WindowsXP其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,是一款穩(wěn)定流暢的系統(tǒng),雨林木風(fēng) winxp下載 純凈版 永久激活 winxp ghost系統(tǒng) sp3 系統(tǒng)下載,有需要的朋友速度下載吧。

    系統(tǒng)等級(jí):
    進(jìn)入下載 >
  • 蘿卜家園win7純凈版 ghost系統(tǒng)下載 x64 聯(lián)想電腦專用

    蘿卜家園win7純凈版 ghost系統(tǒng)下載 x64 聯(lián)想電腦專用64位
    系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win7

    蘿卜家園win7純凈版是款非常純凈的win7系統(tǒng),此版本優(yōu)化更新了大量的驅(qū)動(dòng),幫助用戶們進(jìn)行舒適的使用,更加的適合家庭辦公的使用,方便用戶,有需要的用戶們快來下載安裝吧。

    系統(tǒng)等級(jí):
    進(jìn)入下載 >
  • 雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載

    雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載64位
    系統(tǒng)大小:1.01GB系統(tǒng)類型:WinXP

    雨林木風(fēng)xp系統(tǒng) xp系統(tǒng)純凈版 winXP ghost xp sp3 純凈版系統(tǒng)下載,雨林木風(fēng)WinXP系統(tǒng)技術(shù)積累雄厚深耕多年,采用了新的系統(tǒng)功能和硬件驅(qū)動(dòng),可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動(dòng)對(duì)硬件的加速,加固了系統(tǒng)安全策略,運(yùn)行環(huán)境安全可靠穩(wěn)定。

    系統(tǒng)等級(jí):
    進(jìn)入下載 >
  • 蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統(tǒng)下載

    蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 V2023 X64位系統(tǒng)下載64位
    系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10

    蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,(win10企業(yè)版,win10 ghost,win10鏡像),蘿卜家園win10企業(yè)版 免激活密鑰 激活工具 ghost鏡像 X64位系統(tǒng)下載,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園

    系統(tǒng)等級(jí):
    進(jìn)入下載 >
  • 蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 V2023 X64位系統(tǒng)下載

    蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 V2023 X64位系統(tǒng)下載64位
    系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win10

    蘿卜家園windows10游戲版 win10游戲?qū)I(yè)版 ghost X64位 系統(tǒng)下載,蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,打造了國內(nèi)重裝系統(tǒng)行業(yè)的蘿卜家園品牌,其系統(tǒng)口碑得到許多人認(rèn)可,積累了廣大的用戶群體,蘿卜家園win10純凈版是一款穩(wěn)定流暢的系統(tǒng),一直以來都以用戶為中心,是由蘿卜家園win10團(tuán)隊(duì)推出的蘿卜家園win10國內(nèi)鏡像版,基于國內(nèi)用戶的習(xí)慣,做

    系統(tǒng)等級(jí):
    進(jìn)入下載 >
  • windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網(wǎng)下載

    windows11下載 蘿卜家園win11專業(yè)版 X64位 V2023官網(wǎng)下載64位
    系統(tǒng)大?。?/em>0MB系統(tǒng)類型:Win11

    蘿卜家園在系統(tǒng)方面技術(shù)積累雄厚深耕多年,windows11下載 蘿卜家園win11專業(yè)版 X64位 官網(wǎng)正式版可以更好的發(fā)揮系統(tǒng)的性能,優(yōu)化了系統(tǒng)、驅(qū)動(dòng)對(duì)硬件的加速,使得軟件在WINDOWS11系統(tǒng)中運(yùn)行得更加流暢,加固了系統(tǒng)安全策略,WINDOWS11系統(tǒng)在家用辦公上跑分表現(xiàn)都是非常優(yōu)秀,完美的兼容各種硬件和軟件,運(yùn)行環(huán)境安全可靠穩(wěn)定。

    系統(tǒng)等級(jí):
    進(jìn)入下載 >

熱門系統(tǒng)