Problems with collisions
-
I think that works as intended. You have one way, where Fuze detects and you code the effects. Maybe you want to bounce the player or teleport him. The other is use Fuze built-in effect of blocking pathing.
-
@landein207 i think its just a matter of getting used to how you set out code, il be less busy tomorrow if you wanted me to share a program demonstrating how to work with collision ?
-
Yes plz that may help me
-
Ok i was testing the controls with setspritespeed instead of setspritelocation the collision works but the movement looks like sliding in ice.
how can i avoid that effect in the movement? -
I’ve never used setspritespeed, so I don’t know the exact way, but if you ’spritespeed *= 0.8’ at the end of your loop somewhere, that’ll work like friction..
-
I think i will open a new topic for that but thank you for the friction 'command'
-
If you decide to use setSpriteSpeed(), what you ought to do after the collision event happens is then stop the player from moving yourself.
setSpriteSpeed(player,150,0)
col = collideSprites(player,wall,false,false)
if col.exists then
setSpriteSpeed(player,0,0)
endif
-
@Jongjungbu that code setSpriteSpeed(player,150,0)
col = collideSprites(player,wall,false,false)
if col.exists then
setSpriteSpeed(player,0,0)
endifIt will make the player get stuck to the wall :P
-
Iv made a collision demo for you download code NDL89RND5U
-
Well, I sort of simplified it. But maybe check out waldron's example :)
-
@landein207 the demo is pending but should be available soon.
-
Ok thanks for helping me understanding how collisions work here :)
-
That has been approved
-
Lightning ⚡ fast :)
-
@waldron Express delivery!
-
Ok i just saw the code i understand how to make collisions with setplayerspeed now i think i will try see in another games with setspritelocation controls to see how to make collisions because im trying to make a game like undertale battle fan made that i think would be hard to play with a always moving character but thanks a lot now i know how to work with collidesprites + setspritespeed thank you all for helping me :)
-
@landein207 that's fine that demo was just to demonstrate collision for you. I can update the demo tomorrow to stop the player when not pressing the button and also add in another way to move the player without using the setspritespeed
-
Ok @waldron i was testing with the demo that you gave to me and i was trying to do the controls like this
loop
clear()
plr.show_collision_shape = true
wall.show_collision_shape = true
c = controls(0)
oldc = controls(0)If c.lx == 0 and c.ly == 0 then
Setspritespeed(plr,0,0)
endifIf c.lx > 0 then
Setspritespeed(plr,100,0)
endif
If c.lx < 0 then
Setspritespeed(plr,-100,0)
endif
If c.ly > 0 then
Setspritespeed(plr,0,-100)
endif
If c.ly < 0 then
Setspritespeed(plr,0,100)
endif
If c.lx > 0 and c.ly < 0 then
Setspritespeed(plr,100,100)
endif
If c.lx < 0 and c.ly < 0 then
Setspritespeed(plr,-100,100)
endif
If c.lx < 0 and c.ly > 0 then
Setspritespeed(plr,-100,-100)
endif
If c.lx > 0 and c.ly > 0 then
Setspritespeed(plr,100,-100)
endif
//the rest of the codebut idk how this happens but looks that the diagonal one override the another one how does that work with out the diagonals override the rest of the controls?
-
@landein207 it's a different ball game when using the stick as it's very sensitive. there's also many ways to go about movement. Have a look at some of the sample programs in fuze and see how they ✋ handle movement.il update the demo tomorrow with stick controls
-
I think you want something like:
setSpriteSpeed (plr,100*c.lx,-100*c.ly)
Though 100 seems fast, but is in line with what you had.