Verfolgungsfunktion
-
- Beiträge: 105
- Registriert: 28.04.2006 22:19
Verfolgungsfunktion
Hi Leute ich wollte ich hab ein Problem mit automatischer bewegung von objekten!
Mein Poroblem ist folgendes:
Auf dem Screen kann man eine Figur frei rumbewegen (x/y-werte ändern).
Eine andere Figur soll die spielergesteurte spielfigut aber verfolgen bis sie in kontakt treten.
das problem ist halt dass die spielergesteuerte figur immer wieder wo anders ist wenn man sie bewegt und sich der BOT daran automatisch anpassen soll.
Wie krieg ich das hin das der bot zum spieler flüssig hin läuft und sich nich einfach auf seine koordinaten spwant?
Mein Poroblem ist folgendes:
Auf dem Screen kann man eine Figur frei rumbewegen (x/y-werte ändern).
Eine andere Figur soll die spielergesteurte spielfigut aber verfolgen bis sie in kontakt treten.
das problem ist halt dass die spielergesteuerte figur immer wieder wo anders ist wenn man sie bewegt und sich der BOT daran automatisch anpassen soll.
Wie krieg ich das hin das der bot zum spieler flüssig hin läuft und sich nich einfach auf seine koordinaten spwant?
Ich verstehe nicht daß das ein problem sein soll.
Du hast doch die x/y-werte der Spielerfigur. erhöhe bzw. erniedrige doch
die Koordinaten des Bots gemäss den bekannten Spielerfigurwerte.
ist x des Spielers kleiner als x des Bots, dann wird x des Bots erniedrigt.
. genauso wird mit y verfahren. Solange bis x/y des Bots gleich
x/y des Spielers ist.
interessant und problematish wird es erst, wenn der Bot im voraus "erahnen"
soll( um dem Spieler den Weg abzuschneiden), wohin sich der Spieler bewegen wird!
Du hast doch die x/y-werte der Spielerfigur. erhöhe bzw. erniedrige doch
die Koordinaten des Bots gemäss den bekannten Spielerfigurwerte.
ist x des Spielers kleiner als x des Bots, dann wird x des Bots erniedrigt.
. genauso wird mit y verfahren. Solange bis x/y des Bots gleich
x/y des Spielers ist.
interessant und problematish wird es erst, wenn der Bot im voraus "erahnen"
soll( um dem Spieler den Weg abzuschneiden), wohin sich der Spieler bewegen wird!

Re: Verfolgungsfunktion
"flüssig" !Rockmaster hat geschrieben: Wie krieg ich das hin das der bot zum spieler flüssig hin läuft und sich nich einfach auf seine koordinaten spant?
hmm.. musst du warscheinlich mit Sin() und Cos() arbeiten..
mal sehen ob ich was finden kann

Hier hast du ein Beispiel von mir :
Das Ergibnis des ganzen wird sein :
Der BOT dreht sich elegant richtung Ziel und beschleunigt sobalt er die ungefaire Richtung hat.
Wenn er nahe dran ist bremst er wieder ab.
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
OpenScreen(1024, 768, 32, "Bot 1.0")
b.f = 3.14159265/180
Bot_x.f = 512
Bot_y.f = 386
Bot_v.f = 0
Bot_w.f = 0
Bot_dw.f = 0
Repeat
ExamineMouse()
MouseX = MouseX()
MouseY = MouseY()
FlipBuffers()
ClearScreen(0,0,0)
StartDrawing(ScreenOutput())
Bot_x = Bot_x + Cos(Bot_w*b)*Bot_v*0.1
Bot_y = Bot_y + Sin(Bot_w*b)*Bot_v*0.1
Bot_w = Bot_w + Bot_dw
While Bot_w < 0 : Bot_w + 360 : Wend
While Bot_w >= 360 : Bot_w - 360 : Wend
deX = MouseX-Bot_x
deY = MouseY-Bot_y
If deX = 0 :
If deY < 0 : Winkel = -90 : EndIf
If deY >= 0 : Winkel = 90 : EndIf
Else
Winkel = ATan(deY/deX)/b
If deX < 0 : Winkel + 180 : EndIf
EndIf
Unterschied = Winkel-Bot_w
If Unterschied > 180 : Unterschied = Unterschied - 360 : EndIf
If Unterschied < -180 : Unterschied = Unterschied + 360 : EndIf
If Unterschied > 0 And Unterschied <= 180 : Bot_dw = 2+Unterschied/10 : EndIf
If Unterschied < 0 And Unterschied >= -180 : Bot_dw = -2+Unterschied/10 : EndIf
If Bot_dw > 45 : Bot_dw = 45 : ElseIf Bot_dw < -45 : Bot_dw = -45 : EndIf
If Bot_v > Sqr(Pow(deX,2)+Pow(deY,2))/2 : If Bot_v > 0 : Bot_v = Bot_v - 1 : EndIf : EndIf
If Bot_v < Sqr(Pow(deX,2)+Pow(deY,2))/2 : If Bot_v < 50 : Bot_v = Bot_v + 1 : EndIf : EndIf
;Bot
Circle(Bot_x, Bot_y, 10, RGB(255,255,255))
LineXY(Bot_x, Bot_y, Bot_x+Cos(Bot_w*b)*20, Bot_y+Sin(Bot_w*b)*20)
;Maus
Circle(MouseX, MouseY, 5, RGB(128,128,128))
StopDrawing()
ExamineKeyboard()
Until KeyboardReleased(#PB_Key_Escape) <> 0
End
Der BOT dreht sich elegant richtung Ziel und beschleunigt sobalt er die ungefaire Richtung hat.
Wenn er nahe dran ist bremst er wieder ab.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
STARGÅTE bitte !Alves hat geschrieben:Dieses Beispiel ist echt gut, STARGA°Te

Ja hat mich aber auch viele Versuche gekostet bis ich dieses BUG-Freie verfolgen hinbekommen habe
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
[OT]
STERNENTØR?
(Alt + 0216)[/OT]
Wie wäre es mitSTARGÅTE hat geschrieben: STARGÅTE bitte !
STERNENTØR?

OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
-
- Beiträge: 105
- Registriert: 28.04.2006 22:19
Schwedisches Å
Hallo,
du kannst auch in der Systemsteuerung andere Sprachen dazu "aktivieren". Hier im Beispiel schwedisch, wobei dann das Å auf der Ü-Taste liegt. Zwischen den Tastaturlayouts läßt sich dann bequem mit ALT+Shift umschalten.
Torsten
du kannst auch in der Systemsteuerung andere Sprachen dazu "aktivieren". Hier im Beispiel schwedisch, wobei dann das Å auf der Ü-Taste liegt. Zwischen den Tastaturlayouts läßt sich dann bequem mit ALT+Shift umschalten.
Torsten