仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 783|回复: 6
打印 上一主题 下一主题

[学习教程] 动画教程之Flash AS3教程:小游戏开辟实战实验-Flash actionscript

[复制链接]
兰色精灵 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-15 22:49:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
FlashScreensaversMaker能够迅速的将您的Flash作品转化为屏保程序。
后面解说了FlashAS3教程:Direction类和Dot类,后面都是实际的解说,这篇来一个实战,做一个相似坦克游戏的程序。
http://www.webjx.com/files/media/dirtanke.swf
这几天也写了一些类了,是驴子仍是骡子,拿出来遛一遛就晓得了,先看这个下面这个flash动画!

一个相似坦克游戏的demo程序
利用Direction类来举行偏向把持
利用Dot类来盘算间隔
用上Direction类和Dot类以后,这个demo程序变得非常复杂额。。
也没甚么好说,次要透过这个例子,让人人类熟习Direction类和Dot类的利用办法
不懂的能够在前面跟帖发问,妙手假如看到甚么有毛病的中央,请斧正出来,多谢指教

上面是fla的源代码:
CODE:
importindex.base.game.Direction;
importindex.base.events.DirectionEvent;
importindex.base.geom.Dot;

//舞台属性设置
stage.showDefaultContextMenu=false;
stage.align="TL";
stage.scaleMode="noScale";

//创立坦克
vartank:Tank=newTank;
tank.x=tank.y=250;
addChild(tank);

//创立绑定坦克的点
vardot:Dot=newDot;
dot.bind(tank);

//坦克挪动
vardirTank:Direction=newDirection(stage);
//炮台动弹
vardirTower:Direction=newDirection(stage,true,87,83,65,68);

//坦克炮台事务
dirTank.addEventListener(DirectionEvent.DO,doTankFun);
dirTower.addEventListener(DirectionEvent.DO,doTowerFun);

//坦克挪动
functiondoTankFun(e:DirectionEvent):void{
if(e.up){
dot.go(2,true);
}
if(e.down){
dot.go(-2,true);
}
if(e.left){
tank.rotation-=2;
}
if(e.right){
tank.rotation+=2;
}
if(tank.x<0)tank.x=0;
if(tank.y<0)tank.y=0;
if(tank.x>stage.stageWidth)tank.x=stage.stageWidth;
if(tank.y>stage.stageHeight)tank.y=stage.stageHeight;
}

//是不是能够发射炮台,枪弹
varisBullet:Boolean=true;
varisShell:Boolean=true;
//炮台发射动弹
functiondoTowerFun(e:DirectionEvent):void{
if(e.up&&isBullet){
varbullet:Bullet=newBullet;
bullet.x=tank.x;
bullet.y=tank.y;
bullet.rotation=tank.rotation+tank.tower.rotation;
bullet.addEventListener(Event.ENTER_FRAME,bulletFun);
addChild(bullet);

isBullet=false;
setTimeout(function(){isBullet=true},200);
}
if(e.down&&isShell){
varshell:Shell=newShell;
shell.x=tank.x;
shell.y=tank.y;
shell.rotation=tank.rotation;
shell.addEventListener(Event.ENTER_FRAME,shellFun);
addChild(shell);

isShell=false;
setTimeout(function(){isShell=true},500);
}
if(e.left){
tank.tower.rotation-=5;
}
if(e.right){
tank.tower.rotation+=5;
}
}

//炮台
functionshellFun(e:Event):void{
vartmp:Shell=e.currentTargetasShell;
vard:Dot=newDot(tmp.x,tmp.y,tmp.rotation);
d.bind(tmp);
d.go(4,true);
if(tmp.x<0||tmp.x>stage.stageWidth||tmp.y<0||tmp.y>stage.stageHeight){
removeChild(tmp);
tmp.removeEventListener(Event.ENTER_FRAME,shellFun);
}

tmp=null;
d=null;
}

//枪弹
functionbulletFun(e:Event):void{
vartmp:Bullet=e.currentTargetasBullet;
vard:Dot=newDot(tmp.x,tmp.y,tmp.rotation);
d.bind(tmp);
d.go(5,true);
if(tmp.x<0||tmp.x>stage.stageWidth||tmp.y<0||tmp.y>stage.stageHeight){
removeChild(tmp);
tmp.removeEventListener(Event.ENTER_FRAME,bulletFun);
}

tmp=null;
d=null;
}别的注重源代码,有个中央屡次对tank的tower属性就行援用,而且前往他的x,y大概扭转值,有人就会问了,as3不是不撑持相似mc那样的间接会见显现工具,为何我这儿却能够?
乐意是我把素材绑定在Tank类上,而且对Tank类做了以下编写:
CODE:
package{

importflash.display.Sprite;

publicclassTankextendsSprite{

publicfunctionTank(){

}

publicfunctiongettower():Sprite{
returntowerMc;
}
}
}光看这个类,大概你仍是不分明,是甚么缘故原由,为何会多出来一个towerMc出来,具体的缘故原由,请本人下载供应的源文件,下载上去看看吧。。不懂跟帖问!
点击下载源文件

AdobeFlashPlayerforIE是IE浏览器专用的flash播放器插件,可以播放AdobeFlash制作的flash文件。
再见西城 该用户已被删除
沙发
发表于 2015-1-17 18:56:31 | 只看该作者
各类广告形式,相信大部分网民基本都关注过,而毋庸置疑,一个画面精美,生动活泼的互动Flash动画广告,比其他广告形式更加吸引你我的眼球。这就是Flash动画的优势。
兰色精灵 该用户已被删除
板凳
 楼主| 发表于 2015-1-22 15:12:07 | 只看该作者
一个物体从一个角(关键祯1)移动到另一个角(关键祯2)。然后tweening在关键祯之间填充祯,从而使物体可以在屏幕上优雅地运动。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-6 18:58:00 | 只看该作者
商业上的优势——品牌flash的创造;公司企业的flash宣传;flash技术在电视的应用
5#
发表于 2015-2-18 08:49:27 | 只看该作者
在与制作传统动画相比较的同时,flash具有便捷、节省人力财力,节约时间、推广方便的许多优势。但与此同时它也具有一点的缺点。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-3-12 21:04:50 | 只看该作者
流技术让用户在下载的同时看到动画(与全部下载后再观看相反)。但是这也不是什么新技术 - Web一出现就有这种技术了。
透明 该用户已被删除
7#
发表于 2015-3-20 04:24:33 | 只看该作者
不能设置“alt”属性,失去了一次被搜说引擎检索到的机会。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 02:57

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表