您所在的位置:QQ首页 > 动画频道 > 其他教程> 正文

Flash区块游戏教程之增加卷屏事件
http://flash.QQ.com   2006年 08月 28日 11:55   zjs35blog  

下一个更精彩:《银河动画》鼠绘教程——动作篇

//增加卷屏事件

function strollMap(dirx) {

var mc = this.target._parent;

if (mc._x<=0) {

var t = mc._x-dirx*this.speed;

if (t>0) {

mc._x = 0;

} else if (t

mc._x = this.target.mapminx;

} else {

mc._x -= dirx*this.speed;

var t = Math.abs(Math.floor((this.target._parent._x)/Tile.width));

if (dirx == 1) {

this.dispatchEvent({type:"left", value:t});

} else if (dirx == -1) {

this.dispatchEvent({type:"right", value:t});

}

}

}

}

在Game类中

_char.addEventListener("left", Delegate.create(this, moveleft));

_char.addEventListener("right", Delegate.create(this, moveright));

private function moveleft(obj) {

var t = obj.value-1;

if (t != 0) {

var row = t-1;

if (row>=0 && (row+endx+1)<_mapData.width) {

this.removeRow(row);

this.addRow(row+endx+1);

}

}

}

private function moveright(obj) {

var t = obj.value-1;

if (t>=0) {

var row = t;

if (row>=0 && (row+endx)<_mapData.width) {

this.addRow(row);

this.removeRow(row+endx+1);

}

}

}

//绘制指定列

private function addRow(row:Number) {

var w = _mapData.width;

var h = _mapData.height;

var tileW = Tile.width;

var tileH = Tile.height;

for (var i = 0; i

var name = "t_"+i+"_"+row;

var mc = _target.wholemap.attachMovie("tile", name, i*w+row);

//根据参数来创建区块

mc.instance = new Tile(_mapData.getData(_index)[i][row]);

mc.instance.target = mc;

mc._x = row*tileW;

mc._y = i*tileH;

mc._width = tileW;

mc._height = tileH;

mc.gotoAndStop(mc.instance.name.frame);

}

}

private function removeRow(row:Number) {

var h = _mapData.height;

for (var i = 0; i

var name = "t_"+i+"_"+row;

_target.wholemap[name].removeMovieClip();

}

}

免费订阅】【发表评论】【动画论坛】【  】【关闭
发表评论
 QQ号码:
 QQ密码:
 验证码: 匿名发表
* 请各位网友遵纪守法并注意语言文明。
*《互联网电子公告服务管理规定》
*《全国人大常委会关于维护互联网安全的规定》




关于腾讯 | About Tencent | 服务条款 | 广告服务 | 腾讯招聘 | 腾讯公益 | 客服中心 | 网站导航
Copyright © 1998 - 2008 Tencent Inc. All Rights Reserved
腾讯公司 版权所有