Gå til innhold

Få ett objekt til å følge etter ett annet


Anbefalte innlegg

Driver med ett lite prosjekt i SDL men jeg klarer ikke å få ett objekt til å følge etter musepekeren.

 

Jeg vet hele tiden hva x og y kordinatene til musepekeren er. Men jeg tror jeg mangler de matte kunskapene jeg trenger til å sette opp en formel som kan regne ut x og y til objektet jeg vi skal følge etter skal være.

 

Objektet skal liksom henge etter musepekeren. Håper noen forstår hva jeg mener :p

Endret av Glutar
Lenke til kommentar
Videoannonse
Annonse

Det som er vanskelig, er å finne vektoren mot det ene objektet. Heldigvis er ikke dette egentlig så vanskelig :)

 

Du trekker for eksempel musepekerens posisjon fra objektets posisjon, så vil du få en forlenget vektor dem i mellom.

For å få denne ned, dividerer du bare med avstanden dem i mellom.

 

Avstanden finner du enkelt ved å bruke pythagoras:

a2 + b2 = c2

Dette fører til at lengden på vektoren vil bli:

lengde = sqrt(x*x + y*y)

 

Totalt vil det se noe slikt ut:

 

point CalculateVector(point a, point b)
{
 point vec = b - a;
 return vec / sqrt(abs(vec.x * vec.x + vec.y * vec.y + vec.z * vec.z));
}

 

Nå har du en retning mot et objekt fra et annet. Resultatet vil bli dette:

vec.x = cos(v) og vec.y = sin(v)

 

v vet du jo ikke, den er dog lett og finne, men er neppe nødvendig for deg.

Lenke til kommentar
Dette er veldig enkelt med SDL. I main-game-loop setter du bakgrunnen og blitter objektet til skjermen med x og y koordinatene du har. Verre skal det ikke være. Kan du evt. paste koden hvis du fortsatt har problemer?

 

Du misforstår, det jeg ønsker er att ett bilde skal "henge" etter musepekeren. Og f.ekp komme nærmere og nærmere musepekeren. Uansett hvordan jeg beveger på musa skal objektet bevege seg mot pekeren.

 

Jeeg skal se på vektorer senere i kveld tenkte jeg :)

Lenke til kommentar
  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...