flash游戏开发工具_滚屏

游戏中的地图一般会需要随角色进行滚动,整理一个工具方便生活喽.
package  {
import flash.display.*;
import flash.geom.Point;

public class Scroll {

// Constants:
// Public Properties:
// Private Properties:

// Initialization:
public function Scroll() { }


// Public Methods:
// Protected Methods:

/**
滚动背景
*/
public static function scrollWithHero(bg:DisplayObject,playerDo2d:DisplayObject,edgeDistanceX:Number = 200,edgeDistanceY:Number = 200):void{
//限定下x,y边界
if(edgeDistanceX > bg.stage.stageWidth/2){
edgeDistanceX = bg.stage.stageWidth/2;
}
if(edgeDistanceY > bg.stage.stageHeight/2){
edgeDistanceY = bg.stage.stageHeight/2;
}
//hero.mc在舞台上的坐标
var stagePositionX:Number = bg.x + playerDo2d.x;
var stagePositionY:Number = bg.y + playerDo2d.y;

var rightEdge:Number = bg.stage.stageWidth - edgeDistanceX;
var leftEdge:Number = edgeDistanceX;
var topEdge:Number = edgeDistanceY;
var bottomEdge:Number = bg.stage.stageHeight - edgeDistanceY;
if(stagePositionX > rightEdge){
bg.x -= stagePositionX-rightEdge; //背景向左移动,角色的点与右边界点的差
if(bg.x < bg.stage.stageWidth - bg.width) //将背景下限制在舞台的右侧
bg.x = bg.stage.stageWidth - bg.width;
}
if(stagePositionX < leftEdge){
bg.x += (leftEdge-stagePositionX); //背景向右移动,左边界与角色的点的差
if(bg.x >0) //将背景的左下角限制在舞台的左侧
bg.x = 0;
}
//y方向
/**
下移,角色的y坐标大于下侧的值
背景向上移动,角色在舞台的点与下侧的差
将背景限制在舞台的下侧
*/
if(stagePositionY > bottomEdge){
bg.y -= stagePositionY - bottomEdge;
if(bg.y < -(bg.height - bg.stage.stageHeight)){
bg.y = -(bg.height - bg.stage.stageHeight);
}
}else if(stagePositionY < topEdge){
/*
上移,角色的y值小于上侧的值
背景下移,上侧与角色在舞台上的点的差
将背景限制舞台的上侧
*/
bg.y += topEdge - stagePositionY;
if(bg.y >0){
bg.y = 0;
}
}
}
}

}


参数很容易懂,1: 背景的可视对象,2: 角色...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值