用egret制作一款跑酷类游戏(一)

游戏源地址:http://static.egret-labs.org/h5game/62/v20/index.html

本demo素材全是引用该地址的素材。

游戏使用egret引擎制作

关于egret  http://www.egret-labs.org/

动画是基于starlingswf制作的,关于starlingswf http://xyliu.sinaapp.com/?p=1

一.滑动的背景。

创建一个GameMainView.ts文件,游戏的主场景是建立在该类下的。

class GameMainView extends BaseUI {

    private background:Background;

    constructor() {
        super();
    }

    public initUI():void {
        this.background = new Background();
        this.background.setData("fight1Bg");
        this.addChild(this.background);
    }

    public startGame():void {
        egret.Ticker.getInstance().register(this.gameLoop, this);
    }

    private gameLoop(_advancedTime):void {

        var second = _advancedTime / 1000;
        var movePerFrame = second * this.loopSpeed;
        this.background.run(movePerFrame);

    }

}

  在startGame方法里在时间轴里建立游戏循环,每帧都会调用gameLoop方法。

  egret.Ticker.getInstance().register(this.gameLoop, this);这样使得gameLoop方法每帧执行。

  游戏背景会根据每帧的时间以一定速度往下运动。我们可以看到里面引用了一个Background对象,这就是游戏的背景图运动的对象。

  再看一下Background.ts

  

class Background extends GameObject {

    private bmp1:egret.Bitmap;

    private bmp2:egret.Bitmap;

    private bgHeight:number;

    constructor() {
        super();

        this.bmp1 = new egret.Bitmap();
        this.addChild(this.bmp1);

        this.bmp2 = new egret.Bitmap();
        this.addChild(this.bmp2);
    }

    /**
     * 初始化数据
     * @param name
     */
    public setData(name:string):void {
        var texture = RES.getRes(name);
        this.bmp1.texture = texture;
        this.bmp2.texture = texture;

        this.bgHeight = this.bmp1.height;

        this.bmp1.y = 0;
        this.bmp2.y = -this.bgHeight;

    }

    /**
     * 每帧执行
     */
    public run(_moveNum):void {
        if(this.bmp1.y > this.bgHeight) {
            this.bmp1.y = this.bmp2.y - this.bgHeight;
        }

        if(this.bmp2.y > this.bgHeight) {
            this.bmp2.y = this.bmp1.y - this.bgHeight;
        }

        this.bmp1.y += _moveNum;

        this.bmp2.y += _moveNum;
    }
}

今天先到这里。

时间: 2024-08-05 23:14:00

用egret制作一款跑酷类游戏(一)的相关文章

【Unity3D实战】零基础一步一步教你制作跑酷类游戏(填坑完整版)

在两个月前曾写了一篇<[Unity3D实战]零基础一步一步教你制作跑酷类游戏(1)>,里面一步一步演示了制作跑酷类游戏,然而由于时间原因,只写到了让角色往前移动为止.这个坑一直没有时间去填,(虽然也没多少人看啦),今天刚好有时间完成了一个跑酷类游戏的Demo.放上来给有兴趣的朋友看看. Demo源码及对应素材下载:链接:http://pan.baidu.com/s/1i4QkkuD 密码:p04w 游戏简要说明 游戏类型:跑酷类游戏(Demo,非完整游戏) 操作方式:左右方向键(可自己移植到手

如何制作一款HTML5 RPG游戏引擎——第三篇,利用幕布切换场景

开言: 在RPG游戏中,如果有地图切换的地方,通常就会使用幕布效果.所谓的幕布其实就是将两个矩形合拢,直到把屏幕遮住,然后再展开直到两个矩形全部移出屏幕. 为了大家做游戏方便,于是我给这个引擎加了这么一个类. 本系列文章目录: 如何制作一款HTML5 RPG游戏引擎--第一篇,地图类的实现 http://blog.csdn.net/yorhomwang/article/details/8892305 如何制作一款HTML5 RPG游戏引擎--第二篇,烟雨+飞雪效果 http://blog.csd

如何制作一款HTML5 RPG游戏引擎——第四篇,情景对话

今天我们来实现情景对话.这是一个重要的功能,没有它,游戏将变得索然无味.所以我们不得不来完成它. 但是要知道,使用对话可不是一件简单的事,因为它内部的东西很多,比如说人物头像,人物名称,对话内容... 因此我们只能通过数组+JSON来将对话信息装起来,然后根据信息作出不同的显示.接下来我便要向大家展示实现方法. 先看本系列文章目录: 如何制作一款HTML5 RPG游戏引擎--第一篇,地图类的实现 http://blog.csdn.net/yorhomwang/article/details/88

如何制作一款HTML5 RPG游戏引擎——第五篇,人物&amp;人物特效

上一次,我们实现了对话类,今天就来做一个游戏中必不可少的--人物类. 当然,你完全是可以自己写一个人物类,但是为了方便起见,还是决定把人物类封装到这个引擎里. 为了使这个类更有意义,我还给人物类加了几个特效,在以下讲解中会提到. 以下是本系列文章的目录: 如何制作一款HTML5 RPG游戏引擎--第一篇,地图类的实现 http://blog.csdn.net/yorhomwang/article/details/8892305 如何制作一款HTML5 RPG游戏引擎--第二篇,烟雨+飞雪效果 h

谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现

一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是一位英雄.客户端和服务端均使用C#开发,客户端使用Unity3D引擎,数据库使用MySQL.这个MOBA类游戏是笔者在学习时期和客户端美术策划的小伙伴一起做的游戏,笔者主要负责游戏服务端开发,客户端也参与了一部分,同时也是这个项目的发起和负责人.这次主要分享这款游戏的服务端相关的设计与实现,从整体的架构设计,到服务器网络通信底层的搭建,通信协议.模型定制,再到游戏逻辑的分层架构实现.同时这篇博客也沉淀了笔者在游戏公司实践五

如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现

一,话说天下大事 前不久看到lufy的博客上,有一位朋友想要一个RPG游戏引擎,出于兴趣准备动手做一做.由于我研究lufylegend有一段时间了,对它有一定的依赖性,因此就准备将这个引擎基于lufylegend.暂时命名为lufylegendRPG.毕竟基于lufylegend,如果名称中不加上lufylegend这几个字的话,有点说不通啊...最近发布了0.1.0版,但是不理想,连一惯都是鼓励和赞赏我的lufy老先生都是出于真心的表示不满意.想了解0.1.0版的朋友可以看看这里(其实最好别看

卡马克算法(地图重复利用,跑酷类游戏)

----------------------------下面是理论知识-------------------------- 卡马克算法:由约翰·卡马克(John Carmack)开发的一种游戏地图处理方法,被广泛运用到2D卷轴式游戏和手机游戏中.约翰·卡马克:id Software创始人之一,技术总监.享誉世界的著名程序员,以卡马克算法和3D游戏引擎开发而闻名世界,被奉为游戏行业偶像.同时他也是个全面型的技术天才,现在致力于民用航天器开发,是民用航天器开发小组Armadillo Aerospac

制作一款3D炸弹超人游戏

说起炸弹超人,相信很多朋友都玩过类似的游戏,其中最为人熟知的莫过于<泡泡堂>.该类型游戏需要玩家在地图中一边跑动一边放置炸弹,同时还要躲避敌方炸弹保护自己.最初的炸弹超人游戏都是2D的,今天这篇文章将教大家在Unity中实现一款3D的炸弹超人游戏. 准备工作 将项目初始资源导入Unity项目,资源目录如下: 其中分别包含要用于游戏的动画.材质.模型.背景音乐.物理材质.预制件.场景.脚本.音效及图片资源. 放置炸弹 打开项目中的Game场景并运行. 可以通过WASD键或方向键来操作所有角色进行

【我的第一款App(“跑酷好基友” 英文名:BothLive) 登录App Store(一)】使用iOS7推出的Sprite Kit框架制作一款横版小游戏

从本篇文章开始,我将陆续用至少三篇文章介绍一下我个人的第一款上线App Store的游戏:“跑酷好基友”,英文名BothLive.从游戏制作.社交分享.App上传审核,以及版本更新迭代(如果有)几个方面来介绍.目前,这只是一个非常非常easy的超轻量级游戏. 说来也很有意思,本人一直从事iOS应用客户端的开发,对于iOS游戏制作从来也没花时间和心思.但是一个偶然的机会:2014年3月份公司派我去南京晓庄学院做一场开发讲座,讲座中需要向同学们演示一个小游戏的开发过程,于是我便利用iOS7推出的全新