You are aiming the bullet based on where you calculate the target will be
when the bullet gets there.  If the target changes direction, your aim is
wrong.

On Sat, Jul 23, 2011 at 1:24 PM, Nathan BIAGINI <nathan.o...@gmail.com>wrote:

> So if the source if moving to the left, get in range of a tower and during
> the algorithm progress go up or down, it will not work. That's it?
>
>
> 2011/7/23 Joe Ranalli <jrana...@gmail.com>
>
>> Yes, it will work as long as the target doesn't change direction.
>>
>>
>> On Sat, Jul 23, 2011 at 1:13 PM, Nathan BIAGINI <nathan.o...@gmail.com>wrote:
>>
>>> Ok. Yeah it's more explicit, thanks to take time to rewrite it. So it
>>> will works in case of really simple tower defense graph, where the target
>>> always progress to a point A to a point B?
>>>
>>>
>>> 2011/7/23 Joe Ranalli <jrana...@gmail.com>
>>>
>>>> Yes.
>>>>
>>>> So to be more explicit:
>>>>
>>>> 1 Calculate the distance between the source and the target.
>>>> 2 Calculate the time for the bullet to move that distance (i.e. by
>>>> dividing this distance by the bullet velocity)
>>>> 3 Calculate newposition (multiply the target velocity by the time
>>>> calculated in the previous step, add to original target position)
>>>> 1a Recalculate the distance between the source and newposition
>>>> 2a Recalculate the time for the bullet to move from the source to
>>>> newposition (i.e. divide the new distance by the bullet velocity)
>>>> 3a Recalculate newposition using this new time (multiply the target
>>>> velocity by the new time calculated in the previous step, add to original
>>>> target position)
>>>>
>>>>
>>>>
>>>>
>>>> On Sat, Jul 23, 2011 at 12:55 PM, Nathan BIAGINI <nathan.o...@gmail.com
>>>> > wrote:
>>>>
>>>>> Ok so thanks all for all your replies i will work with all that. I
>>>>> don't know already if i want to use homing missile style which seems to be
>>>>> easier to code or to use an algorithm to fire straight to the right spot.
>>>>> To be honest, i'm not native english speaker and it's not always easy
>>>>> to figure out what you really mean but i'm doing my best.
>>>>>
>>>>> I just want to ask you Joe about your algorithm :
>>>>>
>>>>>
>>>>>  If you want to have the bullet go straight to the right spot, you need
>>>>>> to:
>>>>>> 1) calculate how long the bullet will take to get to the enemy
>>>>>> 2) calculate where the enemy will be at that time (newposition)
>>>>>> 3) calculate how long it will take the bullet to get to newposition
>>>>>> 4) recalculate newposition based on the new time
>>>>>>
>>>>>
>>>>> Ok so i think the first step is pretty clear to me, the step 2 too but
>>>>> i don't understand the step 3. My english isn't the best i repeat so... i
>>>>> have to calculate how long the bullet will take to go to 'newposition'. 
>>>>> So i
>>>>> will get a new time value and then i need to recalculate newposition based
>>>>> on this new time? And fire at 'newposition'? And also, to be sure,
>>>>> 'newposition' is the virtual position of the target after the time taken 
>>>>> by
>>>>> the bullet to hit it, right?
>>>>>
>>>>> Sorry if it seems to be straigh forward to you :-)
>>>>>
>>>>> Of course i will try others way like Lee suggested me.
>>>>>
>>>>> Thanks.
>>>>>
>>>>> 2011/7/20 Joe Ranalli <jrana...@gmail.com>
>>>>>
>>>>>> It depends what you're trying to do.
>>>>>>
>>>>>> If you draw the straight line between the tower and the enemy and use
>>>>>> that vector to translate a bullet each tick, the bullets might miss the
>>>>>> enemy.  Think about it this way, the bullet moves 2 steps toward the 
>>>>>> enemy,
>>>>>> then the enemy moves 1 step, then the bullet moves 2, etc.  Because the
>>>>>> enemy moves the bullet will have to change its direction through the
>>>>>> flight.  So you could calculate the direction vector between the bullet 
>>>>>> and
>>>>>> the enemy every tick and have the bullet move that direction.  That would
>>>>>> make the bullets kind of arc to the target.
>>>>>>
>>>>>> If you want to have the bullet go straight to the right spot, you need
>>>>>> to:
>>>>>> 1) calculate how long the bullet will take to get to the enemy
>>>>>> 2) calculate where the enemy will be at that time (newposition)
>>>>>> 3) calculate how long it will take the bullet to get to newposition
>>>>>> 4) recalculate newposition based on the new time
>>>>>>
>>>>>> Technically you could iterate that repeatedly until newposition
>>>>>> converges.  Practically, iterating once probably gets you close enough
>>>>>> unless the movement is extremely complicated.
>>>>>>
>>>>>>
>>>>>> On Wed, Jul 20, 2011 at 9:14 AM, Nathan BIAGINI <
>>>>>> nathan.o...@gmail.com> wrote:
>>>>>>
>>>>>>> Hi everyone,
>>>>>>>
>>>>>>> i would like to know what are the common way to handle "trajectory"
>>>>>>> in a 2d game. In fact, i think of writing a tower defense game and i 
>>>>>>> wonder
>>>>>>> how to handle the trajectory of the missile launch by the towers. I 
>>>>>>> though
>>>>>>> of getting the pos of the tower and the target and create a vector 
>>>>>>> between
>>>>>>> this two entitites to make a sprite translation of this vector but 
>>>>>>> there is
>>>>>>> maybe some tricky stuff to do it.
>>>>>>>
>>>>>>> Thanks in advance and happy game making all :-)
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>

Reply via email to