ActionScript 3.0 学习(十二) AS3 模拟打地鼠小游戏

原创 2015年10月20日 09:08:19

        有问题请联系qq:1031885567,注明csdn加好友。 

        本节做了一个模拟打地鼠小游戏,可以学习其中将各个方格用统一的类来管理,同时需要注意的是在将子原件移除掉时,也相应需要将其在数组中splice掉。以下为对应程序:

        

package
{
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	public class ItemManage extends Sprite
	{
		private var _container:MovieClip;
		private var _circleEffect:MovieClip;
		private var _rightMark:MovieClip;
		
		private var _itemIcons:Vector.<ItemIcon>;
		private var _nameArray:Array = ["item_0", "item_2", "item_5", "item_4", "item_6",
			"item_10", "item_8", "item_7", "item_3", "item_11", 
			"item_12", "item_9", "item_14", "item_16", "item_17",
			"item_13", "item_23", "item_24", "item_18", "item_19",
			"item_22", "item_20", "item_15", "item_21", "item_1"];
		
		public function ItemManage()
		{
			_container = new ItemContainerUI();
			_circleEffect = new circleUI();
			_rightMark = new DuiGouUI();
			
			_itemIcons = new Vector.<ItemIcon>;
			
			var length:int = _container.numChildren;
			for(var i:int = 0; i < length; i++)
			{
				var itemIconMC:MovieClip = _container.getChildByName(_nameArray[i]) as MovieClip;
				_itemIcons[i] = new ItemIcon(itemIconMC);
				_itemIcons[i].addEventListener(MouseEvent.CLICK, onClickIcon);
			}
			
			_itemIcons[3].selected = true;
			_itemIcons[10].addChildItem(new circleUI(), 33, 33);
			_itemIcons[10].enableMouse(true);
			
			addChild(_container);
		}
		
		private function onClickIcon(e:MouseEvent):void
		{
			var index:int = _nameArray.indexOf(e.currentTarget.skin.name);
			_itemIcons[index].removeChildItem();
			_itemIcons[index].enableMouse(false);
			_itemIcons[index].selected = true;
			var num:int = Math.floor(Math.random() * 25);
			_itemIcons[num].addChildItem(new circleUI(), 33, 33);
			_itemIcons[num].enableMouse(true);
		}
	}
}


import flash.display.MovieClip;
import flash.events.EventDispatcher;
import flash.events.MouseEvent;

class ItemIcon extends EventDispatcher
{
	private var _skin:MovieClip;
	private var _selected:Boolean;
	private var _selectedMC:MovieClip;
	private var _selectedMCName:String;
	private var _addedChild:Vector.<MovieClip>;
	
	public function ItemIcon(skin:MovieClip)
	{
		_skin = skin;
		_skin.mouseEnabled = false;
		_skin.buttonMode = false;
		_addedChild = new Vector.<MovieClip>;
	}
	
	public function get skin():MovieClip
	{
		return _skin;
	}
	
	public function set selected(value:Boolean):void
	{
		_selected = value;
		if(value)
		{
			if(_selectedMC == null)
			{
				_selectedMC = new DuiGouUI();
				_selectedMCName = _selectedMC.name;
				_selectedMC.x = _skin.width / 2;
				_selectedMC.y = _skin.height /2;
				_skin.addChild(_selectedMC);
			}
		}
		else
		{
			if(_selectedMC)
			{
				_skin.removeChild(_selectedMC);
				_selectedMC = null;
			}
		}
	}
	
	public function enableMouse(value:Boolean):void
	{
		if(value)
		{
			_skin.buttonMode = true;
			_skin.mouseEnabled = true;
			_skin.addEventListener(MouseEvent.CLICK, onClick);
		}
		else
		{
			_skin.mouseEnabled = false;
			_skin.buttonMode = false;
			if(_skin.hasEventListener(MouseEvent.CLICK))
			{
				_skin.removeEventListener(MouseEvent.CLICK, onClick);
			}
		}
	}
	
	public function addChildItem(mc:MovieClip, x:int ,y:int):void
	{
		mc.x = x;
		mc.y = y;
		_skin.addChild(mc);
		_addedChild.push(mc);
	}
	
	public function removeChildItem():void
	{
		for(var i:int = 0; i < _addedChild.length; i++)
		{
			if(_addedChild[i].name != _selectedMCName)
			{
				_skin.removeChild(_addedChild[i]);
				_addedChild.splice(i,1);
				i--;
			}
		}
	}
	
	private function onClick(event:MouseEvent):void
	{
		dispatchEvent(new MouseEvent(MouseEvent.CLICK));
	}
	
	public function dispose():void
	{
		_skin = null;
		_selectedMC = null;
		_addedChild = null;
		if(_skin.hasEventListener(MouseEvent.CLICK))
		{
			_skin.removeEventListener(MouseEvent.CLICK, onClick);
		}
	}
}

以下为运行结果:


flash游戏简单打地鼠游戏

  • 2015年05月25日 21:55
  • 849KB
  • 下载

ActionScript 3.0 学习(十三) AS3 消消乐小游戏

         本文只展示游戏效果,可以消除任意多个连起来的方块。具体代码问题请联系qq:1031885567,注明csdn加好友。 因录制问题导致画面不流畅,实际操作感是很好的。...
  • BoRenLiang
  • BoRenLiang
  • 2015年11月01日 14:46
  • 775

flash as3.0打地鼠代码

  • 2012年11月06日 17:52
  • 398KB
  • 下载

flash编程打地鼠游戏(1.思路)

准备美术素材, 鼠洞,鼠进洞动画,出洞动画, 打鼠的锤子 把 鼠洞,鼠进洞动画,出洞动画 ,这些组合到一个MovieClip,然后复制几个(假如是10个)放到舞台上,取好名mc0~mc9 ...
  • qq_27709465
  • qq_27709465
  • 2015年06月13日 18:29
  • 1541

flash制作的打地鼠小游戏

  • 2009年12月23日 18:55
  • 296KB
  • 下载

Flash as3.0制作的打字测试小游戏源码。

  • 2015年12月02日 14:12
  • 12KB
  • 下载

基于ActionScript3.0的DoodleJump 游戏实现

import flash.desktop.NativeApplication; import flash.display.Loader; import flash.display.Sprite; im...
  • wise_x_y
  • wise_x_y
  • 2014年11月21日 08:12
  • 773

flash cs6 as3 对对碰游戏源码 完整运行

  • 2014年10月12日 14:01
  • 28KB
  • 下载

捕鱼达人as3.0flash游戏源码期末作业

  • 2015年11月16日 19:59
  • 16.33MB
  • 下载

ActionScript3.0游戏中的图像编程(连载一)

1946年,计算机在第三次工业革命的推动下得以诞生并发展。从此地球上多了一类人,他们的世界很简单,每天不是和0接触,就是跟1来往。他们低调做人,高调做事,他们务实为民,不求名利,他们,就是可爱可人,可...
  • iloveas2014
  • iloveas2014
  • 2014年07月30日 18:02
  • 678
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ActionScript 3.0 学习(十二) AS3 模拟打地鼠小游戏
举报原因:
原因补充:

(最多只允许输入30个字)