论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: 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
当前位置 > 文字教程 > Flash AS编程教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

FLASH小游戏开发 第七节

文章类别:Flash AS编程 | 发表日期:2008-10-6 18:14:15


FLASH小游戏开发 第一节    FLASH小游戏开发 第二节      FLASH小游戏开发 第三节  
FLASH小游戏开发 第四节     FLASH小游戏开发 第五节     FLASH小游戏开发 第六节     FLASH小游戏开发 第七节 

先补充个游戏里的结构:

  • _root下有三个空MC: pl,item和xs
  • pl这个空MC是用来attach人物的
  • item这个空MC是用来attach宝物的
  • xs这个MC是用来attach显示得分的

为什么要这么做呢?……因为管理方便呀~以后你会慢慢体会到的。

严重警告:第7课未搞懂看明白者,请回上节反复研究,直至搞懂。不然继续往下看会让你体内真气逆行,任、督二脉自锁,全身犹如蚂蚁咬,饭吃不下,觉睡不着,放P恶臭,对FLASH丧失学习信心……

(……)

好了,能看到这行的,说明你已经是个消化第7节内容的鸟了。
这一节我也话不多说,直接放代码了。用你第7节学到的内容自我检验下。

金币10和50共用的CLASS

class items.Jin extends MovieClip {
    static var basic_speed:Number = 3; //下落基础速度   
    public var score:Number = 10;    //得分
    public var speed:Number;    //下落速度
    private var hit:MovieClip;    //声明碰撞检测的MC
    private var depth:Number;    //当宝物被人物获得,显示得分的MC的深度       
    //---构造函数---
    function Jin() {
        init();
    }
    //隐式设置-获取方法
    public function set _score(kkk:Number):Void {
        score = kkk;
    }//得分10还是50,传入这个参数就能解决
    public function _bspeed(){
        basic_speed= 3;
        trace(basic_speed)
    }//这个要说明下,静态变量basic_speed每实例化一个MC都会自我增加,所以基础速度越来越快。这个方法是让basic_speed变回原始的3。用于每回合开始时初始化使用。
    public function set _speed(sss:Number):Void {
        speed = sss;
    }
    //共有-私有方法   
    private function init() {
        _x = 50+random(450);
        _y = -15;
        speed = basic_speed+random(50)/10;//下落速度是由基础速度+随机增量
        basic_speed+=0.03
        //trace(basic_speed)
        onEnterFrame = Move;
    }
    private function Move() {
        _y += speed;
        if (_y>380) {
            this.removeMovieClip();
        }
        ///////////////////////////////// 
        if (hit.hitTest(_root.pl.player.hit)) {
            getItem();
        }
        ///////////////////////////////// 碰撞检测哦~
    }
    public function getItem() {
        _root.music_control.snd("jin");//声音控制,以后会讲到
        _root.score += score;
        depth = _root.xs.getNextHighestDepth();
        var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);//ATTACH显示得分的MC
        a.aaa.score = "+"+score;
        a._x = _x;
        a._y = _y;
        this.removeMovieClip();
    }
}

然后是两个宝物的CLASS,继承了金币的类,只不过改写了被人物吃到后的效果

爱心

class items.Bao1 extends items.Jin {
    public function getItem() {       
        _root.music_control.snd("bao");
        depth = _root.xs.getNextHighestDepth();
        var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);
        a.aaa.score = "TIME";
        a._x = _x;
        a._y = _y;
        ////////
        _root.time_c._time += 8;
        ///////调时间控制类的public方法,后面会讲到
        this.removeMovieClip();
    }
}

五角星

class items.Bao2 extends items.Jin {
    public var score:Number = 30;
    public function getItem() {
        //_root.score+=score           
        _root.music_control.snd("bao");
        ///////               
        for (var i in _root.item) {
            if (_root.item[i]._name.substr(0, 3) != "bao") {
                _root.item[i].getItem();
            }
        }
        _root.score += score;
        depth = _root.xs.getNextHighestDepth();
        var a:MovieClip = _root.xs.attachMovie("getScore", "getScore"+depth, depth++);
        a.aaa.score = "+"+score;
        a._x = _x;
        a._y = _y;
        ///////
        this.removeMovieClip();
    }
}

宝物这类,和人物类有点相似的。
下节会把时间控制类和分数控制类一起讲掉。大家快把这节的内容消化了吧~

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058