当前位置: 首页>>代码示例>>C#>>正文


C# Body.createFixture方法代码示例

本文整理汇总了C#中FarseerPhysics.Dynamics.Body.createFixture方法的典型用法代码示例。如果您正苦于以下问题:C# Body.createFixture方法的具体用法?C# Body.createFixture怎么用?C# Body.createFixture使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在FarseerPhysics.Dynamics.Body的用法示例。


在下文中一共展示了Body.createFixture方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: convertPathToEdges

		//Contributed by Matthew Bettcher

		/// <summary>
		/// Convert a path into a set of edges and attaches them to the specified body.
		/// Note: use only for static edges.
		/// </summary>
		/// <param name="path">The path.</param>
		/// <param name="body">The body.</param>
		/// <param name="subdivisions">The subdivisions.</param>
		public static void convertPathToEdges( Path path, Body body, int subdivisions )
		{
			var verts = path.getVertices( subdivisions );
			if( path.isClosed )
			{
				var chain = new ChainShape( verts, true );
				body.createFixture( chain );
			}
			else
			{
				for( int i = 1; i < verts.Count; i++ )
				{
					body.createFixture( new EdgeShape( verts[i], verts[i - 1] ) );
				}
			}
		}
开发者ID:prime31,项目名称:Nez,代码行数:25,代码来源:PathManager.cs

示例2: AttachRectangle

		public static Fixture AttachRectangle( float width, float height, float density, Vector2 offset, Body body, object userData = null )
		{
			var rectangleVertices = PolygonTools.createRectangle( width / 2, height / 2 );
			rectangleVertices.translate( ref offset );
			var rectangleShape = new PolygonShape( rectangleVertices, density );
			return body.createFixture( rectangleShape, userData );
		}
开发者ID:prime31,项目名称:Nez,代码行数:7,代码来源:FixtureFactory.cs

示例3: AttachPolygon

		public static Fixture AttachPolygon( Vertices vertices, float density, Body body, object userData = null )
		{
			if( vertices.Count <= 1 )
				throw new ArgumentOutOfRangeException( nameof( vertices ), "Too few points to be a polygon" );

			var polygon = new PolygonShape( vertices, density );
			return body.createFixture( polygon, userData );
		}
开发者ID:prime31,项目名称:Nez,代码行数:8,代码来源:FixtureFactory.cs

示例4: AttachCircle

		public static Fixture AttachCircle( float radius, float density, Body body, object userData = null )
		{
			if( radius <= 0 )
				throw new ArgumentOutOfRangeException( nameof( radius ), "Radius must be more than 0 meters" );

			var circleShape = new CircleShape( radius, density );
			return body.createFixture( circleShape, userData );
		}
开发者ID:prime31,项目名称:Nez,代码行数:8,代码来源:FixtureFactory.cs

示例5: BreakableBody

		public BreakableBody( World world, IEnumerable<Shape> shapes, Vector2 position = new Vector2(), float rotation = 0 )
		{
			_world = world;
			_world.contactManager.onPostSolve += onPostSolve;
			mainBody = new Body( _world, position, rotation, BodyType.Dynamic );

			foreach( Shape part in shapes )
			{
				Fixture fixture = mainBody.createFixture( part );
				parts.Add( fixture );
			}
		}
开发者ID:prime31,项目名称:Nez,代码行数:12,代码来源:BreakableBody.cs

示例6: AttachEllipse

		public static Fixture AttachEllipse( float xRadius, float yRadius, int edges, float density, Body body, object userData = null )
		{
			if( xRadius <= 0 )
				throw new ArgumentOutOfRangeException( nameof( xRadius ), "X-radius must be more than 0" );

			if( yRadius <= 0 )
				throw new ArgumentOutOfRangeException( nameof( yRadius ), "Y-radius must be more than 0" );

			var ellipseVertices = PolygonTools.createEllipse( xRadius, yRadius, edges );
			var polygonShape = new PolygonShape( ellipseVertices, density );
			return body.createFixture( polygonShape, userData );
		}
开发者ID:prime31,项目名称:Nez,代码行数:12,代码来源:FixtureFactory.cs

示例7: convertPathToPolygon

		/// <summary>
		/// Convert a closed path into a polygon.
		/// Convex decomposition is automatically performed.
		/// </summary>
		/// <param name="path">The path.</param>
		/// <param name="body">The body.</param>
		/// <param name="density">The density.</param>
		/// <param name="subdivisions">The subdivisions.</param>
		public static void convertPathToPolygon( Path path, Body body, float density, int subdivisions )
		{
			if( !path.isClosed )
				throw new Exception( "The path must be closed to convert to a polygon." );

			var verts = path.getVertices( subdivisions );
			var decomposedVerts = Triangulate.convexPartition( new Vertices( verts ), TriangulationAlgorithm.Bayazit );

			foreach( Vertices item in decomposedVerts )
			{
				body.createFixture( new PolygonShape( item, density ) );
			}
		}
开发者ID:prime31,项目名称:Nez,代码行数:21,代码来源:PathManager.cs

示例8: evenlyDistributeShapesAlongPath

		/// <summary>
		/// Duplicates the given Body along the given path for approximatly the given copies.
		/// </summary>
		/// <param name="world">The world.</param>
		/// <param name="path">The path.</param>
		/// <param name="shapes">The shapes.</param>
		/// <param name="type">The type.</param>
		/// <param name="copies">The copies.</param>
		/// <param name="userData"></param>
		/// <returns></returns>
		public static List<Body> evenlyDistributeShapesAlongPath( World world, Path path, IEnumerable<Shape> shapes, BodyType type, int copies, object userData = null )
		{
			List<Vector3> centers = path.subdivideEvenly( copies );
			List<Body> bodyList = new List<Body>();

			for( int i = 0; i < centers.Count; i++ )
			{
				Body b = new Body( world );

				// copy the type from original body
				b.bodyType = type;
				b.position = new Vector2( centers[i].X, centers[i].Y );
				b.rotation = centers[i].Z;
				b.userData = userData;

				foreach( Shape shape in shapes )
				{
					b.createFixture( shape );
				}

				bodyList.Add( b );
			}

			return bodyList;
		}
开发者ID:prime31,项目名称:Nez,代码行数:35,代码来源:PathManager.cs

示例9: AttachCompoundPolygon

		public static List<Fixture> AttachCompoundPolygon( List<Vertices> list, float density, Body body, object userData = null )
		{
			var res = new List<Fixture>( list.Count );

			// Then we create several fixtures using the body
			foreach( var vertices in list )
			{
				if( vertices.Count == 2 )
				{
					var shape = new EdgeShape( vertices[0], vertices[1] );
					res.Add( body.createFixture( shape, userData ) );
				}
				else
				{
					var shape = new PolygonShape( vertices, density );
					res.Add( body.createFixture( shape, userData ) );
				}
			}

			return res;
		}
开发者ID:prime31,项目名称:Nez,代码行数:21,代码来源:FixtureFactory.cs

示例10: AttachLoopShape

		public static Fixture AttachLoopShape( Vertices vertices, Body body, object userData = null )
		{
			var shape = new ChainShape( vertices, true );
			return body.createFixture( shape, userData );
		}
开发者ID:prime31,项目名称:Nez,代码行数:5,代码来源:FixtureFactory.cs

示例11: AttachEdge

		public static Fixture AttachEdge( Vector2 start, Vector2 end, Body body, object userData = null )
		{
			var edgeShape = new EdgeShape( start, end );
			return body.createFixture( edgeShape, userData );
		}
开发者ID:prime31,项目名称:Nez,代码行数:5,代码来源:FixtureFactory.cs


注:本文中的FarseerPhysics.Dynamics.Body.createFixture方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。