Sada bih da se odradi odbijanje oBall-a (loptice) o reket u zavisnosti od ugla pod kojim udari u reket.
Da bi se to postiglo ja sam reket podelio na 4 oblasti (Height=40),
__ _ 0
| A|
|__| _ 10
| B|
|__| _ 20
| C|
|__| _ 30
| D|
|__| _ 40
a odijanje zavisi (pored toga u koju obalast reketa udari Oball) i od toga da li je BallY vece ili manje od nule.
Odnosno da li se krece na gore/na dole.
Pa da predjem na stvar:
Uzmimo slucaj kada se oBall krece na gore (BallY<0):
Imamo 5 moguca slucaja:
I)
Udarice u oblast A(>=0 i <=10)
II)
udarice u oblast B(>10 i <=20)
III)
udarice na granici izmedju B i C (20)
IV)
udarice u oblast C(>20 i <=30)
V)
udarice u oblast D(>30 i <=40).
B i C je sredina reketa i ako oBall udari u nju trebalo bi da se odbije kao od zida.
U ostala 4 slucaja loptica se odbija i dolazi do promene vrednosti BallY i to na sledeci nacic:
Oblast A => BallY=BallY + 1.5
Oblast B => BallY=BallY + 1
Oblast B & C => BallY=BallY (Ne menja se!!!)
Oblast C => BallY=BallY - 1
Oblast D => BallY=BallY - 1.5
Kod za Oblast A bi izgledao:
Code:
If Racquet_Height >= 0 Then
If Racquet_Height <= 10 Then
BallYMove = BallYMove - 1.5
End If
End If
Ostali su isti uz promenu brojeva (-1.5 -> -1 | -1 ->1 | 1 -> 1.5).
------------------------------
Za kretanje loptice na dole je obrnuto.
(<- ZA slucaj da neki neznaju ->)
Ispitivanje da li je BallY negativno ili pozitivno vrsi se na sledeci nacin:
Code:
If Ball<0 Then
'Slucaj kada se loptica krece na gore
Else
'Slucaj kada se loptica krece na dole
End if
END.