Du bist nicht angemeldet.

Pausenbrot

Legionär

  • »Pausenbrot« ist der Autor dieses Themas

Beiträge: 10

  • Private Nachricht senden

1

Sonntag, 7. August 2005, 11:17

Langsames drehen zur Maus

Ich habe ein Problem beim drehen des Geschützturms meines Panzers.
Ich will das der Turm in Richtung der Maus zeigt. Er soll der aktuellen Mausposition aber nur LANGSAM folgen.

Ich habe im beigefügten Programm meinen "Erfolg" beigepackt. Der Turm dreht sich zwar langsam, aber er hält nicht an wenn er in Richtung der Maus zeigt, und er ändert die Drehrichtung auch nur beim Sprung von 360°-0° und bei dem Sprung von 180°-181°.

Hat wer eine Idee wie ich mein Problem Lösen könnte?
»Pausenbrot« hat folgende Datei angehängt:
  • Turret Test.zip (5,12 kB - 131 mal heruntergeladen - zuletzt: 26. April 2012, 06:06)
Es gibt sicher auch ganz einfache Lösungen, aber wer versteht die schon?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Pausenbrot« (9. August 2005, 14:02)


Dragoon

Foreneigener Hausdrache

Beiträge: 714

Game Maker Version: 6 registriert

Selbsteinschätzung: GML Experte

  • Private Nachricht senden

2

Sonntag, 7. August 2005, 13:32

GML

1
2
3
4
5
6
7
8
9
10
{
if(tur_dir>359){tur_dir=0} //ist hoffentlich klar
if(tur_dir<0){tur_dir=359} //das auch
dir_mouse=point_direction(x,y,mouse_x,mouse_y) //das nehme ich auch an
dir=dir_mouse-tur_dir //winkel unterschied berrechne
if(dir>180){dir=-(360-dir)} //wenn winkel >180 soll der andere winkel berechnet werden
if(dir<-180){dir=360+dir} //mit <-180
if(dir<-1){tur_dir-=1} //nach rechts drehen (1 ersetzten durch geschwindigkeit)
if(dir>1){tur_dir+=1} //nach links drehen (siehe oben)
}


ich hoffe du meinst das =)
ich hoffe es ist verständlich :D
sonst...bin immer für fragen offen

EDIT by Defmaster: Bei GML Code auch bitte den GML Tag verwenden.

EDIT by Dragon: sry habs noch nicht entdeckt :D bin ja erst ein paar tage hier
int (*x(*x(int))[5])(int*);
Confused? Yes, it's C!

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Dragoon« (7. August 2005, 14:13)


Pausenbrot

Legionär

  • »Pausenbrot« ist der Autor dieses Themas

Beiträge: 10

  • Private Nachricht senden

3

Montag, 8. August 2005, 08:30

Vielen Dank Dragon...!
Genau das habe ich gesucht...

Ich schreibe dich in meine Special Tanks!
Es gibt sicher auch ganz einfache Lösungen, aber wer versteht die schon?

Dragoon

Foreneigener Hausdrache

Beiträge: 714

Game Maker Version: 6 registriert

Selbsteinschätzung: GML Experte

  • Private Nachricht senden

4

Montag, 8. August 2005, 13:23

cool bin in nem spiel verewigt :D
int (*x(*x(int))[5])(int*);
Confused? Yes, it's C!