您的位置:首页 > 其它

Flash 游戏设计笔记:鼠标类游戏(3)

2009-02-17 11:21 417 查看
Flash 游戏设计笔记:鼠标类游戏(1)

http://blog.csdn.net/hero82748274/archive/2009/02/11/3878304.aspx





Flash 游戏设计笔记:鼠标类游戏(2)

http://blog.csdn.net/hero82748274/archive/2009/02/16/3897058.aspx



一、按力感应***

继续修改上面的文件代码,修改数据层的代码。我们返回一个我们希望得到的数据,所以采用一个简单的返回信息。



private function getScale():int
		 {
			  if (power>=-1 )
			{//angle=-45;
				power+=Math.tan(angle*180/Math.PI);
				if (power==10)
				{
					angle=-135;
				}
				if (power==0)
				{
					angle=-45;
				}
			}
			 return power;
		 }




下面就看看如何去表现ui按下的模拟:

private function addnum(event:Event):void
		 {
			var num:int=getScale();
			trace(num);
			Mypower.scaleX=num*10;
		 }




说明一下,Mypower 是一个影片剪辑类型 MovieClip,我在场景上***一个width 宽度为1的长方形状,名为

Mypower 这个就是一感应力的模拟,它的scalseX 我将它设置区间为 【0,100】





注意,要将注册点放在长方形的左边。这样才可以使长方形在放缩的时候 向右边移动,

代码清单:



package 
{
import flash.display.MovieClip;
import flash.events.*;
import flash.text.TextField;
import flash.ui.Mouse;
public class Example3 extends MovieClip
{
private var dx:TextField;
private var dy:TextField;
private var photo:MousePhoto;
private var power:int=0;
private var Maxpower:Number=100;
private var angle:int=-45;
public function Example3()
{
addEventListener(Event.ENTER_FRAME,Run);
stage.addEventListener(MouseEvent.MOUSE_DOWN,MouseDown);
stage.addEventListener(MouseEvent.MOUSE_UP,Mouseup);
init();
}
private function init():void
{
dx=new TextField ;
addChild(dx);
dx.width=50;
dx.height=20;
dx.x=30;
dx.y=30;
dx.border=true;
dy=new TextField ;
addChild(dy);
dy.width=50;
dy.height=20;
dy.x=30;
dy.y=53;
dy.border=true;
Mouse.hide();//隐藏鼠标
photo=new MousePhoto ;//创建代替鼠标的图
addChild(photo);
}
private function Run(event:Event):void
{
dx.text=String(mouseX);
dy.text=String(mouseY);
photo.x=mouseX;
photo.y=mouseY;
}
private function adds():void
{
stage.addEventListener(Event.ENTER_FRAME,addnum);
}

private function addnum(event:Event):void { var num:int=getScale(); trace(num); Mypower.scaleX=num*10; }

private function getScale():int { if (power>=-1 ) {//angle=-45; power+=Math.tan(angle*180/Math.PI); if (power==10) { angle=-135; } if (power==0) { angle=-45; } } return power; }

private function MouseDown(event:MouseEvent):void
{
adds();
}

private function Mouseup(event:MouseEvent):void
{
stage.removeEventListener(Event.ENTER_FRAME,addnum);
}

}
}






拓展:我们还可以使用更加好的ui来显示一种感应力效果,有了这样的效果,我们可以尝试做一些更加多 的模拟

而且Ui 可以做的更加好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: