----------------------------------- Paul Fri Oct 29, 2004 3:14 pm Jumping Ball ----------------------------------- A person in my class was trying to get a ball to jump with gravity and shit, so I made this in 15-20 min. Not great coding, but yea... w/e. The gravity is set to -0.2 right now, you can change it for observation. But basically when u jump (ctrl) it gives the ball an initial velocity, and gravity is acting on the ball at all times anyhow. I've gotten a crude bottom side collision detection in. But I'm too lazy to expand on this. If anyone can improve/ exand on this code, I'd like to see the results or w/e. But this was basically a demonstration to my classmate. Just press control to jump ;) ----------------------------------- Cervantes Fri Oct 29, 2004 6:03 pm ----------------------------------- nice work paul. Pretty good, for such a short time. Here's a simple function I wrote for collision detection, again, using whatdotcolour. function ground_collision (x1 : int, y1 : int, obj_width : int, check_under_obj : int, ground_colour : int) : boolean for xcheck : x1 .. x1 + obj_width %from the left edge of the pic to the right edge for ycheck : y1 + check_under_obj .. y1 if whatdotcolour (xcheck, ycheck) = ground_colour then result true end if end for end for result false end ground_collision check_under_obj is intended to be the y velocity of the object, which, since you're checking to see if it hit the ground, should be a negative value. also, since you're ball doesn't fall down when he moves off of the ground (he doesn't fall when he runs off a cliff), you could do something like the following: use the above function in an if statement such as: if ground_collision (parameters, blah, blah, blah) = false then jump := true end if this causes the jump sequence to be initiated, and causes gravity to come into play. The only thing is that you'd have to move ballv := 8 into the if chars (key_ctrl) statement: if chars (KEY_CTRL) then jump := true ballv := 8 end if Cheers!