Gamestudio Links
Zorro Links
Newest Posts
Alpaca Plugin v1.5.2 Release
by kzhao. 01/11/26 13:42
Alpaca Plugin v1.4.0
by kzhao. 01/11/26 13:38
separating groups of 3 digits by a comma
by joe_kane. 01/11/26 00:01
MRC.c and WFO
by joe_kane. 01/10/26 23:58
BarOffset (default = 940 for daily bars?
by joe_kane. 01/10/26 23:46
NOMAX undeclared identifier.
by Petra. 01/09/26 21:12
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
1 registered members (Quad), 2,803 guests, and 6 spiders.
Key: Admin, Global Mod, Mod
Newest Members
joe_kane, Namitha_NN, Syndrela, agasior, mosfet
19189 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