The arsenal of traps at our disposal has not really changed in some months. We have the swinging log trap, a bear trap, a patch of fire, and the trapdoor / disappearing ground.
Some of these are pretty standard, and I wanted to add something new for the player to dodge, something that needs quick reflexes, so I thought of building a trap where a Log will fly at the player from off screen.
Setting up the foundation for the trap is actually pretty easy and just copied over from our swinging log trap. I take the log sprite that is used in the other unity prefab and I position it off camera and I give it a RigidBody2D.
Inside of the Unity Editor I selected to freeze the X, Y and Z rotation so that the log will stay suspended in mid air and not fall to the ground. Inside of our levels we have a custom script to trigger all of our hazards when the player has reached a specific distance from each hazard, so to be able to test it with the amount of velocity and force I had given it, I quickly coded a script to trigger the trap when I pressed the space bar, something along the lines of
void update ()
{
if (Input.GetKeyDown (KeyCode.Space))
release ();
}
When I pressed the spacebar the Log flew into action
That was pretty weak, so I needed to increase the velocity and force, which is just a matter of going back into the source code and changing a couple of the variables to get them to where I want. But the log didn’t have any spin to make it look like it was thrown. Looking through the Unity Documentation I found the perfect thing to add, torque through the Rigidbody2D. I fiddled with the numbers a little bit more and got a result more to my taste.
I changed the script a little bit more to make the velocity, force and torque slightly random each time the trap is triggered and threw it into the game and this I am very pleased with the results. After only about 2 hours of work we have a brand new trap, that requires really quick reflexes, in our game.
0 comments