import com.velcyr.Init;
import flash.events.Event;
import flash.events.KeyboardEvent;
public class KongzhiGame extends Init
{
protected var _num:int = 0;
public function KongzhiGame()
{
super();
_num = 10;
}
public override function init(e:Event=null):void{
this.stage.frameRate = 5;
this.stage.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
public function keyDownHandler(e:KeyboardEvent):void{
if(e.charCode >= 48 && e.charCode <=57){
_num = new int(String.fromCharCode(e.charCode));
trace("产生新值",_num);
this.stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
this.stage.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
}
public function enterFrameHandler(e:Event):void{
if(_num == 0){
trace("等待产生新值");
this.stage.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
this.stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
}else{
trace("数数",_num--);
}
}
}
如何用KongzhiGame类中的_num传值给games中的game7方法,并代替game7方法的随机数rN. public class Games
{
protected const NUM:uint = 10;
public function Games()
{
this.game7();
}
/**存在海盗PK*/
public function game7():void{
var start:int = 0;
var end:int = 120;
var livePersion:Array = new Array();//当前活着的人。
var persions:Array = new Array();
for( var i:int=1; i<=30; i++){
var h:BFLForceHaidao = new BFLForceHaidao(i);
persions.push(h);
livePersion.push(h);
}
var rN:uint = MathUitls.random(1,NUM);//数的数字
var num:uint = 0;
Label : while(persions.length>4){
var dels:Array = new Array();
for each(var haidao:BFLForceHaidao in persions){
//当前人是不是在死掉的人之列,.以为for循环结束才删除。
if( dels.indexOf(haidao) != -1){
continue;
}
//数数
num = num+1;
//时间加一秒
start += 1;
if(start > end){
trace("全部死掉");
break Label;
}
if(num == rN){
if(haidao.canThrow()){
if(haidao.throwCoin()){
trace(haidao,"数",num,"投硬币反面");
var si:BFLForceHaidao = this.pk2(haidao,livePersion);
start += 5;
if(start > end){
trace("全部死掉");
break Label;
}
dels.push(si);
/*以为到这个循环结束的时候才删除海盗。*/
livePersion.splice(livePersion.indexOf(si),1);
rN = MathUitls.random(1,NUM);
trace(si,"死掉,并随机产生新值:"+rN);
}else{
trace(haidao,"数",num,"投硬币免除");
}
}else{
trace(haidao,"数",num,"使用过投硬币机会");
var sid:BFLForceHaidao = this.pk2(haidao,livePersion);
start += 5;
if(start > end){
trace("全部死掉");
break Label;
}
dels.push(sid);
livePersion.splice(livePersion.indexOf(sid),1);
rN = MathUitls.random(1,NUM);
trace(sid,"死掉,并随机产生新值:"+rN);
}
num = 0;
}else{
trace(haidao,"数",num);
}
}
//让该跳海的人跳海,
for each( var del:HaiDao in dels ){
persions.splice(persions.indexOf(del),1);
}
}
trace(start);
trace(persions);
}
livePersion.splice(livePersion.indexOf(si),1);
rN = MathUitls.random(1,NUM);
trace(si,"死掉,并随机产生新值:"+rN);
}else{
trace(haidao,"数",num,"投硬币免除");
}
}else{
trace(haidao,"数",num,"使用过投硬币机会");
var sid:BFLForceHaidao = this.pk2(haidao,livePersion);
start += 5;
if(start > end){
trace("全部死掉");
break Label;
}
dels.push(sid);
livePersion.splice(livePersion.indexOf(sid),1);
rN = MathUitls.random(1,NUM);
trace(sid,"死掉,并随机产生新值:"+rN);
}
num = 0;
}else{
trace(haidao,"数",num);
}
}
//让该跳海的人跳海,
for each( var del:HaiDao in dels ){
persions.splice(persions.indexOf(del),1);
}
}
trace(start);
trace(persions);
}
import flash.events.Event;
import flash.events.KeyboardEvent;
public class KongzhiGame extends Init
{
protected var _num:int = 0;
public function KongzhiGame()
{
super();
_num = 10;
}
public override function init(e:Event=null):void{
this.stage.frameRate = 5;
this.stage.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
public function keyDownHandler(e:KeyboardEvent):void{
if(e.charCode >= 48 && e.charCode <=57){
_num = new int(String.fromCharCode(e.charCode));
trace("产生新值",_num);
this.stage.removeEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
this.stage.addEventListener(Event.ENTER_FRAME,enterFrameHandler);
}
}
public function enterFrameHandler(e:Event):void{
if(_num == 0){
trace("等待产生新值");
this.stage.removeEventListener(Event.ENTER_FRAME,enterFrameHandler);
this.stage.addEventListener(KeyboardEvent.KEY_DOWN,keyDownHandler);
}else{
trace("数数",_num--);
}
}
}
如何用KongzhiGame类中的_num传值给games中的game7方法,并代替game7方法的随机数rN. public class Games
{
protected const NUM:uint = 10;
public function Games()
{
this.game7();
}
/**存在海盗PK*/
public function game7():void{
var start:int = 0;
var end:int = 120;
var livePersion:Array = new Array();//当前活着的人。
var persions:Array = new Array();
for( var i:int=1; i<=30; i++){
var h:BFLForceHaidao = new BFLForceHaidao(i);
persions.push(h);
livePersion.push(h);
}
var rN:uint = MathUitls.random(1,NUM);//数的数字
var num:uint = 0;
Label : while(persions.length>4){
var dels:Array = new Array();
for each(var haidao:BFLForceHaidao in persions){
//当前人是不是在死掉的人之列,.以为for循环结束才删除。
if( dels.indexOf(haidao) != -1){
continue;
}
//数数
num = num+1;
//时间加一秒
start += 1;
if(start > end){
trace("全部死掉");
break Label;
}
if(num == rN){
if(haidao.canThrow()){
if(haidao.throwCoin()){
trace(haidao,"数",num,"投硬币反面");
var si:BFLForceHaidao = this.pk2(haidao,livePersion);
start += 5;
if(start > end){
trace("全部死掉");
break Label;
}
dels.push(si);
/*以为到这个循环结束的时候才删除海盗。*/
livePersion.splice(livePersion.indexOf(si),1);
rN = MathUitls.random(1,NUM);
trace(si,"死掉,并随机产生新值:"+rN);
}else{
trace(haidao,"数",num,"投硬币免除");
}
}else{
trace(haidao,"数",num,"使用过投硬币机会");
var sid:BFLForceHaidao = this.pk2(haidao,livePersion);
start += 5;
if(start > end){
trace("全部死掉");
break Label;
}
dels.push(sid);
livePersion.splice(livePersion.indexOf(sid),1);
rN = MathUitls.random(1,NUM);
trace(sid,"死掉,并随机产生新值:"+rN);
}
num = 0;
}else{
trace(haidao,"数",num);
}
}
//让该跳海的人跳海,
for each( var del:HaiDao in dels ){
persions.splice(persions.indexOf(del),1);
}
}
trace(start);
trace(persions);
}
livePersion.splice(livePersion.indexOf(si),1);
rN = MathUitls.random(1,NUM);
trace(si,"死掉,并随机产生新值:"+rN);
}else{
trace(haidao,"数",num,"投硬币免除");
}
}else{
trace(haidao,"数",num,"使用过投硬币机会");
var sid:BFLForceHaidao = this.pk2(haidao,livePersion);
start += 5;
if(start > end){
trace("全部死掉");
break Label;
}
dels.push(sid);
livePersion.splice(livePersion.indexOf(sid),1);
rN = MathUitls.random(1,NUM);
trace(sid,"死掉,并随机产生新值:"+rN);
}
num = 0;
}else{
trace(haidao,"数",num);
}
}
//让该跳海的人跳海,
for each( var del:HaiDao in dels ){
persions.splice(persions.indexOf(del),1);
}
}
trace(start);
trace(persions);
}
解决方案 »
- 多个文本框判断是否空问题
- 如何使用DOM事件流动捕获
- 关于程序发布问题
- 关于用javascript 自动计算的问题
- javascript 关于自动获取焦点的问题 (急)
- 问一个问题,Function.arguments 对象不是数组?为何下面的方法会报错?
- 新浪微博jssdk登陆问题
- tbody.childNodes[i]在IE里是兼容的,在FF里就不行啊,请给个兼容的写法
- 防止重复提交(UP有分)急
- target的问题???急切!!!target的父对象是什么?是window?还是document?还是什么???
- SharePoint2010 在NewForm.aspx页面加入JS代码,document.GetElementById()获取不到?
- KindEditor 上传图片按用户分类
import flash.display.MovieClip;//导入影片剪辑类
import flash.events.KeyboardEvent;//导入键盘事件类
import flash.ui.Keyboard;
import flash.events.Event;//导入事件类
import flash.events.MouseEvent; //导入鼠标事件类 public class Main extends MovieClip{
var mycar:Car=new Car();
var zhang:Array=new Array(Barrier1,Barrier2,Barrier3,Barrier4,Barrier5,Barrier6,Barrier7); //创建障碍物影片剪辑对象数组,元素共有7个
var barrierOnstage:Array=new Array(); //创建一个空数组用来保存在舞台中随机生成的障碍对象
var speed:int;
var hitcount:int;
public function Main(){
init();
mycar.width=100;
mycar.height=54;
speed=0;
hitcount=0;
txt.text="撞到障碍物" + hitcount + "次。";
addChild(mycar);
zhang.width=200;
zhang.height=50;
zhang.x=stage.stageWidth/2;
zhang.y=stage.stageHeight/2;
addChild(zhang);
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
stage.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
//定义小车初始位置
private function init(){
mycar.x=416;
mycar.y=82;
mycar.rotation=0;
}
private function onKeyDown(event:KeyboardEvent):void{
switch(event.keyCode){
case Keyboard.LEFT:
mycar.rotation-=5;
break;
case Keyboard.RIGHT:
mycar.rotation+=5;
break;
case Keyboard.UP:
speed+=1;
break;
case Keyboard.DOWN:
speed-=1;
break;
default:
break;
}
}
private function onKeyUp(event:KeyboardEvent):void{
switch(event.keyCode){
case Keyboard.UP:
speed=0;
break;
case Keyboard.DOWN:
speed=0;
break;
default:
break;
}
}
// 处理Enter_Frame事件
private function onEnterFrame(event:Event):void{
if(Math.abs(speed)>5){
speed=5;
}
if(speed<-3){
speed=-3;
}
mycar.x+=Math.sin(mycar.rotation*Math.PI/180)*speed;
mycar.y+=Math.cos(mycar.rotation*Math.PI/180)*(-speed);
if(mycar.x+mycar.width/2>550 || mycar.x+mycar.height/2>550){
mycar.x=stage.stageWidth-mycar.width/2;
}
else if(mycar.x-mycar.width/2<0 || mycar.x-mycar.height/2<0){
mycar.x=mycar.width/2;
}
if(mycar.y+mycar.height/2>400 || mycar.y+mycar.width/2>400){
mycar.y=stage.stageHeight-mycar.height/2;
}
else if(mycar.y-mycar.height/2<0 || mycar.y-mycar.width/2<0){
mycar.y=mycar.height/2;
}
//碰撞检测
if(mycar.hitTestObject(zhang)){
init();
hitcount++;
txt.text="撞到障碍物" + hitcount + "次。";
}
if(hitcount>=5){
stage.removeEventListener(Event.ENTER_FRAME,onEnterFrame);
stage.removeEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
stage.removeEventListener(KeyboardEvent.KEY_UP,onKeyUp);
txt.text="车已撞毁,小心驾驶!"
txt2.text="单击小车,重新游戏!"
mycar.addEventListener(MouseEvent.CLICK,onCarClick);
}
}
private function onCarClick(event:MouseEvent):void{
hitcount=0;
speed=0;
txt2.text="";
txt.text="撞到障碍物" + hitcount + "次。";
stage.addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
stage.addEventListener(KeyboardEvent.KEY_UP,onKeyUp);
stage.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}
}
}求大神指导啊,菜鸟不知道该怎么改了,急求