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 :-) >>>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >