17,276

Views

Beginner

Level

9

Comments

Setting Tile Collision Shapes

by Jon (Updated on 2014-01-27)


Note: If you're coming here from the Tiles and Tilesets article, read on. If you found this through a search, we urge you to read the main Tiles article first.

 

Contents

  • Introduction
  • Setting the Collision Shape
  • Custom Collision Shapes
  • Boxes
  • Polygons

 

Introduction

Tiles can take on more than just square shapes or blank areas. You can define different kinds of boxes, slopes (triangles) or even arbitrary polygons.

 

Setting the Collision Shape

Suppose that we want to set the collision shape for the tile selected below. It's a sloped tile at about a 60 degree grade.

1) To set the collision shape, go over to the Collision Bounds window, scroll using the scroll bars to find the shape you need, and click on it.

Tip: You can edit the collision shapes for multiple tiles at a time if you select multiple tiles in the left (tiles) pane. You can do this by clicking and dragging to expand your selection rectangle.

2) Save your Tileset to confirm the changes.

Tip: If you've placed a tile inside a scene and change its collision bounds, you'll need to open that scene and save it to make the change get reflected.

 

Custom Collision Shapes

Sometimes you will need a custom collision shape for a tile that isn't reflected in any of the standard shapes we provide.

If this is the case, you can define a Custom Collision Shape by clicking on the + button. You can create either a Box or a Polygon.

 

Box Shapes

X and Y dictate the relative position of the box, in case you want it to be shifted off the origin (0,0).

All values are in percentages (0 - 100 inclusive). We do this, so that you don't have to worry about how big the tiles are.

 

Polygon Shapes

Create a Polygon by defining points and setting their x,y values, either through the table or through drag and drop. A polygon must have 3 or more points but no more than 12.

Note: Define points in counter-clockwise order. If you don't, the engine may crash and warn you about a polygon having negative area.

Gotcha: Only convex polygons are supported. Do not enter in a concave polygon such as an "L" shape. If at all possible, break up concave polygon into 2 or more convex polygons instead.
Disclaimer: All articles are geared towards Stencyl 3.0 and above. Use comments to provide feedback and point out issues with the article (typo, wrong info, etc.). If you're seeking help for your game, please ask a question on the forums. Thanks!

9 Comments

Hairball
I had some of the problems people have above. My tileset that I used had the 'floor' tiles (ie tiles you should be able to walk on) set to collide. I had to turn them off in the tileset to make my character able to collide with everything else. What was happening is that since ALL my tiles had collision boxes, the game was making one giant collision box (that I started inside). Since I was inside it already I wasn't colliding.

Now I'm having trouble though. I have a tile that I want to be half a box tall. In other words, the graphic only takes up half the tile, so I should be able to walk in the other half. For some reason, my actor's head still bumps up against the edge of the tile even though I've made a box that's way smaller than that.

0 1 month, 1 week ago
Jon
Correct. I've called that solution at more more explicitly at the end of the article.
0 5 months, 4 weeks ago
InnerSol
Re: Tinycyborg's issue (creating L shaped walls) - you could use two boxes instead of a convex polygon.
1 6 months, 2 weeks ago
esotericbyte
I am working with the example created in the crash courses to evaluate Stencyl.

The provided tiles I used have a square collision shape. I added some platforms and lowered the gravity. You can jump to them and they usually act as you'd expect.

Unfortunately It's possible for the player actor to be trapped in the tiles that should be
solid and there does not seem to be a way to escape.
What conditions do tiles not work and why?
I am thinking maybe they need to be smaller than the actor or something like that.




0 1 year, 6 months ago
tinycyborg
Any plans in the future to resolve the convex polygons issue? I am making a top down game and have L shaped "walls" that are bugging out because I am using Convex Polygons...
0 1 year, 8 months ago
Valeriana
Same problem here, but only with the rpg style scenes. To the platformers i dont have the problem

0 1 year, 9 months ago
R3M4RK5
I just happened across Stencyl last night and I've had no problems with using tilesets.

You most likely did not tell your Player actor's collision group to collide with Tiles as well as Actors.

0 2 years, 7 months ago
SG2Tiger
Same here. I'm assuming it's a bug. For the time being, I've created actors with invisible frames and set them as 'walls', placing them over the tiles and using those to provide collision. I hope this gets fixed soon, as filling the scene with actors is just going to make things unnecessarily slow.
1 3 years, 1 month ago
Grimreaper
This doesn't work for me I have to get each tile I want and turn them into to actors for them to have collision. I think I got a broken stencyl and it's driving me mad.
1 3 years, 1 month ago

Sign In to Comment