| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2018-04-21 21:24:46 +08:00
										 |  |  |  | #include "e2dbase.h"
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | #include "e2dcollider.h"
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace e2d  | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | class Action; | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | class Transition; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | class ColliderManager; | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | class Node : | 
					
						
							| 
									
										
										
										
											2018-03-03 11:46:57 +08:00
										 |  |  |  | 	public Object | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | { | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	friend Scene; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	friend Collider; | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	friend Transition; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	friend ColliderManager; | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | public: | 
					
						
							|  |  |  |  | 	// <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	struct Property | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		bool visable;		// <20>ɼ<EFBFBD><C9BC><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double posX;		// X <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double posY;		// Y <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double width;		// <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double height;		// <20>߶<EFBFBD>
 | 
					
						
							|  |  |  |  | 		double opacity;		// <><CDB8><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double pivotX;		// <20><><EFBFBD>ĵ<EFBFBD> X <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double pivotY;		// <20><><EFBFBD>ĵ<EFBFBD> Y <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double scaleX;		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double scaleY;		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double rotation;	// <20><>ת<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		double skewAngleX;	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		double skewAngleY;	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Node(); | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>սڵ<D5BD>
 | 
					
						
							|  |  |  |  | 	static Node * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual ~Node(); | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20><><EFBFBD>½ڵ<C2BD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	virtual void onUpdate() {} | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20><>Ⱦ<EFBFBD>ڵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	virtual void onRender() {} | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20><>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void onCollide( | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 		Node* node	/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>Ľڵ<C4BD> */ | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	) {} | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ʾ״̬
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	virtual bool isVisiable() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20>жϵ<D0B6><CFB5>Ƿ<EFBFBD><C7B7>ڽڵ<DABD><DAB5><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual bool isPointIn( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Point point | 
					
						
							| 
									
										
										
										
											2018-03-07 20:14:58 +08:00
										 |  |  |  | 	) const; | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-06 09:56:17 +08:00
										 |  |  |  | 	// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD>ڵ<EFBFBD><DAB5>Ƿ<EFBFBD><C7B7>ཻ
 | 
					
						
							|  |  |  |  | 	virtual bool isIntersectWith( | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 		const Node * node | 
					
						
							| 
									
										
										
										
											2018-03-06 09:56:17 +08:00
										 |  |  |  | 	) const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual String getName() const; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>Ƶ<EFBFBD> Hash ֵ
 | 
					
						
							|  |  |  |  | 	virtual unsigned int getHashName() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3>
 | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	virtual int getOrder() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getPosX() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getPosY() const; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual Point getPos() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getWidth() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5>߶<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getHeight() const; | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ȣ<EFBFBD><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getRealWidth() const; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5>߶ȣ<DFB6><C8A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getRealHeight() const; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ţ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual Size getRealSize() const; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getPivotX() const; | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getPivotY() const; | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>С
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual Size getSize() const; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getScaleX() const; | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getScaleY() const; | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getSkewX() const; | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getSkewY() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getRotation() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 	virtual double getOpacity() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-21 18:42:07 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	virtual Property getProperty() const; | 
					
						
							| 
									
										
										
										
											2018-04-21 18:42:07 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	virtual Collider * getCollider() const; | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual Node * getParent() const; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual Scene * getParentScene() const; | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ӽڵ<D3BD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual std::vector<Node*> getChildren( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& name | 
					
						
							| 
									
										
										
										
											2018-04-24 13:28:21 +08:00
										 |  |  |  | 	) const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ӽڵ<D3BD>
 | 
					
						
							|  |  |  |  | 	virtual Node* getChild( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& name | 
					
						
							| 
									
										
										
										
											2018-04-24 13:28:21 +08:00
										 |  |  |  | 	) const; | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
 | 
					
						
							| 
									
										
										
										
											2018-05-10 14:16:36 +08:00
										 |  |  |  | 	virtual const std::vector<Node*>& getAllChildren() const; | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ӽڵ<D3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	virtual int getChildrenCount() const; | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20>Ƴ<EFBFBD><C6B3>ӽڵ<D3BD>
 | 
					
						
							|  |  |  |  | 	virtual bool removeChild( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * child | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD>ӽڵ<D3BD>
 | 
					
						
							|  |  |  |  | 	virtual void removeChildren( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& childName | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20>Ӹ<EFBFBD><D3B8>ڵ<EFBFBD><DAB5>Ƴ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void removeFromParent(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD>нڵ<D0BD>
 | 
					
						
							|  |  |  |  | 	virtual void clearAllChildren(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ
 | 
					
						
							|  |  |  |  | 	virtual void setVisiable( | 
					
						
							|  |  |  |  | 		bool value | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> onUpdate <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void setAutoUpdate( | 
					
						
							|  |  |  |  | 		bool bAutoUpdate | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	virtual void setName( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& name | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	virtual void setPosX( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double x | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	virtual void setPosY( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double y | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void setPos( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		const Point & point | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void setPos( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-07 17:15:57 +08:00
										 |  |  |  | 	// <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void setPosFixed( | 
					
						
							|  |  |  |  | 		bool fixed | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-11-03 12:51:01 +08:00
										 |  |  |  | 	virtual void movePosX( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double x | 
					
						
							| 
									
										
										
										
											2017-11-03 12:51:01 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void movePosY( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double y | 
					
						
							| 
									
										
										
										
											2017-11-03 12:51:01 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void movePos( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20>ƶ<EFBFBD><C6B6>ڵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-11-03 12:51:01 +08:00
										 |  |  |  | 	virtual void movePos( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		const Vector & v | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD>ͼ˳<CDBC><CBB3>
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// Ĭ<><C4AC>Ϊ 0
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setOrder( | 
					
						
							|  |  |  |  | 		int order | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ 1.0f
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setScaleX( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double scaleX | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ 1.0f
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setScaleY( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double scaleY | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ (1.0f, 1.0f)
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setScale( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double scaleX, | 
					
						
							|  |  |  |  | 		double scaleY | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ű<EFBFBD><C5B1><EFBFBD>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ 1.0f
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setScale( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double scale | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ú<EFBFBD><C3BA><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// Ĭ<><C4AC>Ϊ 0
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setSkewX( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double angleX | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// Ĭ<><C4AC>Ϊ 0
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setSkewY( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double angleY | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// Ĭ<><C4AC>Ϊ (0, 0)
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setSkew( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double angleX, | 
					
						
							|  |  |  |  | 		double angleY | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD>Ƕ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// Ĭ<><C4AC>Ϊ 0
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setRotation( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double rotation | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><CDB8><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	// Ĭ<><C4AC>Ϊ 1.0f, <20><>Χ [0, 1]
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:46:24 +08:00
										 |  |  |  | 	virtual void setOpacity( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double opacity | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5>ĺ<EFBFBD><C4BA><EFBFBD>λ<EFBFBD><CEBB>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ 0, <20><>Χ [0, 1]
 | 
					
						
							| 
									
										
										
										
											2017-11-04 15:38:41 +08:00
										 |  |  |  | 	virtual void setPivotX( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double pivotX | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ 0, <20><>Χ [0, 1]
 | 
					
						
							| 
									
										
										
										
											2017-11-04 15:38:41 +08:00
										 |  |  |  | 	virtual void setPivotY( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double pivotY | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB>
 | 
					
						
							|  |  |  |  | 	// Ĭ<><C4AC>Ϊ (0, 0), <20><>Χ [0, 1]
 | 
					
						
							| 
									
										
										
										
											2017-11-04 15:38:41 +08:00
										 |  |  |  | 	virtual void setPivot( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double pivotX, | 
					
						
							|  |  |  |  | 		double pivotY | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-01 19:28:22 +08:00
										 |  |  |  | 	// <20>Ľڵ<C4BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual void setWidth( | 
					
						
							| 
									
										
										
										
											2018-03-01 19:28:22 +08:00
										 |  |  |  | 		double width | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ľڵ<C4BD><DAB5>߶<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual void setHeight( | 
					
						
							| 
									
										
										
										
											2018-03-01 19:28:22 +08:00
										 |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ľڵ<C4BD><DAB5><EFBFBD>С
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual void setSize( | 
					
						
							| 
									
										
										
										
											2018-03-01 19:28:22 +08:00
										 |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ľڵ<C4BD><DAB5><EFBFBD>С
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual void setSize( | 
					
						
							| 
									
										
										
										
											2018-03-01 19:28:22 +08:00
										 |  |  |  | 		Size size | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-21 18:42:07 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void setProperty( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		Property prop | 
					
						
							| 
									
										
										
										
											2018-04-21 18:42:07 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	virtual void setCollider( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		Collider::Type type | 
					
						
							| 
									
										
										
										
											2018-03-31 11:59:51 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	virtual void setCollider( | 
					
						
							|  |  |  |  | 		Collider * pCollider | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ӿ<EFBFBD><D3BF><EFBFBD>ײ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual void addColliableName( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& collliderName | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void addColliableName( | 
					
						
							| 
									
										
										
										
											2018-05-10 17:02:18 +08:00
										 |  |  |  | 		const std::vector<String>& colliderNames	/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	// <20>Ƴ<EFBFBD><C6B3><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual void removeColliableName( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& collliderName | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ӽڵ<D3BD>
 | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	virtual void addChild( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * child, | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 		int order = 0	/* <20><>Ⱦ˳<C8BE><CBB3> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>Ӷ<EFBFBD><D3B6><EFBFBD><EFBFBD>ӽڵ<D3BD>
 | 
					
						
							|  |  |  |  | 	virtual void addChild( | 
					
						
							| 
									
										
										
										
											2018-05-10 17:02:18 +08:00
										 |  |  |  | 		const std::vector<Node*>& nodes,	/* <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		int order = 0						/* <20><>Ⱦ˳<C8BE><CBB3> */ | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// ִ<>ж<EFBFBD><D0B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-19 00:50:04 +08:00
										 |  |  |  | 	virtual void runAction( | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 		Action * action | 
					
						
							| 
									
										
										
										
											2017-10-19 00:50:04 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-19 12:47:36 +08:00
										 |  |  |  | 	virtual void resumeAction( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& strActionName | 
					
						
							| 
									
										
										
										
											2017-10-19 12:47:36 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-19 12:47:36 +08:00
										 |  |  |  | 	virtual void pauseAction( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& strActionName | 
					
						
							| 
									
										
										
										
											2017-10-19 12:47:36 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// ֹͣ<CDA3><D6B9><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-19 00:50:04 +08:00
										 |  |  |  | 	virtual void stopAction( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& strActionName | 
					
						
							| 
									
										
										
										
											2018-03-06 09:56:17 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 	virtual Action * getAction( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& strActionName | 
					
						
							| 
									
										
										
										
											2018-03-06 09:56:17 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ<EFBFBD>Ķ<EFBFBD><C4B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 	virtual std::vector<Action*> getActions( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& strActionName | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	virtual void resumeAllActions(); | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// <20><>ͣ<EFBFBD><CDA3><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	virtual void pauseAllActions(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	// ֹͣ<CDA3><D6B9><EFBFBD>ж<EFBFBD><D0B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	virtual void stopAllActions(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20>Ľڵ<C4BD><DAB5><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD>λ<EFBFBD><CEBB>
 | 
					
						
							|  |  |  |  | 	static void setDefaultPiovt( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double defaultPiovtX, | 
					
						
							|  |  |  |  | 		double defaultPiovtY | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>ײ<EFBFBD>壨Ĭ<E5A3A8>ϴ<CFB4>
 | 
					
						
							|  |  |  |  | 	static void setDefaultColliderEnable( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		bool enable | 
					
						
							| 
									
										
										
										
											2018-03-07 20:14:58 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-21 18:22:01 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 	virtual void onDestroy() override; | 
					
						
							| 
									
										
										
										
											2018-04-21 18:22:01 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2017-12-08 15:37:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD>½ڵ<C2BD>
 | 
					
						
							| 
									
										
										
										
											2018-02-06 21:11:54 +08:00
										 |  |  |  | 	void _update(); | 
					
						
							| 
									
										
										
										
											2017-10-14 11:40:47 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>Ⱦ<EFBFBD>ڵ<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	void _render(); | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	// <20><>Ⱦͼ<C8BE><CDBC>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	void _drawCollider(); | 
					
						
							| 
									
										
										
										
											2017-10-29 23:48:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ýڵ<C3BD><DAB5><EFBFBD><EFBFBD>ڳ<EFBFBD><DAB3><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	void _setParentScene( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Scene * scene | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-09 18:22:41 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD><EFBFBD>任
 | 
					
						
							| 
									
										
										
										
											2018-04-24 10:35:58 +08:00
										 |  |  |  | 	void _updateSelfTransform(); | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	// <20><><EFBFBD>½ڵ<C2BD><DAB5><EFBFBD>ά<EFBFBD><CEAC><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-24 10:35:58 +08:00
										 |  |  |  | 	void _updateTransform(); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>½ڵ<C2BD><EFBFBD><CDB8><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-24 10:35:58 +08:00
										 |  |  |  | 	void _updateOpacity(); | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-19 00:00:12 +08:00
										 |  |  |  | 	// <20>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual void _fixedUpdate(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 	String		_name; | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	unsigned	_hashName; | 
					
						
							|  |  |  |  | 	float		_posX; | 
					
						
							|  |  |  |  | 	float		_posY; | 
					
						
							|  |  |  |  | 	float		_width; | 
					
						
							|  |  |  |  | 	float		_height; | 
					
						
							|  |  |  |  | 	float		_scaleX; | 
					
						
							|  |  |  |  | 	float		_scaleY; | 
					
						
							|  |  |  |  | 	float		_rotation; | 
					
						
							|  |  |  |  | 	float		_skewAngleX; | 
					
						
							|  |  |  |  | 	float		_skewAngleY; | 
					
						
							|  |  |  |  | 	float		_displayOpacity; | 
					
						
							|  |  |  |  | 	float		_realOpacity; | 
					
						
							|  |  |  |  | 	float		_pivotX; | 
					
						
							|  |  |  |  | 	float		_pivotY; | 
					
						
							| 
									
										
										
										
											2018-05-08 17:40:36 +08:00
										 |  |  |  | 	int			_nOrder; | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	bool		_visiable; | 
					
						
							|  |  |  |  | 	bool		_autoUpdate; | 
					
						
							|  |  |  |  | 	bool		_needSort; | 
					
						
							|  |  |  |  | 	bool		_needTransform; | 
					
						
							|  |  |  |  | 	bool		_positionFixed; | 
					
						
							|  |  |  |  | 	Collider *	_collider; | 
					
						
							|  |  |  |  | 	Scene *		_parentScene; | 
					
						
							|  |  |  |  | 	Node *		_parent; | 
					
						
							|  |  |  |  | 	D2D1::Matrix3x2F		_initialMatri; | 
					
						
							|  |  |  |  | 	D2D1::Matrix3x2F		_finalMatri; | 
					
						
							|  |  |  |  | 	std::set<unsigned int>	_colliders; | 
					
						
							|  |  |  |  | 	std::vector<Node*>		_children; | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-14 18:43:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | class Sprite : | 
					
						
							|  |  |  |  | 	public Node | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Sprite(); | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Sprite( | 
					
						
							|  |  |  |  | 		Image * image | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Sprite( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& filePath	/* ͼƬ<CDBC>ļ<EFBFBD>·<EFBFBD><C2B7> */ | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Sprite( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		int resNameId,			/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const String& resType	/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	Sprite( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& filePath,	/* ͼƬ<CDBC>ļ<EFBFBD>·<EFBFBD><C2B7> */ | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	Sprite( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		int resNameId,			/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const String& resType,	/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							| 
									
										
										
										
											2017-10-18 01:15:25 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>վ<EFBFBD><D5BE><EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Sprite * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><> Image <20><><EFBFBD><EFBFBD><F3B4B4BD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Sprite * create( | 
					
						
							|  |  |  |  | 		Image * image | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Sprite * create( | 
					
						
							|  |  |  |  | 		const String& filePath	/* ͼƬ<CDBC>ļ<EFBFBD>·<EFBFBD><C2B7> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC>Դ
 | 
					
						
							|  |  |  |  | 	static Sprite * create( | 
					
						
							|  |  |  |  | 		int resNameId,			/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const String& resType	/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Sprite * create( | 
					
						
							|  |  |  |  | 		const String& filePath,	/* ͼƬ<CDBC>ļ<EFBFBD>·<EFBFBD><C2B7> */ | 
					
						
							|  |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC>Դ
 | 
					
						
							|  |  |  |  | 	static Sprite * create( | 
					
						
							|  |  |  |  | 		int resNameId,			/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const String& resType,	/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual ~Sprite(); | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC>ļ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool open( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& filePath | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ<CDBC><C6AC>Դ
 | 
					
						
							|  |  |  |  | 	bool open( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		int resNameId,			/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const String& resType	/* ͼƬ<CDBC><C6AC>Դ<EFBFBD><D4B4><EFBFBD><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2018-03-11 23:56:40 +08:00
										 |  |  |  | 	 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͼƬ
 | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 	bool open( | 
					
						
							| 
									
										
										
										
											2018-03-11 23:56:40 +08:00
										 |  |  |  | 		Image * image | 
					
						
							|  |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-10-26 17:17:30 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-06 11:31:24 +08:00
										 |  |  |  | 	// <20><>ͼƬ<CDBC>ü<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 	void crop( | 
					
						
							| 
									
										
										
										
											2018-02-27 21:07:43 +08:00
										 |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-27 00:16:14 +08:00
										 |  |  |  | 	// <20><>ȡ Image <20><><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual Image * getImage() const; | 
					
						
							| 
									
										
										
										
											2018-02-03 22:04:43 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	// <20><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	virtual void onRender() override; | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-21 18:22:01 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ٶ<EFBFBD><D9B6><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 	virtual void onDestroy() override; | 
					
						
							| 
									
										
										
										
											2018-04-21 18:22:01 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	Image * _image; | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | }; | 
					
						
							| 
									
										
										
										
											2017-10-18 01:15:25 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-14 00:36:01 +08:00
										 |  |  |  | // <20>ı<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | class Text : | 
					
						
							|  |  |  |  | 	public Node | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	class Font | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 	public: | 
					
						
							|  |  |  |  | 		String	family;			// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double	size;			// <20>ֺ<EFBFBD>
 | 
					
						
							|  |  |  |  | 		UINT	weight;			// <20><>ϸֵ
 | 
					
						
							|  |  |  |  | 		bool	italic;			// б<><D0B1>
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	public: | 
					
						
							|  |  |  |  | 		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸֵ
 | 
					
						
							|  |  |  |  | 		enum Weight : UINT | 
					
						
							|  |  |  |  | 		{ | 
					
						
							|  |  |  |  | 			THIN = 100, | 
					
						
							|  |  |  |  | 			EXTRA_LIGHT = 200, | 
					
						
							|  |  |  |  | 			LIGHT = 300, | 
					
						
							|  |  |  |  | 			SEMI_LIGHT = 350, | 
					
						
							|  |  |  |  | 			NORMAL = 400, | 
					
						
							|  |  |  |  | 			MEDIUM = 500, | 
					
						
							|  |  |  |  | 			DEMI_BOLD = 600, | 
					
						
							|  |  |  |  | 			BOLD = 700, | 
					
						
							|  |  |  |  | 			EXTRA_BOLD = 800, | 
					
						
							|  |  |  |  | 			BLACK = 900, | 
					
						
							|  |  |  |  | 			EXTRA_BLACK = 950 | 
					
						
							|  |  |  |  | 		}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	public: | 
					
						
							|  |  |  |  | 		Font(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		Font( | 
					
						
							|  |  |  |  | 			const String& family, | 
					
						
							|  |  |  |  | 			double size = 22, | 
					
						
							|  |  |  |  | 			UINT weight = Font::Weight::NORMAL, | 
					
						
							|  |  |  |  | 			bool italic = false | 
					
						
							|  |  |  |  | 		); | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>ı<EFBFBD><C4B1><EFBFBD><EFBFBD>뷽ʽ
 | 
					
						
							|  |  |  |  | 	enum class Align : int | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		LEFT,		/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		RIGHT,		/* <20>Ҷ<EFBFBD><D2B6><EFBFBD> */ | 
					
						
							|  |  |  |  | 		CENTER		/* <20><><EFBFBD>ж<EFBFBD><D0B6><EFBFBD> */ | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>ı<EFBFBD><C4B1><EFBFBD>ʽ
 | 
					
						
							|  |  |  |  | 	class Style | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 	public: | 
					
						
							|  |  |  |  | 		Color		color;				// <20><>ɫ
 | 
					
						
							|  |  |  |  | 		Align		alignment;			// <20><><EFBFBD>뷽ʽ
 | 
					
						
							|  |  |  |  | 		bool		wrapping;			// <20><><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double		wrappingWidth;		// <20>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>п<EFBFBD><D0BF><EFBFBD>
 | 
					
						
							|  |  |  |  | 		double		lineSpacing;		// <20>м<EFBFBD><D0BC><EFBFBD>
 | 
					
						
							|  |  |  |  | 		bool		hasUnderline;		// <20>»<EFBFBD><C2BB><EFBFBD>
 | 
					
						
							|  |  |  |  | 		bool		hasStrikethrough;	// ɾ<><C9BE><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		bool		hasOutline;			// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 		Color		outlineColor;		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | 
					
						
							|  |  |  |  | 		double		outlineWidth;		// <20><><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD>
 | 
					
						
							|  |  |  |  | 		LineJoin	outlineJoin;		// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཻ<EFBFBD><E0BDBB>ʽ
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	public: | 
					
						
							|  |  |  |  | 		Style(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 		Style( | 
					
						
							|  |  |  |  | 			Color color, | 
					
						
							|  |  |  |  | 			Align alignment = Align::LEFT, | 
					
						
							|  |  |  |  | 			bool wrapping = false, | 
					
						
							|  |  |  |  | 			double wrappingWidth = 0.0, | 
					
						
							|  |  |  |  | 			double lineSpacing = 0.0, | 
					
						
							|  |  |  |  | 			bool hasUnderline = false, | 
					
						
							|  |  |  |  | 			bool hasStrikethrough = false, | 
					
						
							|  |  |  |  | 			bool hasOutline = true, | 
					
						
							|  |  |  |  | 			Color outlineColor = Color(Color::BLACK, 0.5), | 
					
						
							|  |  |  |  | 			double outlineWidth = 1.0, | 
					
						
							|  |  |  |  | 			LineJoin outlineJoin = LineJoin::ROUND | 
					
						
							|  |  |  |  | 		); | 
					
						
							|  |  |  |  | 	}; | 
					
						
							| 
									
										
										
										
											2017-10-17 21:22:25 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | public: | 
					
						
							|  |  |  |  | 	Text(); | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Text( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		const String& text,						/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const Font& font = Font(),				/* <20><><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const Style& style = Style()			/* <20>ı<EFBFBD><C4B1><EFBFBD>ʽ */ | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	static Text * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	static Text * create( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		const String& text,						/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const Font& font = Font(),				/* <20><><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		const Style& style = Style()			/* <20>ı<EFBFBD><C4B1><EFBFBD>ʽ */ | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	virtual ~Text(); | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>ı<EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	String getText() const; | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	Font getFont() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ʽ
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	Style getStyle() const; | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	String getFontFamily() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD>ֺ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	double getFontSize() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸֵ
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	UINT getFontWeight() const; | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | 
					
						
							| 
									
										
										
										
											2018-04-22 13:15:57 +08:00
										 |  |  |  | 	Color getColor() const; | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | 
					
						
							| 
									
										
										
										
											2018-04-22 13:15:57 +08:00
										 |  |  |  | 	Color getOutlineColor() const; | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD>
 | 
					
						
							|  |  |  |  | 	double getOutlineWidth() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཻ<EFBFBD><E0BDBB>ʽ
 | 
					
						
							| 
									
										
										
										
											2018-04-24 21:22:34 +08:00
										 |  |  |  | 	LineJoin getOutlineJoin() const; | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-09 01:07:49 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	int getLineCount() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	// <20>Ƿ<EFBFBD><C7B7><EFBFBD>б<EFBFBD><D0B1>
 | 
					
						
							|  |  |  |  | 	bool isItalic() const; | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 14:08:29 +08:00
										 |  |  |  | 	// <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾɾ<CABE><C9BE><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool hasStrikethrough() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD>»<EFBFBD><C2BB><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool hasUnderline() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 	// <20>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-22 14:08:29 +08:00
										 |  |  |  | 	bool hasOutline() const; | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD>
 | 
					
						
							|  |  |  |  | 	void setText( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		const String& text | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1><EFBFBD>ʽ
 | 
					
						
							| 
									
										
										
										
											2018-05-10 14:16:36 +08:00
										 |  |  |  | 	void setStyle( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		const Style& style | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	void setFont( | 
					
						
							|  |  |  |  | 		const Font& font | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	void setFontFamily( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		const String& family | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ֺţ<D6BA>Ĭ<EFBFBD><C4AC>ֵΪ 22<32><32>
 | 
					
						
							|  |  |  |  | 	void setFontSize( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		double size | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸֵ<CFB8><D6B5>Ĭ<EFBFBD><C4AC>ֵΪ Text::Font::Weight::NORMAL<41><4C>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	void setFontWeight( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		UINT weight | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB>Ĭ<EFBFBD><C4AC>ֵΪ Color::WHITE<54><45>
 | 
					
						
							|  |  |  |  | 	void setColor( | 
					
						
							| 
									
										
										
										
											2018-04-22 13:15:57 +08:00
										 |  |  |  | 		Color color | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>б<EFBFBD>壨Ĭ<E5A3A8><C4AC>ֵΪ false<73><65>
 | 
					
						
							|  |  |  |  | 	void setItalic( | 
					
						
							|  |  |  |  | 		bool value | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-24 21:22:34 +08:00
										 |  |  |  | 	// <20><EFBFBD><F2BFAABB>ر<EFBFBD><D8B1>ı<EFBFBD><C4B1>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>У<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ<EFBFBD>رգ<D8B1>
 | 
					
						
							|  |  |  |  | 	void setWrapping( | 
					
						
							|  |  |  |  | 		bool wrapping | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ı<EFBFBD><C4B1>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>еĿ<D0B5><C4BF>ȣ<EFBFBD>Ĭ<EFBFBD><C4AC>Ϊ 0<><30>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	void setWrappingWidth( | 
					
						
							| 
									
										
										
										
											2018-05-10 14:16:36 +08:00
										 |  |  |  | 		double wrappingWidth | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>м<EFBFBD><D0BC>ࣨĬ<E0A3A8><C4AC>Ϊ 0<><30>
 | 
					
						
							|  |  |  |  | 	void setLineSpacing( | 
					
						
							| 
									
										
										
										
											2018-05-10 14:16:36 +08:00
										 |  |  |  | 		double lineSpacing | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ö<EFBFBD><C3B6>뷽ʽ<EBB7BD><CABD>Ĭ<EFBFBD><C4AC>Ϊ Align::LEFT<46><54>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	void setAlignment( | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		Align align | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>»<EFBFBD><C2BB>ߣ<EFBFBD>Ĭ<EFBFBD><C4AC>ֵΪ false<73><65>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	void setUnderline( | 
					
						
							|  |  |  |  | 		bool hasUnderline | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>ɾ<EFBFBD><C9BE><EFBFBD>ߣ<EFBFBD>Ĭ<EFBFBD><C4AC>ֵΪ false<73><65>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 01:41:29 +08:00
										 |  |  |  | 	void setStrikethrough( | 
					
						
							|  |  |  |  | 		bool hasStrikethrough | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-04-22 14:08:29 +08:00
										 |  |  |  | 	void setOutline( | 
					
						
							|  |  |  |  | 		bool hasOutline | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | 
					
						
							|  |  |  |  | 	void setOutlineColor( | 
					
						
							| 
									
										
										
										
											2018-04-22 13:15:57 +08:00
										 |  |  |  | 		Color outlineColor | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߿<EFBFBD>
 | 
					
						
							|  |  |  |  | 	void setOutlineWidth( | 
					
						
							|  |  |  |  | 		double outlineWidth | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ཻ<EFBFBD><E0BDBB>ʽ
 | 
					
						
							|  |  |  |  | 	void setOutlineJoin( | 
					
						
							| 
									
										
										
										
											2018-04-24 21:22:34 +08:00
										 |  |  |  | 		LineJoin outlineJoin | 
					
						
							| 
									
										
										
										
											2018-04-22 00:33:20 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	// <20><>Ⱦ<EFBFBD><C8BE><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | 	virtual void onRender() override; | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-30 16:45:38 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	void _reset(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>ʽ<EFBFBD><CABD>
 | 
					
						
							|  |  |  |  | 	void _createFormat(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-03-30 23:37:42 +08:00
										 |  |  |  | 	void _createLayout(); | 
					
						
							| 
									
										
										
										
											2017-10-18 22:13:20 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	String	_text; | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 	Font	_font; | 
					
						
							|  |  |  |  | 	Style	_style; | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	IDWriteTextFormat * _textFormat; | 
					
						
							|  |  |  |  | 	IDWriteTextLayout * _textLayout; | 
					
						
							| 
									
										
										
										
											2017-10-15 23:58:39 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | class Button : | 
					
						
							|  |  |  |  | 	public Node | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Button(); | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Button( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Button( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * selected,				/* <20><><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Button( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * mouseover,				/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * selected,				/* <20><><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Button( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * mouseover,				/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * selected,				/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * disabled,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>հ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static Button * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static Button * create( | 
					
						
							|  |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static Button * create( | 
					
						
							|  |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * selected,				/* <20><><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static Button * create( | 
					
						
							|  |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * mouseover,				/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * selected,				/* <20><><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static Button * create( | 
					
						
							|  |  |  |  | 		Node * normal,					/* <20><>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * mouseover,				/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * selected,				/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * disabled,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1>ť״̬<D7B4><CCAC><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB>ǽ<EFBFBD><C7BD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isEnable() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	void setEnable( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		bool enable | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void setNormal( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * normal | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴ťʱ<C5A5><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void setMouseOver( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * mouseover | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 17:56:04 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD>°<EFBFBD>ťʱ<C5A5><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void setSelected( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * selected | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void setDisabled( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * disabled | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 17:56:04 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-03-31 18:12:01 +08:00
										 |  |  |  | 	void setClickFunc( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		const Function& func | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-03-31 11:59:51 +08:00
										 |  |  |  | 	// <20><>ť״̬ö<CCAC><C3B6>
 | 
					
						
							| 
									
										
										
										
											2018-04-24 21:22:34 +08:00
										 |  |  |  | 	enum class ButtonState { NORMAL, MOUSEOVER, SELECTED }; | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť״̬
 | 
					
						
							| 
									
										
										
										
											2018-04-24 21:22:34 +08:00
										 |  |  |  | 	virtual void _setState(ButtonState state); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// ˢ<>°<EFBFBD>ť<EFBFBD><C5A5>ʾ
 | 
					
						
							|  |  |  |  | 	virtual void _updateVisiable(); | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 17:56:04 +08:00
										 |  |  |  | 	// ִ<>а<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void _runCallback(); | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-19 00:00:12 +08:00
										 |  |  |  | 	// <20><><EFBFBD>°<EFBFBD>ť״̬
 | 
					
						
							|  |  |  |  | 	virtual void _fixedUpdate() override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	Node *		_normal; | 
					
						
							|  |  |  |  | 	Node *		_mouseover; | 
					
						
							|  |  |  |  | 	Node *		_selected; | 
					
						
							|  |  |  |  | 	Node *		_disabled; | 
					
						
							|  |  |  |  | 	bool		_enable; | 
					
						
							|  |  |  |  | 	bool		_isSelected; | 
					
						
							|  |  |  |  | 	ButtonState	_state; | 
					
						
							| 
									
										
										
										
											2018-05-08 20:03:29 +08:00
										 |  |  |  | 	Function	_func; | 
					
						
							| 
									
										
										
										
											2017-10-21 19:09:31 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | class ButtonToggle : | 
					
						
							|  |  |  |  | 	public Button | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	ButtonToggle(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	ButtonToggle( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	ButtonToggle( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * onSelected,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offSelected,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	ButtonToggle( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * onMouseOver,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offMouseOver,			/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * onSelected,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offSelected,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	ButtonToggle( | 
					
						
							| 
									
										
										
										
											2018-05-08 11:37:11 +08:00
										 |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * onMouseOver,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offMouseOver,			/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * onSelected,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offSelected,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * onDisabled,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offDisabled,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>յĿ<D5B5><C4BF>ذ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static ButtonToggle * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static ButtonToggle * create( | 
					
						
							|  |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static ButtonToggle * create( | 
					
						
							|  |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * onSelected,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offSelected,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static ButtonToggle * create( | 
					
						
							|  |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * onMouseOver,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offMouseOver,			/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * onSelected,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offSelected,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ذ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	static ButtonToggle * create( | 
					
						
							|  |  |  |  | 		Node * onNormal,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * offNormal,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ͨ״̬ */ | 
					
						
							|  |  |  |  | 		Node * onMouseOver,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offMouseOver,			/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * onSelected,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offSelected,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>갴<EFBFBD><EAB0B4>״̬ */ | 
					
						
							|  |  |  |  | 		Node * onDisabled,				/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		Node * offDisabled,				/* <20><>ť<EFBFBD>ر<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ */ | 
					
						
							|  |  |  |  | 		const Function& func = nullptr	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD>к<EFBFBD><D0BA><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD><F2BFAABB>رգ<D8B1>
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	bool getState() const; | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ÿ<EFBFBD><C3BF>ذ<EFBFBD>ť<EFBFBD><C5A5>״̬<D7B4><CCAC><EFBFBD><EFBFBD><F2BFAABB>رգ<D8B1>
 | 
					
						
							|  |  |  |  | 	void setState( | 
					
						
							|  |  |  |  | 		bool bState | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	virtual void setNormal( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * normal | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	) override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴ťʱ<C5A5><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	virtual void setMouseOver( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * mouseover | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	) override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 17:56:04 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD><EFBFBD>갴<EFBFBD>°<EFBFBD>ťʱ<C5A5><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void setSelected( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * selected | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	) override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	virtual void setDisabled( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * disabled | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	) override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD>ر<EFBFBD>״̬<D7B4><CCAC><EFBFBD><EFBFBD>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	void setNormalOff( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * normal | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD>ر<EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴ťʱ<C5A5><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	void setMouseOverOff( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * mouseover | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 17:56:04 +08:00
										 |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD>ر<EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD><EFBFBD>갴<EFBFBD>°<EFBFBD>ťʱ<C5A5><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	void setSelectedOff( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * selected | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ð<EFBFBD>ť<EFBFBD>ر<EFBFBD>״̬<D7B4>£<EFBFBD><C2A3><EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ʾ<EFBFBD>İ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	void setDisabledOff( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Node * disabled | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	// ˢ<>°<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2018-02-04 21:24:27 +08:00
										 |  |  |  | 	virtual void _updateState(); | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-28 17:56:04 +08:00
										 |  |  |  | 	// ִ<>а<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | 	virtual void _runCallback() override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	Node *	_normalOff; | 
					
						
							|  |  |  |  | 	Node *	_mouseoverOff; | 
					
						
							|  |  |  |  | 	Node *	_selectedOff; | 
					
						
							|  |  |  |  | 	Node *	_disabledOff; | 
					
						
							|  |  |  |  | 	bool	_toggle; | 
					
						
							| 
									
										
										
										
											2017-11-07 22:20:46 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | class Menu : | 
					
						
							|  |  |  |  | 	public Node | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Menu(); | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 	Menu( | 
					
						
							| 
									
										
										
										
											2018-05-10 17:02:18 +08:00
										 |  |  |  | 		const std::vector<Button*>& buttons	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2018-05-10 00:58:43 +08:00
										 |  |  |  | 	); | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ղ˵<D5B2>
 | 
					
						
							|  |  |  |  | 	static Menu * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>˵<EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Menu * create( | 
					
						
							|  |  |  |  | 		const std::vector<Button*>& buttons	/* <20><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD>˵<EFBFBD><CBB5>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	bool isEnable() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD>˵<EFBFBD><CBB5>еİ<D0B5>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	size_t getButtonCount() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ò˵<C3B2><CBB5><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	void setEnable( | 
					
						
							|  |  |  |  | 		bool enable | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>Ӱ<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	void addButton( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Button * button | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>Ƴ<EFBFBD><C6B3><EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	bool removeButton( | 
					
						
							| 
									
										
										
										
											2018-02-07 16:37:12 +08:00
										 |  |  |  | 		Button * button | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-10 14:16:36 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD>а<EFBFBD>ť
 | 
					
						
							|  |  |  |  | 	const std::vector<Button*>& getAllButtons() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	bool _enable; | 
					
						
							|  |  |  |  | 	std::vector<Button*> _buttons; | 
					
						
							| 
									
										
										
										
											2017-11-07 23:32:44 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-12 23:34:13 +08:00
										 |  |  |  | } |