Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 24 to 43 of 43 · Previous page · First page

This is a tip for those who bought this awesome script. You can get more "slippery" effect by using a rounded collision mask and increasing _max_scan_angle.

does this include movement for going up and down sideways sets of stairs?

You can fake it with two ramps above and below each other like the angled path to the right in the demo.  Beyond that, no.

Hey pixelatedpope, Your script uses place_meeting ffunctions to check collisions or place_free+solid black box? I'd like to know that before buy. 

(+1)

place_meeting.  It can also be converted to use tile collisions (there's a blog about it posted here)

Ohoho Nice! I can adapt it to a custom place_meeting function!

Thanks Pixelated!

Hi

I want to ask,
if your assets are on some license?
Or if i made game for sale, could i still use it
with no extra payment? 

(+1)

Yup!  You can use them in any project: personal or commercial.  The only restriction is sort of the obvious one: don't buy the package and then turn around and re-sell it.  That's a real dick move :D

Is this easily compatible with your True State asset? Thanks!

Yup!  Totally compatible!

Hello,

I don't suppose you have a tutorial, do you?  I am trying to figure out what parts of the code I need for my keyboard controlled top-down game.  My hope is to use the Basic code.  I understand some of what I need, but maybe not all of it, or where it should all go.  

I have placed movement_and_collision(dir,walkSpeed,oWall); in my oPlayer's Step event, and have copied the movement_and_collision Script into my own project.  Do I need the General Helpers or Vec2 scripts?  Is there other movement and/or collision code I need elsewhere.  What I have done doesn't seem to work.

I apologize for my ignorance.  I'm trying to figure this out, and there are very little comments within the code.  Any advice would be appreciated.  

Thanks so much!

(1 edit)

Yeah, sorry, a tutorial is planned but on the back-burner a bit.

Ultimately the only thing you NEED is to call the script.
You do the work to determine the direction you want the character to move in.
You do the work to determine the speed you want the character to move.

Pass both of those to the script and it will take care of the rest.

So the absolutely easiest implementation would be this:

var _hori = keyboard_check(vk_right) - keyboard_check(vk_left);
var _vert = keyboard_check(vk_down) - keyboard_check(vk_up);

var _dir = -1;
if(point_distance(0,0,_hori,_vert) > 0) {
    _dir = point_direction(0,0,_hori,_vert);
}
movement_and_collision(_dir,walkSpeed,oWall)

If you have further questions, feel free to hit me up on Discord.  DMs are open to anyone who has joined the GMS Discord Server: https://discord.gg/By6u9pC

Hi! 

This asset is great! It makes collisions feel much less clunky, I'll probably continue to use it for quickly jumping into top-down games for ages. 

One question though; how can I make the script work with BOTH tiles and objects at the same time? Tiles is great for just about everything, but I usually use objects for destructible obstacles.

I recommend moving to tiles for destructible objects, honestly.  It's very easy to add and remove tiles to and from your collision layer.

That being said, you could add a place_meeting near where the tile_meeting check is, and it must pass both of them to return no collision.

Oh!

Thank you so much. Whenever I've tried to detect both objects and tiles before in one check it would go completely wrong. I was checking or instead of and, which usually resulted in players that can't move at all.

Adding and removing tiles would work in most cases, but I like the destructible objects to have their sprites collision masks, and be able to be freely positioned. With tiles I would need need to stick to the grid(and tile size), and every object that has a unique collision requires me to change my tile sprites, which I can see being tedious.

It still helps performance, since the amount of collision objects is going to be so small.

Hi PixelatedPope,

First, thanks for all you do for the GM community. Can you help me with something I don't quite understand with this method (which looks awesome btw)? In tile_meeting_precise you use place_meeting with precise collision checking selected for the obj_tile_wall collision type. First question: to use precise collision checking, both the obj_tile_wall and the calling instance have to have precise selected under the type of collision mask, right? That's what the manual says for place_meeting (http://127.0.0.1:51291/index.htm#t=...rhsearch=place_meeting&rhhlterm=place_meeting). That would make the collision mask identical to the shape of the sprite, right? If that's right, how did you get the collision mask in the example game above to not include the sprite's hair? Are there two objects (the character and the green box) that move together with only one (the green box) checking for precise collisions? This is obviously important for our favorite genre of game (2.5d top-down) as you don't want the character's head running into wall above him which would undermine the fake 3d look. I don't see how this problem is solved just given the code above.

The player object has "collision mask" assigned to it.  This is set in the object panel just below where you assign the sprite.  

The object will use the assigned sprite's mask for all collision checks.  You can also do this yourself by setting the "mask_index" variable to any sprite.

In the draw event I then draw the mask index with draw_sprite(mask_index,0,x,y) at a 50% alpha and then draw the normal character sprite on top.  This way I know the mask is lined up and positioned to the character as I expect.

Thanks and I'll post this clarification in the yoyo forums so you don't have to! Just to make sure I've understood you, you are using a different sprite for the collision mask (the green square). But is it still true that the instance calling tile_meeting_precise also needs its collision mask type set to precise per frame (as place_meeting says it does)? Otherwise it won't work, right?

I think I get it now but honestly it's pretty crucial to the setup that we understand that any moving objects calling this function are likely to need a separate sprite for their collision mask and both the calling instance and the checker object need to have precise per frame turned on (not just the checker object). Maybe that was obvious to you but not to me because I've never had to do that before; rectangular collision masks always worked fine for me so I just haven't had to do something else. There might be quite a few others that get equally confused when they get everything set up, but haven't picked a different sprite for the collision mask, and find that their character sprite's head is triggering collisions; or, because they didn't turn on precise per frame in their character object, bounding boxes end getting used instead of precise checking. I don't know if you can edit the yoyoblog post to clarify that now but it might help others avoid some headaches. Awesome job though! I really like how this method combines the best of different approaches!

Hey, thanks for the feedback. I explain this stuff waaaaaaay back in my old top down movement and collision video, but you are right: an update is long overdue.  With the release of 2.3 I'm updating all of my assets and planning comprehensive "getting started with" youtube videos, and this will definitely be included. Sorry for the confusion, hopefully it will be easier to set up in the future!

Hi,

I just bought this (9/15/2020), and was unable to run it properly on GMS 2.3.  It loads the room background and all the GUI, but no character or walls.  Is there something I am doing wrong, or is this a bug caused by 2.3?

Thanks.

(+1)

That is VERY unusual.  I just imported the project into 2.3 and it worked great.  And you are the first to report an issue like this.  Try cleaning and re-building.  If that doesn't work, I'd be interested in seeing your project file.

(+2)

Looks like it was a problem on my end.  My anti-virus was interrupting some GMS functionality.  I've spoken with yoyogames and have resolved the issues.  So now, this file runs GREAT!  thanks again.

(1 edit)

Hi! Would it be possible to re-write this script a bit for 4-directional movement?

Edit: I mean using running left or right sprite for diagonal movement.

Absolutely.  Just alter the switch statement that controls the sprite being used.  Super easy.

Hi, would this script support multiple movement speeds? Such as I'd like to walk slowly/crouch, normal speed, and run.

Thanks.

It does!  There's even a little secret in the demo project.  If you put your mouse cursor over the green square around the character's feet and scrollwheel up or down, it will change his move speed!

Hi! This script works with platformer game too? Thank you!

No, I wouldn't recommend using it for platformers.

Hi Pixel,this asset is wonderful.I do wonder if you ever plan to release this same assest but using tiles one day.Or do you believe disabling Walls outside views will provided the same level of performance, or at least close enough to tiles to not warrant making one.Or perhaps doing this will tiles is just much harder...haha.Anyways thanks for making this!

https://pixelatedpope.itch.io/tdmc/devlog/156556/converting-tdmc-to-use-tiles

(1 edit)

Hi. i trying to use your scripts, it's work, but only if player move on 90 or 45 degree

if i trying to move like ~10-20 degrees, player start shaking so much.

Video:https://streamable.com/mdab2h

Is this any way to fix it? I really hope you can help me.

This may be more related to your camera code than my code.
Likely you need to round your camera's position to match your sub pixel ratio.

Add this script to your project and use it instead of camera_set_view_pos().  I think it'll help.

https://www.dropbox.com/s/v3h86tf2oey6aiu/camera_set_view_pos_subpixel.gml?dl=0

can you please check this project?

https://drive.google.com/open?id=1mmftbs2B8tP3fi35SttBYkO5P-9WuRAr

script for camera does work. I need to free move on X-Y. 

I think it's shaking of player, not camera.

So, sorry, that script was not correct.  There should be a newer version that actually works.  I don't get any problems in your project with or without that script, however.  So there must be more going on.  Can you explain how to reproduce the jitteryness in more detail?

Just repeat like in this video https://streamable.com/mdab2h

You must go in corner and move player(watch for joystick on video!!). Player start shaking if angle of move != 45 or 90.

(+3)

Ah!  Okay!  I think I see the problem.

...you aren't using the script.

You call it in your step event, yes, but you aren't USING it.  You never set movement_direction or move_speed.  And then you have a whole bunch of your own place_meeting calls down below and you set your x and y position manually.

You should almost never be setting your object's x and y position while using this script.  The clamp to keep it in the room is okay, but there should be no need to do additional place_meeting calls for world collision.

(+1)

The asset is great, works like a charme. But one thing is just poking eyes - the lack of comments. If you write a code to someone else, especiallly if you sell  it, then just write  every damn line a comment. So a warning for those, who want to learn something from this code, it's gona be hard, especially for noobs. For that it's 4/5 from me. Despite that, very recomended this asset.

(+1)

Good feedback.  I'll try to provide more comments in the next update.

hey hey! looks like an amazing "just do the damn collisions" script! especially when rapid prototyping. a question though: can you use this with game maker's own vspeed, hspeed and so on? or do i have to use my own separate variables?

You need to use your own separate variables.

The reason is that GM takes the values you've set in those existing speed variables (speed, direction, hspeed, vspeed, friction, gravity) and automatically updates your x and y position between the step event and the end step event.  So using those will mean you will move A: twice as fast and B: through walls.

OK! thanks for the quick reply, cheers!

Hi Pope! I'm confused, is this the same asset as the previous top down collision? or an updated version? I bought the original on the GM Marketplace and it doesn't say theres an updated version.

Good question!  It's an update (a big update), but I'm currently unable to update the package on the Yoyo marketplace at this time (some sort of 500 server error?).  Hit me up on Twitter or Discord and I'll get you a key for this itch version so you can check it out, and hopefully I'll get the update pushed out on Yoyo's marketplace soon.  

Does anyone have a video of this, my computer is down for the count atm and my phone won't run the script.   :(

(+1)

Hello PixelatedPope:

Glad you are still doing well. I am thankful for the work and the tutorials you bring to all of us in the GMS2 community devs. WIll definitely purchase this one and support it.

Stay safe and keep well.

(1 edit)

To the author: Thank you for making this! I look forward to using it.

To everyone else:

If you are making a top-down game, you may ignore this comment, but if you're making a side-scrolling game, then before you decide to not support this asset here's something to consider; this script can actually have functionality outside of top-down games. 

For example if you're making a Metroidvania, and are including an ability that lets players stick to and scale certain types of walls, you could use this top-down collision script to extend that ability to also work on certain background tiles. That way, the background can become a platforming and/or puzzle element.

That is all I had to say. Happy developing~!

----

Spiderball, spiderball, look in the background and there's a wall!

The wall's magnetic, and you stick, so get ready to do a drop kick!

Viewing most recent comments 24 to 43 of 43 · Previous page · First page