Egret社区

基于egret的摄像机类 Camera2D

2017-12-19 20:43
70433
本帖最后由 ywx620 于 2017-12-20 09:04 编辑

游戏中有时候需要对主角的镜头跟踪,而egret在3D有写摄像机类而在2D方面就没有写了。
于是我基于白鹭引擎写了个2D的摄像机,用来跟踪角色位置。
这个摄像机适用与普通的游戏场景。
同时也适用于基于P2的物理游戏场景。
下面我以P2物理引擎为例子举例使用
使用了两个类P2World与Camera2D

[Actionscript3] 纯文本查看 复制代码
 
//首先增加一个背景,把背景设置大一些
var bg=new eui.Image("bg_jpg")
bg.width=bg.height=2000;
this.addChild(bg)
//创建P2物理世界,有一个向下100的重力
 var world:P2World=new P2World(0,100);//把世界加载出来,主要是用于显示debug,P2世界本身是不用加载出来的。
this.addChild(world);
//创建P2四面的墙,防止小球跑出去
world.createWall(new egret.Rectangle(0,0,this.width,this.height));
//创建小直径为50的小球
var ball:p2.Body=world.createCircleBodyShape(50);
ball.mass=10;
//画出小球皮肤
world.drawSkin(ball);
//创建摄像机,需要三个参加,跟踪的目标(一个可显示对象),场景(包含背景与跟踪目标),摄像机显示范围
var cameraRect:egret.Rectangle=new egret.Rectangle(0,0,this.stage.stageWidth,this.stage.stageHeight);
var camera:control.Camera2D=new control.Camera2D(ball.userData.skin,this,cameraRect);
//一个循环函数,用来更新摄像机位置
this.addEventListener(egret.Event.ENTER_FRAME,onLoop,this);
function onLoop(e:egret.Event):void
{
    camera.move();
}

有些同学可能不知道如何使用P2
下面再写一个普通的游戏使用摄像机的情况
其实大致是与上面的内容差不多的。
只不过需要手动写当小球的运动与小球到达边界需要停下来的情况

游客,如果您要查看本帖隐藏内容请回复



演示地址
QQ图片20171219210605.png
在演示中单击场景可以改变小球的冲量

手机在线演示

下载 (2).png


utils.rar

3.15 KB, 下载次数: 45, 下载积分: 银子 -1

售价: 1 银子  [记录]

基于egret的摄像机类 Camera2D

分享到 :
3 人收藏

33 个回复

倒序浏览
wuhaishengxxx  登堂入室 | 2017-12-19 23:46:42
我也写了个,发现Egret没有2D Camera ,实际项目中经常用到,所以封装了,Laya也没有2D Camera
ywx620  初窥堂奥 | 2017-12-20 09:02:55
wuhaishengxxx 发表于 2017-12-19 23:46
我也写了个,发现Egret没有2D Camera ,实际项目中经常用到,所以封装了,Laya也没有2D Camera ...

恩恩!其实这个官方可以写一个的,毕竟这是个游戏引擎嘛!
jet66  圆转纯熟 | 2017-12-20 09:42:08
这个很吊!
ywx620  初窥堂奥 | 2017-12-21 18:07:56

呵呵,学习用。
我是啥  初学乍练 | 2017-12-30 16:00:21 来自手机
好东西
sdgaodai  初窥堂奥 | 2017-12-30 22:44:07
67666666666666
daiwx  圆转纯熟 | 2017-12-31 11:40:02
学习了
啊哈哈哈123  登堂入室 | 2018-1-2 13:28:35
1111111111
啊哈哈哈123  登堂入室 | 2018-1-2 13:28:37
1111111111
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|京网文[2014]0791-191号|京ICP证150115号|Egret社区 ( 京ICP备14025619号

Powered by Discuz! X3.2 © 2001-2016 Comsenz Inc.

返回顶部