[AS3]分析函数--通过检测 可控制影片剪辑的播放
[AS3]分析函数--通过检测 可控制影片剪辑的播放,as3函数,as3影片剪辑
[AS3]分析函数--通过检测 可控制影片剪辑的播放
- //////////////////////////////////////////////////////////////
- // 移动响应,返回布尔值
- // 通过检测,可控制影片剪辑的播放 ——
- // —知识点:函数的设计
- //////////////////////////////////////////////////////////////
- function moveChar(ob, dirx, diry) {
- ob.x += dirx*ob.speed;
- ob.y += diry*ob.speed;
- ob.clip.gotoAndStop(dirx+diry*2+3);
- obob.clip._x = ob.x;
- obob.clip._y = ob.y;
- return (true);
- }
- function detectKeys() {
- var ob = _root.char;
- var keyPressed = false;
- if (Key.isDown(Key.RIGHT)) {
- keyPressed=_root.moveChar(ob, 1, 0);
- } else if (Key.isDown(Key.LEFT)) {
- keyPressed=_root.moveChar(ob, -1, 0);
- } else if (Key.isDown(Key.UP)) {
- keyPressed=_root.moveChar(ob, 0, -1);
- } else if (Key.isDown(Key.DOWN)) {
- keyPressed=_root.moveChar(ob, 0, 1);
- }
- if (!keyPressed) {
- ob.clip.char.gotoAndStop(1);
- } else {
- ob.clip.char.play();
- }
- }
- //////////////////////////////////////////////////////////////
- // 运动物体在数组地图中的周围情况监测
- //////////////////////////////////////////////////////////////
- function getMyCorners (x, y, ob) {
- ob.downY = Math.floor((y+ob.height-1)/game.tileH);
- ob.upY = Math.floor((y-ob.height)/game.tileH);
- ob.leftX = Math.floor((x-ob.width)/game.tileW);
- ob.rightX = Math.floor((x+ob.width-1)/game.tileW);
- //检测他们是否是障碍物
- ob.upleft = game["t_"+ob.upY+"_"+ob.leftX].walkable;
- ob.downleft = game["t_"+ob.downY+"_"+ob.leftX].walkable;
- ob.upright = game["t_"+ob.upY+"_"+ob.rightX].walkable;
- ob.downright = game["t_"+ob.downY+"_"+ob.rightX].walkable;
- }
- //////////////////////////////////////////////////////////////
- // 物体开始运动,首先判断周围情况
- //////////////////////////////////////////////////////////////
- function moveChar(ob, dirx, diry) {
- getMyCorners (ob.x, ob.y+ob.speed*diry, ob);
- if (diry == -1) {
- if (ob.upleft and ob.upright) {
- ob.y += ob.speed*diry;
- } else {
- obob.y = ob.ytile*game.tileH+ob.height;
- }
- }
- if (diry == 1) {
- if (ob.downleft and ob.downright) {
- ob.y += ob.speed*diry;
- } else {
- ob.y = (ob.ytile+1)*game.tileH-ob.height;
- }
- }
- getMyCorners (ob.x+ob.speed*dirx, ob.y, ob);
- if (dirx == -1) {
- if (ob.downleft and ob.upleft) {
- ob.x += ob.speed*dirx;
- } else {
- obob.x = ob.xtile*game.tileW+ob.width;
- }
- }
- if (dirx == 1) {
- if (ob.upright and ob.downright) {
- ob.x += ob.speed*dirx;
- } else {
- ob.x = (ob.xtile+1)*game.tileW-ob.width;
- }
- }
- obob.clip._x = ob.x;
- obob.clip._y = ob.y;
- ob.clip.gotoAndStop(dirx+diry*2+3);
- ob.xtile = Math.floor(ob.clip._x/game.tileW);
- ob.ytile = Math.floor(ob.clip._y/game.tileH);
- //---------下面两行由qhwa添加--------
- obob.height = ob.clip._height/2;
- obob.width = ob.clip._width/2;
- //---------------------------------
- return (true);
- }
热门文章推荐
- [HLS]做自己的m3u8点播系统使用HTTP Live Streaming(HLS技术)
- [FMS]FMS流媒体服务器配置与使用相关的介绍
- [AS3]什么是M3U8,与HTML5的区别是什么
- AS2.0 让flash自适应全屏,并且不自动缩放
- [AS3]as3.0的sound类常用技巧整理
- [AS3]as3与ByteArray详解、ByteArray介绍、ByteArray用法
- 关于RTMP,RTMPT,RTMPS,RTMPE,RTMPTE协议的介绍
- [JS]分享浏览器弹出窗口不被拦截JS示例
请稍候...