Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Teaser] Solid itr/kind: 14 (oh and platforming)
#11
You mean because it stretches below the center?
Then make it ignore any x-z blocking by that itr as long as the center slides over its top.

edit: also requiring all physical objects to have a bdy that does not stretch below their center is an adjustment that makes more sense than requiring to add bdys to all frames.
Reply
Thanks given by: Som1Lse
#12
(09-06-2013, 12:35 PM)YinYin Wrote:  You mean because it stretches below the center?
Then make it ignore any x-z blocking by that itr as long as the center slides over its top.
But then when you go off the platform it will suddenly be in collision again.

(09-06-2013, 12:35 PM)YinYin Wrote:  edit: also requiring all physical objects to have a bdy that does not stretch below their center is an adjustment that makes more sense than requiring to add bdys to all frames.
Currently it doesn't interfere since the bdy is placed at a high y value.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#13
Well what do you do when bdy and itr overlap too far anyway? Do characters get stuck?
I think you should slowly push them outwards thus having a perfect slip if you go off the platform.
Reply
Thanks given by: Som1Lse
#14
(09-06-2013, 12:38 PM)YinYin Wrote:  Well what do you do when bdy and itr overlap too far anyway? Do characters get stuck?
I snap them to the closest position, where they won't be in collision with the platform.

(09-06-2013, 12:38 PM)YinYin Wrote:  I think you should slowly push them outwards thus having a perfect slip if you go off the platform.
I considered something like this, but at the moment most of it was just a sketch, and I settled on what was fastest to code.

If I do implement the outwards push, I might also change the vertical collision.
I will be releasing the source code though, so if you want you can make the edits yourself.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#15
(09-06-2013, 12:49 PM)Someone else Wrote:  
(09-06-2013, 12:38 PM)YinYin Wrote:  Well what do you do when bdy and itr overlap too far anyway? Do characters get stuck?
I snap them to the closest position, where they won't be in collision with the platform. [..] I settled on what was fastest to code.
Right, it shows on the gifs. Not very pretty. But I understand going for the easiest working example first.
Reply
Thanks given by: Som1Lse
#16
Pretty cool I gotta say! You did a very good job there. Adding to YinYin's suggestion: How about you make it such that there is a default bdy located just at the character's center + a special value up on y?
[Image: zeb4IHH.png]
This way, you will save us the trouble of adding special bdys to each and every frame. So what do you say?
[Image: signature.png]
A-Engine: A new beat em up game engine inspired by LF2. Coming soon

A-Engine Dev Blog - Update #8: Timeout

Reply
Thanks given by: Som1Lse
#17
(09-06-2013, 06:26 PM)A-MAN Wrote:  Pretty cool I gotta say! You did a very good job there. Adding to YinYin's suggestion: How about you make it such that there is a default bdy located just at the character's center + a special value up on y?
Because it isn't a solution to the problem.
The problem isn't that it can only handle collision between bdys and itr/kind: 14. The problem is that it might cause some weird behaviour if it was done the way YinYin suggested, with the current implementation of the code.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#18
Well, I don't know if that's at least a little bit feasible, but can you define bdy's "on the fly"? Ie. a 1px bdy-area that can somehow interact with the platform.
Silverthorn / Blue Phoenix
~ Breaking LFE since 2008 ~

"Freeze, you're under vrest!" - Mark, probably.

» Gallery | » Sprites | » DeviantArt
Reply
Thanks given by: Som1Lse
#19
(09-06-2013, 06:53 PM)Blue Phoenix Wrote:  Well, I don't know if that's at least a little bit feasible, but can you define bdy's "on the fly"? Ie. a 1px bdy-area that can somehow interact with the platform.
Depends on what you mean with "on the fly".
You can create bdys and add them to frames, with a dll. If you did this it would interact with the platform.
You can also hardcode it into the dll that every frame has a bdy with "x: centerx and y: centery", but then it would be easier and better to not use bdys for platforming collision, and rewrite that part of the code.
Age ratings for movies and games (and similar) have never been a good idea.
One can learn a lot from reinventing wheels.
An unsound argument is not the same as an invalid one.
volatile in C++ does not mean thread-safe.
Do not make APIs unnecessarily asynchronous.
Make C++ operator > again
Trump is an idiot.
Reply
Thanks given by:
#20
here is a post of all the troubles i met when playing with platforms, some with solutions i chose

note: "character" can actually be any object, which itself may be a platform

standing on the edge of a platform, and the character's footprint shrinks to make him not stand on the platform -> force a staticly sized footprint per character

standing beside a platform, and the character's bdy "grows" into the platform because the character changes to a different frame -> statically sized bounding box for the character's bdy (also solves the dash-into-a-platform-and-your-character-moves-fuzzily problem)

walking right into a platform on your right, and you walk left, but when facing left, your bdy extends backwards (to the right) and "into" the platform -> only check collision for the "front face" of the direction your character is moving with the platform. not fool proof, so i made the character's bounding body symmetrically mirrored.

stacking platforms -> every object stores the y value of the highest platform beneath it (floor value). you cannot move beneath this value.

walking up sloping platforms / stairs / ramps -> not solved

treadmill platforms (standing on it moves your character, kind of like the boat in Kingdom LF2) -> not yet solved

moving platforms (super magical stuff)
standing on a platform, and the platform moves downwards -> should we glue the character to the platform? should we make the character go "in the air" if the platform moves down faster than gravity pulls the character down?

standing on a platform, and the platform moves upwards -> move the character up with the platform

x/z-axis moving platforms -> if the character is on the ground, how much should we glue their movement with the platform's? when the character jumps, how much of the platform's movement should we put into the character?

what if a moving platform squishes you into another platform? -> not solved

what if you are standing on two (or more) different platforms moving different directions? -> not solved

moving platforms with treadmill effects -> not solved

stacked moving platforms -> @.@


would be cool to see your approach on those



Azriel~
Reply
Thanks given by: A-Man , Som1Lse




Users browsing this thread: 2 Guest(s)