Kleine syntaxfrage zu NOT

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

AnniXa

Betreff: Kleine syntaxfrage zu NOT

BeitragDi, Dez 15, 2009 21:55
Antworten mit Zitat
Benutzer-Profile anzeigen
hey
folgende zeile code geht:

Code: [AUSKLAPPEN]

If ObjektMap[xsuche + Self.x,ysuche + Self.y,Self.z] = Self Then


jedoch geht folgendes nicht:

Code: [AUSKLAPPEN]

if Not ObjektMap[xsuche + Self.x,ysuche + Self.y,Self.z] = Self Then


warum ist dies so?
klar ich kann ja das erste nehmen und dann mit else arbeiten, trozdem würd mich interresieren warum das net geht?
in dem array sind objekte (oder eben null)

Die fehlermeldung ist:
"Expression of Type 'INT' Cannot be Indexed"
|moonForge|
Ich bin Pokémon Meisterin seit 1998!

Nicdel

BeitragDi, Dez 15, 2009 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum nimmst du nicht

Code: [AUSKLAPPEN]

If ObjektMap[xsuche + Self.x,ysuche + Self.y,Self.z] <> Self Then


?

Edit: Liegt anscheinend daran, dass not ein Integer ist. Und du testest mit einem Array. Oder so ähnlich Very Happy
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

DaysShadow

BeitragDi, Dez 15, 2009 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Probier es mal mit Klammern, folgendes geht:

Code: [AUSKLAPPEN]
SuperStrict

Local bla:Int = 0

If Not (bla = 5) Print "yep"


Folgendes nicht:

Code: [AUSKLAPPEN]
SuperStrict

Local bla:Int = 0

If Not bla = 5 Print "yep"


MfG DaysShadow
Blessed is the mind too small for doubt

AnniXa

BeitragDi, Dez 15, 2009 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
ah, okay.
auf <> bin ich nun irgendwie nicht gekommen =) danke.

ansonsten sollte ich mir eh angewöhnen alles zu klammern was geht (oder?)
|moonForge|
Ich bin Pokémon Meisterin seit 1998!

Nicdel

BeitragDi, Dez 15, 2009 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Warum nicht? Pass aber auf, dass es nicht zu unübersichtlich wird Wink
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

DaysShadow

BeitragDi, Dez 15, 2009 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ein Klammerpaar zuviel schadet nicht, eins zuwenig schon, gerade bei logischen Ausdrücken. Wink

MfG DaysShadow
Blessed is the mind too small for doubt

Artemis

BeitragDi, Dez 15, 2009 22:15
Antworten mit Zitat
Benutzer-Profile anzeigen
In der BlitzMax-Hilfe gibt es einen Abschnitt Language > Expressions, in dem alle möglichen Ausdrücke nach der „Wichtigkeit“ geordnet sind. Da sieht man auch, dass Not wichtiger ist als ein =, er also bei deinem Beispiel folgendes macht:

Code: [AUSKLAPPEN]
(Not (ObjektMap[xsuche + Self.x,ysuche + Self.y,Self.z])) = Self


Zuerst das Element aus dem Array holen, dann ein Not anwenden, was dann in einem True oder False resultiert.

Dann wird dieser Boolsche Wert mit Self verglichen, was natürlich nie eine wahre Bedinung gibt.

Also generell: Einfach ab und zu mal durch die BlitzMax-Hilfe stöbern. Da stößt man immer wieder auf interessante Dinge, die man vorher nicht wusste oder die vorher nicht klar waren.

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group