Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
5 registered members (Dico, AndrewAMD, TipmyPip, NewbieZorro, Grant), 15,791 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Problem mit smooth (falsche Richtung) #259584
04/06/09 19:37
04/06/09 19:37
Joined: Jun 2004
Posts: 134
127.0.0.1
V
Vampir Offline OP
Member
Vampir  Offline OP
Member
V

Joined: Jun 2004
Posts: 134
127.0.0.1
Hi
Ich drehe mein Charakter mit smooth (Point&Click Steuerung):

//target = Zielvektor zu dem gelaufen wird
vec_to_angle(my.pan,target);
my.tilt = 0;
my.pan = smooth(my.pan, 0.95);

Jetzt hab ich das Problem, dass der Player nicht immer
wie es logisch wäre, den kürzesten Weg zum drehen nimmt,
sondern er nimmt immer den Weg von 0 - 360 oder umgekehrt.
Jedoch dreht er nie über die 0.

Wenn also player.pan = 10 ist und der Ziel Winkel = 350.

Dann dreht er den langen Weg von 10 -> 350 statt 350 <- 10.

Wie ihr seht kenn ich das Problem, aber ich weiss nicht wie
ich das elegant löse.

Hab schon einiges probiert mit Winkelkorrektur ang() usw

Thx
Vampir


My english is version 0.1 BETA. wow gamecard 4 president
Re: Problem mit smooth (falsche Richtung) [Re: Vampir] #259788
04/07/09 17:35
04/07/09 17:35
Joined: Jun 2004
Posts: 134
127.0.0.1
V
Vampir Offline OP
Member
Vampir  Offline OP
Member
V

Joined: Jun 2004
Posts: 134
127.0.0.1
Dann erkläre ich es mal so, dass ihr mein Problem vielleicht besser versteht.

Hier erst mal ein Bild (klick für vergrösserung):


Der braune Pfeil ist der Mauszeiger.
Wenn ich mit der Maus klicke, dreht sich der Char mit smooth()
richtung Mauszeiger (gelber Pfeil).
Aber er dreht sich nicht in richtung des grünen Pfeils,
sondern nimmt den langen Weg (roter Pfeil).
Also er dreht sich nie über die 180° hinaus.

Wie kann ich das ändern? Ich kann ja smooth keine Richtung
angeben!

Danke für Eure hilfe.

mfg
Vampir


My english is version 0.1 BETA. wow gamecard 4 president
Re: Problem mit smooth (falsche Richtung) [Re: Vampir] #259803
04/07/09 19:23
04/07/09 19:23
Joined: Dec 2008
Posts: 271
Saturnus Offline
Member
Saturnus  Offline
Member

Joined: Dec 2008
Posts: 271
Wie man es mit smooth macht, weiß ich nicht.
Ich könnte dir nur eine klassische Alternative anbieten. smile

Dieser Code berechnet einen Richtungsvektor von my zu einem Zielvektor (hier target genannt). my wird nach links oder rechts rotiert, abhängig davon, ob die Differenz zwischen dem pan des Richtungsvektors und dem pan von my positiv oder negativ ist. Die "maximale" Roationsgeschwindigkeit (ohne time_step-Korrektur) beträgt 5 und wird am Ende der Rotation gegen 0 "gesmoothed". (Code ungetestet, sollte aber grundsätzlich funktionieren)
Code:
VECTOR to_target_ang;
vec_to_angle(to_target_ang, vec_diff(NULL, target, my->x));
var angle_diff = ang(to_target_ang.pan - my->pan);

if (angle_diff > 0)
	my->pan += minv(angle_diff,  5) * time_step;
else
	my->pan += maxv(angle_diff, -5) * time_step;



Moderated by  HeelX, Lukas, rayp, Rei_Ayanami, Superku, Tobias, TWO, VeT 

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1