tagwolf
Member
GM Version: GMS2.X
Target Platform: ALL
Download: https://host-a.net/f/226892-rjyyz
Links: N/A
Summary:
Rocket jumping, perfect platformer controls, and custom particle effects!
Tutorial:
Here's a prototype I was working on. It uses my "True Perfect Platformer Movement Controls" from my other tutorial with !!!ROCKET JUMPING!!! added onto it.
Controls are WASD and mouse. (alt controls too and easy to change)
There's also some "bad ass" custom particle effects thrown in there too that might be of some help to someone out there.
Make something awesome with it and as always...Enjoy!
Most of the rocket jump logic happens in the player but is trigger by a rocket explosion. See the project to see how it all works together.
player jump snippet. Download full project.
rocket create and step
https://host-a.net/f/226892-rjyyz
Target Platform: ALL
Download: https://host-a.net/f/226892-rjyyz
Links: N/A
Summary:
Rocket jumping, perfect platformer controls, and custom particle effects!
Tutorial:
Here's a prototype I was working on. It uses my "True Perfect Platformer Movement Controls" from my other tutorial with !!!ROCKET JUMPING!!! added onto it.
Controls are WASD and mouse. (alt controls too and easy to change)
There's also some "bad ass" custom particle effects thrown in there too that might be of some help to someone out there.
Make something awesome with it and as always...Enjoy!
Most of the rocket jump logic happens in the player but is trigger by a rocket explosion. See the project to see how it all works together.
player jump snippet. Download full project.
Code:
// Perform a rocket jump
if rocket_jump {
rocket = instance_nearest(x, y, obj_Rocket)
hspeed += lengthdir_x(rocket.rocket_power, explosion_direction);
vspeed += lengthdir_y(rocket.rocket_power, explosion_direction);
rocket_jump = false;
with(rocket) {
instance_destroy();
}
}
Code:
// Rocket Vars
rocket_power = 8;
rocket_radius = 32;
rocket_range = 128; // Distance before exploding without collision
rocket_speed = 10; // todo: add delay to engines and speed up to max
// Guidance
distance_travelled = 0;
rocket_explosion = 0;
target_x = mouse_x;
target_y = mouse_y;
direction = point_direction(x, y, target_x, target_y);
image_angle = direction;
speed = rocket_speed;
// Propellant Particles
flame_particle_rate = 1;
alarm[0] = flame_particle_rate;
Code:
if (distance_travelled >= rocket_range) || place_meeting(x, y, obj_Block)
{
rocket_explosion = true;
repeat(50)
{
instance_create_layer(x, y, layer, obj_Particle)
}
}
distance_travelled++;
if rocket_explosion
{
if collision_circle(x, y, rocket_radius, obj_Player, false, true)
{
obj_Player.explosion_direction = point_direction(x, y, obj_Player.x, obj_Player.y);
obj_Player.rocket_jump = true;
} else {
// Since player won't destroy
instance_destroy();
}
}
https://host-a.net/f/226892-rjyyz
Last edited: