Build 10 games and learn game development along the way in this fast paced game development course

Get the source code of 12 commercial games, loaded 50+ million times, and learn the secrets of game design

Learn how to make a successful Flash game from a real world example. Fully commented source code

Create realistic Flash physics games from scratch with advanced features, from Angry Birds to Crush the Castle

Understanding polygon clipping and introducing PolygonClipper AS3 class

This is the second step in the creation of a Box2D (or Nape) destructible terrain without using bitmaps and marching squares rendering.

Let me do a small recap showing you some related, interesting posts about the topic:

* Using marching squares algorithm to trace the contour of an image – to trace the contour of a PNG image with transparency and turn it into a polygon.

* Reduce the number of points in a polygon with the Ramer-Douglas-Peucker algorithm – to reduce the number of points and vertices of the polygon.

* Polygon triangulation: decomposition of a polygon into triangles with AS3 – to split polygons in triangles.

* Create non-convex, complex shapes with Box2D – to make Box2D able to triangulate complex shapes and render them correctly.

* From PNG to Box2D – first attempt – putting all together.

The final example worked, but it did not allow me to create polygon with holes. The final goal of making a destructible terrain is the capability of adding holes in it.

So I played a bit with poly2tri class, which allows holes but does not want holes to overlap or break polygon perimeter.

Next step is using a library which handles polygon clipping. Angus Johnson made a Delphi script which manages difference, intersection, exclusive-or and union between polygons. It’s called Clipper, and has been ported to AS3 by Chris Denham, and it’s really what I need.

With this simple script:

I am able to show you the four ways to perform polygon clipping:

From left to right, top to bottom, respectively intersection, union, difference and xor of two overlapping triangles.

Next step will be managing holes with this class to handle holes and poly2tri to triangulate resulting polygons. And finally we’ll have our Box2D/Nape pure destructible terrain engine.

Game design ideas are welcome, meanwhile download the source code.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (3 votes, average: 5.00 out of 5)
Loading ... Loading ...
Learn how to make a successful commercial Flash game from a real world example: get the fully commented source code of Globez, a Flash game played millions of times which generated a four figure income. Limited copies available.

Get it now
Be my fan on Facebook and follow me on Twitter! Exclusive content for my Facebook fans and Twitter followers

This post has 2 comments

  1. Rahyar

    on June 18, 2013 at 9:25 am

    very good idea
    tanks :)

  2. TheDon

    on June 18, 2013 at 9:42 am

    Dope Stuff, dude … Keep on rocking …

Thank you for the download!!

I hope you will find it useful and make something interesting out of it

To keep up to date with the blog, why don't you like my Facebook page and follow me on Twitter?

Want to learn more? Don't miss this:

Learn how to make a successful commercial Flash game from a real world example: get the fully commented source code of Globez, a Flash game played millions of times which generated a four figure income. Limited copies available.

Get it now

×