Problem bei if Funktion

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

 

Ticha

Betreff: Problem bei if Funktion

BeitragMo, Feb 05, 2007 4:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, ich bins mal wieder mit einem Problem Rolling Eyes ich weiss ich produziere die am laufenden Band :-I

Also ich habe eine Funktion geschrieben die ein Array ausliest und dort die Koordinaten von schiffen herausliest. Diese werden dann auf einem System schirm dargestellt. Jetzt würde ich aber gerne noch ein kleines Extra hinzufügen *g*
Wenn man über den Punkt eines schiffes geht, werden verschiedene Informationen angezeigt. ZU diesem Zweck soll sich direkt neben dem Punkt des Schiffes ein Info fenster öffnen. Zum testen habe ich zunächst die INfos des Fensters auf "infos" beschränkt. Mein problem ist nur, das dieses kleine Fenster wird erst gar nicht angezeigt :-I

hier mal der Code der Funktion

Code: [AUSKLAPPEN]

Function drawschiffe()
   Local x1:Float,y1:Float,x2:Float,y2:Float,prozent#, x3:Float, y3:Float, a#,b#
   For a=0 To 0 Step 1
         x1       = schiff[a,0] 'x1
         y1       = schiff[a,1] 'y1
         x2       = schiff[a,2] 'x2
         y2       = schiff[a,3] 'y2
         prozent = schiff[a,4] '%

         x3 = x1+(prozent/100)*(x2-x1)
         y3 = y1+(prozent/100)*(y2-y1)
         y3 = y3 - 3
         x3 = x3 - 3
         DrawOval(x3,y3,6,6)
         If MouseX() > x3+3 And MouseX() < x3-3 And MouseY() < y3-3 And MouseY() > y3+3
            DrawRect(x3,y3,100,50)
            DrawText("Info",x3,y3)
         EndIf
   Next
EndFunction


vielleicht könnt ihr mal da ja weiterhelfen. Das sichtbar machen des Fensters wollte ich mit dieser IF-Abfrage einleiten.

Ich hoffe ihr könnt mir helfen Smile

rema

BeitragMo, Feb 05, 2007 6:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weiss nicht ob dies korrekt ist:

Code: [AUSKLAPPEN]
Function drawschiffe()
   Local x1:Float,y1:Float,x2:Float,y2:Float,prozent#, x3:Float, y3:Float, a#,b#
   For a=0 To 0 Step 1


Du zählst hier von 0 bis 0. Zwar wird die For_Next Schleife einmal durchlaufen aber...
Auch hast du a als Float deklariert. Das ist falsch. Da solltest du schon INT nehmen! Da FLOAT auch beim zählen Rundungsfehler hat. Statt 1 hast du zbsp 1.000001...
 

Dreamora

BeitragMo, Feb 05, 2007 8:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Das kommt sowieso net so draufan.

Die IF ist falsch. Schau dir deine Argumente Mal genau an und zeichne sie dir auf einem Papier auf.

Wenn du im ganzen 2D Raum nur einen Punkt findest für welchen gilt:

x > x3+3 UND x < x3-3 bzw. gleiches für Y, dann kannst du dich für den Nobelpreis anmelden Smile
Ich stell einfach Mal die Vermutung auf, das du da überall die < > vertauscht hast. Hättest du aber sehen sollen wenn du dir Gedanken darüber gemacht hättest, was die IF eigentlich machen soll.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ticha

BeitragMo, Feb 05, 2007 15:48
Antworten mit Zitat
Benutzer-Profile anzeigen
also ich habe diese IF-Funktion schon benutzt um zu kontrollieren ob die Maus über einen button() geht. Das hat dann auch funtioniert. Aber ich werde das mal testen. Jedoch müsste dann das Info Feld nicht die ganze zeit angezeigt werde, da ich ja ansonsten alle Punkte seletierte habe ausser dem Punkt den ich suche :-I
 

Dreamora

BeitragMo, Feb 05, 2007 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Die IF hat auch sonst nirgends funktioniert.

Wie gesagt, wenn du im 2D Raum einen Punkt findest welcher gleichzeitig 3 grösser und 3 kleiner als ein fixer Punkt ist, gibts nen Nobelpreis Smile

Da müsste wohl eher stehen x < x3 + 3 and x > x3 - 3 and ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Ticha

BeitragMo, Feb 05, 2007 16:24
Antworten mit Zitat
Benutzer-Profile anzeigen
achsoooo Very Happy das hast du gemeint Very Happy

Embarassed Embarassed Embarassed jetzt funtioniert es auch Embarassed Embarassed Embarassed

hatte da nen denkfehler drin Embarassed Laughing Embarassed

danke für die Hilfe Smile

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group