Yeah but if you calculate the node of the graph where the target will be
when the bullet get there. Can it works?

2011/7/23 Joe Ranalli <jrana...@gmail.com>

> 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