Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dash Through Design Conundrums #13

Open
becomingplural opened this issue Mar 10, 2023 · 0 comments
Open

Dash Through Design Conundrums #13

becomingplural opened this issue Mar 10, 2023 · 0 comments

Comments

@becomingplural
Copy link
Owner

The dash mechanic in platformer+ is unique in that it can traverse more than one tile in a single frame. Indeed, the dash can traverse many tiles. This has consequences for colliding with actors, for colliding with walls, and colliding with triggers. These are dealt with in three different ways.

For walls, the dash calculates collisions at each tile step along the path.
For actors, because of the computation required to do overlap checks, any actors that are passed over are simply ignored.
Triggers are the oddball. They can be checked in a relatively straightforward manner. However, that raises a number of different questions about how they should be handled.

  1. Should the player stop when hitting a trigger? Presumably not, because a) the designer can force stop if they want; b) many triggers aren't directly related to player movement and it would be awkward to freeze them. BUT THEN:
  2. If the player traverses across a trigger without colliding with it, should the trigger run anyways? Seemingly yes, because there is already an option for ignoring triggers while dashing. However, that raises more questions. The most important is how it should handle passing over multiple triggers. Should it try to capture and run all of them? Should it only capture the first one? Should it run the last one? What happens if it passes through one and then ends in another? If it tries to run them all, is the potential frame lag worth it?

Currently, it's just shooting past the triggers because the old method was causing errors. But I don't think that's ideal.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant