-----------------------------------
jedi-bob
Mon Jan 19, 2004 10:30 am
Help with collision detection
-----------------------------------
i cant get the oval collision detection working, i will post the code, if i could get some help that would be great. I copied the oval collision detection code into my program, but it get errors. I am using Turing 4.0.4c
var chars : array char of boolean
var A1,B1,A2,B2: int
var radius1,radius2:int
A1:=50
A2:=10
B1:=50
B2:=10
radius1:=10
loop
drawfilloval(A1,B1,A2,B2,7)
Input.KeyDown (chars)
if chars (KEY_RIGHT_ARROW) then
cls
A1:=A1+15
elsif chars (KEY_LEFT_ARROW) then
cls
A1:=A1-15
elsif chars (KEY_DOWN_ARROW) then
cls
B1:=B1-15
elsif chars (KEY_UP_ARROW) then
cls
B1:=B1+15
end if
delay(100)
drawfilloval(200,200,50,50,yellow)
drawfilloval(200,200,10,10,black)
var distance := ((A2-A1)*(A2-A1) + (B2-B1)*(B2-B1))**0.5
%you take the square of differences of X coordinates and add
%a square of differences of Y coordinates then take a square
%root of the sum
%%%%%%
%I did (x)*(x) instead of x**2 because exponents is a function
%and it takes up more resourses then *, thus its faster
%Also **0.5 is the same as sqrt() - learn your math guys
if distance < radius1 + radius2
%might be a good idea to save radious1+radious2 as const/var
then
collision = true
end if
end loop
Mod Edit: Moved it to the right forum, don't post in tutorial next time when you have a question.
-----------------------------------
Thuged_Out_G
Mon Jan 19, 2004 3:20 pm
-----------------------------------
you could use whatdotcolor for your collision detection....but if you dont do it correct(according to dodge), he'll get mad :lol:
-----------------------------------
jedi-bob
Mon Jan 19, 2004 3:28 pm
-----------------------------------
i don't quite understand. Maybe you could copy my code above, correct it, and repost it. I am very new to turing, so don't think i am retarded.
-----------------------------------
Tony
Mon Jan 19, 2004 5:17 pm
-----------------------------------
you can't expect to paste some base code at the end of your program and expect things to work :roll:
see the collision = true line? thats where you place the code that does whatever after collision occurts.
replace that with put "collision occured" to see if the code works
-----------------------------------
jedi-bob
Tue Jan 20, 2004 9:53 am
-----------------------------------
thanks, sorry for me being a dumbass