Platypus and rotated platforms


#1

I’m playing now with Platypus by @britzl and tried to rotate platforms like this:

platypus

But at some angle, the player is going literally into the platform. I’ve changed collision object of a hero to be a sphere - that helped a litlle bit, but still he can stuck. How can we make him going up the inclined plane basing on collisions?


#2

Thank you for the report. I’ve created a ticket in the repo to track this:

I’ll look into the issue this evening.


#3

Thank you very much! :blush: when this could be improved, I think every surface could be handled! :wink: that’s great! :smiley:


#4

I started working on supporting slopes:

It’s not perfect yet when going down slopes, but I’ll probably be able to tweak it a bit more. You can give it a try on this branch:


#5

I have a strange problem: when the player’s GO is hitting an inclined platform its sprite tilts and unfortunately expands on X axis :thinking:
Then, when it goes down on a horizontal ground, the sprite tilts back, but the scale on X is still the same, so again, when going up the inclined slope the sprite tilts again and stretches even more, so after a couple times it looks like this:

strange

Could I make something wrong or is there a bug? If it is possible I would like to back out tilting the sprite too.


#6

This sounds really really weird. You’re using kinematic collision objects right? There should be no modification of scale or rotation. The fact that the entire game object rotates seems to indicate the use of a dynamic collision object that has some angular velocity applied.


#7

Yes, both hero and ground collision objects are kinematic :confused:

I’ve added this part to the update of the hero’s script:

if self.rot ~= go.get_rotation() then
	print("CHANGE!", go.get_rotation())
end

And in every moment the hero goes on the slope I get:

CHANGE! vmath.quat(0, 0, -0.082228384912014, 0.99540156126022)

And on the horizontal ground again:

CHANGE! vmath.quat(0, 0, 0.082228384912014, 0.99540156126022)


#8

Hmm, are you rotating the game object yourself somehow? There is no code in Platypus that modifies rotation