Probleme mit Richtungsfunktion

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

md0123

Betreff: Probleme mit Richtungsfunktion

BeitragSo, Nov 14, 2004 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
While Not KeyHit(1)
Cls
If MouseDown(1) Then
Object_Richtung(400,300,MouseX(),MouseY())
EndIf
Locate 10,10
Print zx+":"+zy
Locate 10,30
Print Zielrichtung$
Locate 10,60
Print m#
Flip
Wend


Function Object_Richtung(ox,oy,zx,zy)

ux=zx-ox+15
uy=zy-oy+40

If ux<>0 Then
m#=Float(uy/ux)
ElseIf uy > 0
m#=4
ElseIf uy<0
m#= -4
EndIf

If ux >= 0 Then
If m# > 3.7 Then
Zielrichtung$ = "S"
ElseIf m# > 1
Zielrichtung$ = "S_SO"
ElseIf m# > 0.26
Zielrichtung$ = "O_SO"
ElseIf m# > -0.26
Zielrichtung$="O"
ElseIf m# > -1
Zielrichtung$ = "O_NO"
ElseIf m# > -3.7
Zielrichtung$ = "N_NO"
ElseIf m# < -3.7
Zielrichtung$ = "N"
Else
If m# > 3.0 Then
Zielrichtung$ = "N"
ElseIf m# > 1
Zielrichtung$ = "N_NW"
ElseIf m# > 0.26
Zielrichtung$ = "W_NW"
ElseIf m# > -0.26
Zielrichtung$ = "W"
ElseIf m# > -1
Zielrichtung$ = "W_SW"
ElseIf m# > -3.7
Zielrichtung$ ="S_SW"
EndIf
EndIf
EndIf
End Function


Die Funktion funktioniert nur zum Teil. Wenn ich mit der Maus klicke wird nur N,N_NO,O_SO und S ausgewertet, klicke ich mit der Maus gen Westen liefert sie keine Informationen Zielrichtung$ ist bei mir auf Global gesetzt[

Ralf

BeitragSo, Nov 14, 2004 22:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

was ist denn das für ein Kauderwelsch?
Wenn Du hier Hilfe erwartest, solltest Du es den Leuten nicht unnötig schwer machen. Rücke die Zeilen ein und benutze die Code-Funtion hier im Forum. Dadurch könnte der Code event. lesbar werden.
Bis dahin beschäftige ich mich lieber mit japanischen Kochbüchern, die kann ich bestimmt besser lesen. Wink

Ralf

Rob_

BeitragSo, Nov 14, 2004 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi md0123!

Ich hab mir mal dein kauderwelschisch mal angeguckt und mal ausprobiert.

Mir ist nicht ganz klar was du machn willst?
Ich sehe zwei 0,0 0,0 auf dem bildschirm.
Und nichts passiert.

Vielleicht solltest du es wie es Ralf schon gesagt hat es ein ordnen und in den code function schrieben, und im Beginnerscorner anfragen und dir tut ansehen.

Mfg
Rob_
AMD Athlon 64 3500+ | Infineon 1 GB DDR RAM | nVidia Geforce 7800 GTX

Kabelbinder

Sieger des WM-Contest 2006

BeitragMo, Nov 15, 2004 16:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Rein von der Überschrift her, würde ich sagen, du möchtest wissen, wie man eine Figur in verschiedene Richtungen Laufen lassen kann, oder ähnliches.
Also wenn du dich mit Sin() und Cos() noch nicht so gut auskennst, kannst du einfach die Richtung in einer Variable speichern, ich glaube, du wolltest:
N
NO
O
SO
S
SW
W
und
NW

Dann würde ich das folgendermaßen festlegen:
N = 0
NO = 1
O = 2
SO = 3
S = 4
SW = 5
W = 6
NW = 7

Und dann in einer Select-Operation das ganze abfragen:
wenn die Variable 0 ist werden die Befehle Für "nach Norden latschen" erfüllt, bei 1 "nach Nord-Osten latschen" usw.
<Wing Avenger Download> ◊◊◊ <Macrophage Download>
 

Ava

Gast

BeitragMo, Nov 15, 2004 16:57
Antworten mit Zitat
Also ich würde Dir ja eher empfehlen, dass Du Dich mit den Sin() und Cos()-Befehlen vertraut machst und Dir dieses umständliche BlaBlup sparst. Rolling Eyes .... ich glaube, dass ist letztendlich weitaus weniger kompliziert ... Rolling Eyes

Weil im Prinzip ist das ganz einfach:
    "Richtung" ist ein Winkel (0 bis 359)
    "Tempo" ein beliebiger Wert für die Geschwindigkeit
    "x" und "y" sind die Koordinaten (klar)

    Dann ist:

    "neu x" = "alt x" + "tempo" * cos("richtung")
    "neu y" = "alt y" + "tempo" * sin("richtung")


Und Du sparst Dir den ganzen Kauderwelsch......

Winkelrichtung: (aus dem Kopf / hoffentlich richtig! Rolling Eyes)
    rechts = 0
    rechts/oben = 45
    oben = 90
    links/oben = 135
    links = 180
    links/unten = 225
    unten = 270
    rechts/unten = 315

Ava
 

md0123

BeitragMo, Nov 15, 2004 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
danke werts ausprobieren. Habe die Funktion aus nem C Buch eines ehm bekannten Autors, bei mir funktioniert sie, nur das der untere Else-Zweig nicht angesprochen wird und somit angaben über westliche Richtungen nicht dargestellt werden, nach Norden hin funktioniert alles

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group