Permalänk

rotationsmatte

Håller på med en GTA klon i SDL.
Har dock, inte helt oväntat, problem med matten.

Hur ska man få bilen att svänga ordentligt?
Någon som har tips å pointers?

Man ska ju inte kunna svänga på en femöring direkt, utan det ska ju vara svängradie.

Permalänk
Medlem

I SDL finns antagligen funktioner för att rita upp en bild med en viss vinkel relativt skärmens koordinatsystem. Du kan ändra lite på den vinkeln samtidigt som du ändrar bildens uppritningskoordinater för att få en kombinerad rotation och translation. Det är lite svårare då du ska detektera kollision. Om bilden på bilen är rektangelformad kan du ta reda på var varje hörnpunkt är genom att utgå från hörnpunktens position relativt bilens lokala koordinatsystem och sedan transformera den vektorn genom att multiplicera med en rotationsmatris motsvarande den vinkel bilen har relativt världens koordinatsystem. Då vet du vars punkten är i världens koordinatsystem och kan testa om något annan objekt har hamnat innanför bilens rektangel - dvs att en kollision har uppstått. Lite knepigt är det men rätt coolt då det funkar

Visa signatur

(http://rivfader.blogspot.com)
Blank face in the windowpane
Made clear in seconds of light

Permalänk
Medlem

Grundläggande rotation:

xr=x*cos(t) - y*sin(t);
yr=x*sin(t) + y*cos(t);

Roterar en punkt runt mitten (0,0).

Permalänk
Medlem

Jag fattade inget när jag läste http://www.gamedev.net/reference/articles/article1614.asp , men det verkar ha med svängning att göra i alla fall

För övrigt kanske du hittar nått bättre i hela listan http://www.gamedev.net/reference/list.asp?categoryid=28

Permalänk

finns en extra lib till SDL som heter något i stil med SDL_zoomrot, tror den löser dina problem

EDIT: oj läste inte hela problemet

Permalänk
Medlem

jag tycker inte att det är speciellt svårt om man tänker rätt.... (och har lagt upp styrningen som jag skulle ha gjort)...

tänk dig att du roterar bilen... du förändrar alltså bilens färdriktning...
beroende på hur mycket du gasar så får du en viss rotation i förhållande till tiden.... har du ingen fart alls så står bilen stilla och det blir ingen rotation....

sedan måste man tweaka det där samt sätta lite restriktioner kanske...
ett annat problem är var du roterar ifrån, egentligen så ska du ju inte rotera runt bilens mittpunkt, utan från en punkt som är någonstans emellan framkanten och mitten....

mjaja... kanske gav dig någon tanke iaf =)...