以下代码在我的游戏中滚动到屏幕的左边缘或右边缘时起作用;然而,当到达“地图”的边缘时滚动到屏幕的右边缘或底边缘时,我能够看到超出地图的边缘,即我看到的是白色空间,即舞台的颜色。然而,当滚动到地图的左边缘或顶边缘时,我无法看到地图边缘之外。
public function scroll_screen():void { //scrolling left, right, up, down
var stagePositionX:Number = container.x+player.x;
var rightEdge:Number = stage.stageWidth-edgeDistance;
var leftEdge:Number = edgeDistance;
var stagePositionY:Number = container.y+player.y;
var bottomEdge:Number = stage.stageHeight-edgeDistance;
var topEdge:Number = edgeDistance;
//horizontal scrolling
if (stagePositionX > rightEdge) {
container.x -= (stagePositionX-rightEdge);
if (container.x < -(container.width-stage.stageWidth)) container.x = -(container.width-stage.stageWidth);
}
if (stagePositionX < leftEdge) {
container.x += (leftEdge-stagePositionX);
if (container.x > 0 )container.x = 0;
}
//vertical scrolling
if (stagePositionY > bottomEdge) {
container.y -= (stagePositionY-bottomEdge);
if (container.y < -(container.height-stage.stageHeight)) container.y = -(container.height-stage.stageHeight);
}
if (stagePositionY < topEdge) {
container.y += (topEdge-stagePositionY);
if (container.y > 0) container.y = 0;
}
}
希望有道理,谢谢
答案 0 :(得分:0)
的 强> 的 **更新* * 强>
您的问题是,当您的形状远离初始矩形时,container.width
会发生变化。
如果你创建一个var initialContainerWidth
并保存容器宽度,直到你向它添加任何形状,然后使用这个保存的变量而不是container.width
,它将正常工作。或者您可以将飞行形状直接添加到舞台上,这样它们就不会扩展容器的尺寸。
您只需硬编码1386而不是container.width来检查它。