[flex]浠婂ぉ闈㈣瘯瑕佸仛鐨勪笢瑗
在那紧张地做了一个半小时没做完。。。pingpong.swf.rar 改名为 pingpong.swf即可..
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
creationComplete="init()"
>
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.controls.Button;
import mx.controls.TextArea;
import mx.controls.Alert;
import mx.containers.Canvas;
public var gameStarted:Boolean=false;
public var curX:Number=200;
public var curY:Number=200;
public var angle:int=0;
public var gameArea:Sprite;
public var speed:Number;
public var LEN:Number=100;
public function init():void{
gameArea=new Sprite();
var uc:UIComponent=new UIComponent();
gameArea.graphics.beginFill(0xff0000,1);
gameArea.graphics.lineStyle(2,0xff0000);
gameArea.graphics.moveTo(200,100);
gameArea.graphics.lineTo(400,400);
gameArea.graphics.drawCircle(200,200,10);
gameArea.graphics.endFill();
this.addEventListener(Event.ENTER_FRAME,enterFrame);
uc.addChild(gameArea);
addChild(uc);
}
public function startGame():void{
speed=5;
gameStarted=true;
angle=Math.random()*360;
curX=200;
curY=200;
btn.visible=false;
}
private function drawBG():void{
gameArea.graphics.lineStyle(0);
gameArea.graphics.beginFill(0x434550,1);
gameArea.graphics.drawRect(0,0,400,400);
gameArea.graphics.endFill();
}
private function drawline(curx:Number,cury:Number):void{
gameArea.graphics.lineStyle(2,0xff0000);//beginFill(0x4543ef,1);
gameArea.graphics.moveTo(curx,0);
gameArea.graphics.lineTo(curx+LEN,0);
gameArea.graphics.moveTo(curx,400);
gameArea.graphics.lineTo(curx+LEN,400);
gameArea.graphics.moveTo(0,cury);
gameArea.graphics.lineTo(0,cury+LEN);
gameArea.graphics.moveTo(400,cury);
gameArea.graphics.lineTo(400,cury+LEN);
//2,0xff0000);
//gameArea.graphics.endFill();
}
private function drawBean(mousex:Number,mousey:Number):void{
if(curX>=400 || curY>=400 || curX<=0 || curY<=0){
if(curY<=0 || curY>=400){
//Alert.show(" "+angle);
angle=-angle;
//debug_txt.text+="degree "+angle+"dx "+Math.cos(Math.PI*(90-angle)/360)*speed+"\n";
//debug_txt.text+="degree "+angle+"dy "+Math.cos(Math.PI*angle/360)*speed+"\n";
//Alert.show(" "+angle);
//fail();
//Alert.show(" "+Math.sin(Math.PI*angle/360)*speed);
//fail();
}else{
angle=180-angle;
//debug_txt.text+="degree "+angle+"dx "+Math.cos(Math.PI*(90-angle)/360)*speed+"\n";
//debug_txt.text+="degree "+angle+"dy "+Math.cos(Math.PI*angle/360)*speed+"\n";
}
//if(angle<=0)angle+=360;
speed*=1.1;
if(!hitTestWall(mousex,mousey,curX,curY)){
fail();
return;
}
}
curX+=Math.cos(Math.PI*angle/180)*speed;
curY-=Math.cos(Math.PI*(90-angle)/180)*speed;
if(curX>=400)curX=400;
if(curX<=0)curX=0;
if(curY<=0)curY=0;
if(curY>=400)curY=400;
//gameArea.graphics.lineStyle(1);
gameArea.graphics.beginFill(0xfffe00,1);
gameArea.graphics.drawCircle(curX,curY,3);
gameArea.graphics.endFill();
}
private function hitTestWall(mx:Number,my:Number,cx:Number,cy:Number):Boolean{
return (
( (cx>=400 || cx<=0) && cy>=my && cy<=my+LEN) ||
( (cy>=400 || cy<=0) && cx>=mx && cx<=mx+LEN)
);
}
private function fail():void{
gameArea.graphics.clear();
btn.visible=true;
gameStarted=false;
//this.removeEventListener(Event.ENTER_FRAME,enterFrame);
}
public function enterFrame(e:Event):void{
if(!gameStarted)
return;
gameArea.graphics.clear();
//gameArea.graphics.beginFill(0x4543ef,1);
var curx:Number=this.mouseX;
var cury:Number=this.mouseY;
drawBG();
drawBean(curx,cury);
drawline(curx,cury);
//gameArea.graphics.endFill();
}
]]>
</mx:Script>
<mx:Button label="Begin." width="120" height="30" x="100" y="100" id="btn" click="startGame()" />
<!--<mx:TextArea id="debug_txt" x="500" y="20" width="300" height="400" />-->
</mx:Application>
这是什么呀?? C++:handshake: 你平时d水平哪里去了 通过了。。。但待遇。。。 原帖由 chjwins 于 2008-10-14 12:56 发表 https://www.gdutbbs.com/images/common/back.gif
C++:handshake:
不是C++。 呵呵,是flash 麽。 类似xsl .....
回复 5楼 记得忘记 的帖子
会有更好的,可以54这个 楼主面试哪里要写这种东西啊? 居然给毕业生面这些,这些太专了, 只要有JAVA就入手了 不是校园招聘... LS,3年前的帖都被你挖上来了。。。
页:
[1]