Gå til innhold

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


Anbefalte innlegg

Skrevet (endret)

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
Videoannonse
Annonse
Skrevet

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.

Skrevet

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?

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

  • 2 uker senere...
Skrevet (endret)

ville ikke det enkleste vært å lagt til en del av forskjellen mellom musa sin x/y og objektets x/y?

 

f.eks.:

 

objektsX += (musX - objektsX) / 10;

Endret av FourEyes

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...