Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to draw custom shapes using a simple texture in libgdx?

I want to draw custom static shapes in my game just like the angry birds done: angry birds

but the problem is that the texture is in square shape.

static ground

how we can tell to the "SpriteBatch" to draw shapes with some vertices? does anybody has some ideas?

like image 277
Aliaaa Avatar asked May 11 '12 08:05

Aliaaa


1 Answers

According to the docs:

A SpriteBatch is used to draw 2D rectangles that reference a texture (region)

So essentially, this method does not allow you to specify any other geometry than a rectangle. However, there is a draw method that allows you to specify the four coordinates of the "rectangle" and turn it into something else. You'd've to decompose the geometry into smaller pieces that fits this primitives. Looks like this method doesn't lend itself to geometry changes.

Better you create a mesh and just draw it. The mesh does not support triangulation, so use the ObjLoader.loadObj* methods to load a mesh in Alias Wavefront OBJ format. Specifying the geometry shouldn't be a hassle; the article links to some example files.

like image 108
Stefan Hanke Avatar answered Oct 24 '22 15:10

Stefan Hanke