| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | #pragma once
 | 
					
						
							| 
									
										
										
										
											2018-04-21 21:24:46 +08:00
										 |  |  |  | #include "e2dbase.h"
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace e2d | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-19 00:36:32 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-19 01:10:37 +08:00
										 |  |  |  | class ColliderManager; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-19 00:36:32 +08:00
										 |  |  |  | // <20><>ײ<EFBFBD>¼<EFBFBD>
 | 
					
						
							|  |  |  |  | class Collision | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	friend ColliderManager; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Node * getActiveNode(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>ʱ<EFBFBD>ı<EFBFBD><C4B1><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	static Node * getPassiveNode(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>ж<EFBFBD><D0B6><EFBFBD>ײ<EFBFBD>Ƿ<EFBFBD><C7B7>ɸýڵ<C3BD><DAB5><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD><C7A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>Ľڵ<C4BD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ؿ<F2B7B5BB>
 | 
					
						
							|  |  |  |  | 	static Node * isCausedBy( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>жϷ<D0B6><CFB7><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD>Ľڵ<C4BD><DAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ͬ
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ָ<EFBFBD>룬<EFBFBD><EBA3AC><EFBFBD>ؿ<F2B7B5BB>
 | 
					
						
							|  |  |  |  | 	static Node * isCausedBy( | 
					
						
							|  |  |  |  | 		const String& name | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | private: | 
					
						
							|  |  |  |  | 	static Node * __activeNode; | 
					
						
							|  |  |  |  | 	static Node * __passiveNode; | 
					
						
							|  |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | // <20><>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | class Collider : | 
					
						
							|  |  |  |  | 	public Object | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | 	friend ColliderManager; | 
					
						
							|  |  |  |  | 	friend Node; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | public: | 
					
						
							|  |  |  |  | 	// <20><>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	enum class Type : int | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		RECT,		/* <20><><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		CIRCLE,		/* Բ<><D4B2> */ | 
					
						
							|  |  |  |  | 		ELLIPSE		/* <20><>Բ<EFBFBD><D4B2> */ | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ײ<EFBFBD>彻<EFBFBD><E5BDBB><EFBFBD><EFBFBD>ϵ
 | 
					
						
							|  |  |  |  | 	enum class Relation : int | 
					
						
							|  |  |  |  | 	{ | 
					
						
							|  |  |  |  | 		UNKNOWN = 0,		/* <20><>ϵ<EFBFBD><CFB5>ȷ<EFBFBD><C8B7> */ | 
					
						
							| 
									
										
										
										
											2018-05-19 00:36:32 +08:00
										 |  |  |  | 		DISJOIN = 1,		/* û<>н<EFBFBD><D0BD><EFBFBD> */ | 
					
						
							| 
									
										
										
										
											2018-05-17 15:22:14 +08:00
										 |  |  |  | 		IS_CONTAINED = 2,	/* <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		CONTAINS = 3,		/* <20><>ȫ<EFBFBD><C8AB><EFBFBD><EFBFBD> */ | 
					
						
							|  |  |  |  | 		OVERLAP = 4			/* <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD> */ | 
					
						
							|  |  |  |  | 	}; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | public: | 
					
						
							|  |  |  |  | 	Collider(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	virtual ~Collider(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD>ϵ
 | 
					
						
							| 
									
										
										
										
											2018-04-24 21:22:34 +08:00
										 |  |  |  | 	virtual Relation getRelationWith( | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 		Collider * pCollider | 
					
						
							|  |  |  |  | 	) const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD>ڵ<EFBFBD>
 | 
					
						
							|  |  |  |  | 	Node * getParentNode() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-22 13:15:57 +08:00
										 |  |  |  | 	// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɫ
 | 
					
						
							|  |  |  |  | 	Color getColor() const; | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	// <20><><EFBFBD>û<EFBFBD><C3BB>رո<D8B1><D5B8><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	virtual void setEnable( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		bool enable | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD>Ŀɼ<C4BF><C9BC><EFBFBD>
 | 
					
						
							|  |  |  |  | 	void setVisiable( | 
					
						
							|  |  |  |  | 		bool bVisiable | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>ɫ
 | 
					
						
							|  |  |  |  | 	void setColor( | 
					
						
							| 
									
										
										
										
											2018-04-22 13:15:57 +08:00
										 |  |  |  | 		Color color | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD>ô<EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	void setAutoResize( | 
					
						
							| 
									
										
										
										
											2018-05-07 15:48:06 +08:00
										 |  |  |  | 		bool enable | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ ID2D1Geometry <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual ID2D1Geometry * getD2dGeometry() const = 0; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	// ת<><D7AA><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	virtual void _transform(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
 | 
					
						
							|  |  |  |  | 	virtual void _resize() = 0; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>Ⱦ<EFBFBD><C8BE>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	virtual void _render(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	bool	_enable; | 
					
						
							|  |  |  |  | 	bool	_visiable; | 
					
						
							|  |  |  |  | 	bool	_autoResize; | 
					
						
							|  |  |  |  | 	Color	_color; | 
					
						
							|  |  |  |  | 	Node *	_parentNode; | 
					
						
							|  |  |  |  | 	ID2D1TransformedGeometry * _transformed; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | class ColliderRect : | 
					
						
							|  |  |  |  | 	public Collider | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	ColliderRect(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	ColliderRect( | 
					
						
							|  |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	ColliderRect( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ĭ<EFBFBD>Ͼ<EFBFBD><CFBE><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderRect * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͻ<EFBFBD><CFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϳ<EFBFBD><CDBF>ߴ<EFBFBD><DFB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderRect * create( | 
					
						
							|  |  |  |  | 		double x, | 
					
						
							|  |  |  |  | 		double y, | 
					
						
							|  |  |  |  | 		double width, | 
					
						
							|  |  |  |  | 		double height | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ͽڵ<CDBD>λ<EFBFBD>ô<EFBFBD>С<EFBFBD><D0A1>ͬ<EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderRect * create( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual ~ColliderRect(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20>ľ<DEB8><C4BE><EFBFBD><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>С
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	void setRect( | 
					
						
							|  |  |  |  | 		double left, | 
					
						
							|  |  |  |  | 		double top, | 
					
						
							|  |  |  |  | 		double right, | 
					
						
							|  |  |  |  | 		double bottom | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ ID2D1Geometry <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual ID2D1RectangleGeometry * getD2dGeometry() const override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
 | 
					
						
							|  |  |  |  | 	virtual void _resize(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	ID2D1RectangleGeometry * _d2dRectangle; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | // Բ<><D4B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | class ColliderCircle : | 
					
						
							|  |  |  |  | 	public Collider | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	ColliderCircle(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	ColliderCircle( | 
					
						
							|  |  |  |  | 		Point center, | 
					
						
							|  |  |  |  | 		double radius | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	ColliderCircle( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ĭ<EFBFBD><C4AC>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderCircle * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>Բ<EFBFBD>ĺͰ뾶<CDB0><EBBEB6><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderCircle * create( | 
					
						
							|  |  |  |  | 		Point center, | 
					
						
							|  |  |  |  | 		double radius | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ͽڵ<CDBD>λ<EFBFBD>ô<EFBFBD>С<EFBFBD><D0A1>ͬ<EFBFBD><CDAC>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderCircle * create( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual ~ColliderCircle(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><EFBFBD>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>С
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	void setCircle( | 
					
						
							|  |  |  |  | 		Point center, | 
					
						
							|  |  |  |  | 		double radius | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ ID2D1Geometry <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual ID2D1EllipseGeometry * getD2dGeometry() const override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
 | 
					
						
							|  |  |  |  | 	virtual void _resize(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	ID2D1EllipseGeometry * _d2dCircle; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | // <20><>Բ<EFBFBD><D4B2><EFBFBD><EFBFBD>ײ<EFBFBD><D7B2>
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | class ColliderEllipse : | 
					
						
							|  |  |  |  | 	public Collider | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  | public: | 
					
						
							|  |  |  |  | 	ColliderEllipse(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	ColliderEllipse( | 
					
						
							|  |  |  |  | 		Point center, | 
					
						
							|  |  |  |  | 		double radiusX, | 
					
						
							|  |  |  |  | 		double radiusY | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	ColliderEllipse( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>Ĭ<EFBFBD><C4AC><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderEllipse * create(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>Բ<EFBFBD>ĺͰ뾶<CDB0><EBBEB6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderEllipse * create( | 
					
						
							|  |  |  |  | 		Point center, | 
					
						
							|  |  |  |  | 		double radiusX, | 
					
						
							|  |  |  |  | 		double radiusY | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD>ͽڵ<CDBD>λ<EFBFBD>ô<EFBFBD>С<EFBFBD><D0A1>ͬ<EFBFBD><CDAC><EFBFBD><EFBFBD>Բ<EFBFBD><D4B2>ײ<EFBFBD><D7B2>
 | 
					
						
							|  |  |  |  | 	static ColliderEllipse * create( | 
					
						
							|  |  |  |  | 		Node * node | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	virtual ~ColliderEllipse(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-17 12:22:52 +08:00
										 |  |  |  | 	// <20><EFBFBD><DEB8><EFBFBD>Բ<EFBFBD><D4B2>ײ<EFBFBD><D7B2><EFBFBD><EFBFBD>С
 | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | 	void setEllipse( | 
					
						
							|  |  |  |  | 		Point center, | 
					
						
							|  |  |  |  | 		double radiusX, | 
					
						
							|  |  |  |  | 		double radiusY | 
					
						
							|  |  |  |  | 	); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | 	// <20><>ȡ ID2D1Geometry <20><><EFBFBD><EFBFBD>
 | 
					
						
							|  |  |  |  | 	virtual ID2D1EllipseGeometry * getD2dGeometry() const override; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							|  |  |  |  | 	// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С
 | 
					
						
							|  |  |  |  | 	virtual void _resize(); | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | protected: | 
					
						
							| 
									
										
										
										
											2018-05-09 00:34:15 +08:00
										 |  |  |  | 	ID2D1EllipseGeometry * _d2dEllipse; | 
					
						
							| 
									
										
										
										
											2018-04-02 23:01:38 +08:00
										 |  |  |  | }; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | } |