Bits
Übersicht

![]() |
Der EisvogelBetreff: Bits |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
In BB konnte man ja mittels "variable and 8" feststellen, ob das Bit 8 besetzt ist. Ich hab das jetzt mal in BM versucht und irgendwie geht das aber nicht. Hier der Code: [AUSKLAPPEN] If Int(as_game[i,2]) And 1 Then DrawLine 50,70+i*20,450,70+i*20
If Int(as_game[i,2]) And 2 Then DrawLine 50,51+i*20,450,51+i*20 If Int(as_game[i,2]) And 4 Then DrawLine 50,71+i*20,450,71+i*20 Bei diesem Code werden immer alle 3 Linien gezeichnet, obwohl das nicht sein sollte. muss ich das in BM dann anders machen? Also ich hoffe ihr versteht was ich meine. Zur Verdeutlichung: Ich möchte soetwas machen wie bei LoadTexture ![]() EDIT: Ich meine von diesem Befehl die TextureFlags. MfG Der Eisvogel |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Sowas?
Code: [AUSKLAPPEN] Local i:Int=3
If i&1 Print "ok" If i&2 Print "ok2" |
||
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jop genau. Jetzt gehts. Danke! | ||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Immer daran denken:
And, Or sind logische Operatoren, welche nur mit True und False "rechnen" können Die Binären Pendants sind & und |. |
||
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: In BB konnte man ja mittels "variable and 8" feststellen, ob das Bit 8 besetzt ist.
Ich hoffe, du meinst das nicht wörtlich. Um es nochmal zu verdeutlichen: Code: [AUSKLAPPEN] SuperStrict
Framework BRL.Blitz Const FLAG_ONE : Int = %00000001 ' Dezimal = 1 Const FLAG_TWO : Int = %00000010 ' Dezimal = 2 Const FLAG_THREE : Int = %00000100 ' Dezimal = 4 Local flags : Int = 0 ' Flags One und Two setzen flags |: FLAG_ONE ' flags = flags | FLAG_ONE flags |: FLAG_TWO ' flags = flags | FLAG_TWO DebugFlags(flags) ' Flag One entfernen flags &: (~FLAG_ONE) ' flags = flags & ~FLAG_ONE DebugFlags(flags) End Function DebugFlags(value : Int) If value & FLAG_ONE Then .. DebugLog("Flag One gesetzt") If value & FLAG_TWO Then .. DebugLog("Flag Two gesetzt") If value & FLAG_THREE Then .. DebugLog("Flag Three gesetzt") End Function (Kann den Code nicht testen. Event. muss "|:" zu " ![]() Es ist also nicht gut, wenn man hier mit Dezimalwerten wie 5 arbeitet. Das ist nämlich die Kombination aus %100 und %001 bzw. FLAG_ONE und FLAG_TWO. Aus der 5 siehst du nicht sofort heraus, dass es sich um die beiden Flags handelt. Da die Konstanten durch den Compiler am Ende eh durch ihre Werte ersetzt werden, gibt es da auch keine Performancebedenken. Also immer mit Konstanten arbeiten! mfg olli |
||
vertex.dreamfall.at | GitHub |
![]() |
Der Eisvogel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aber irgendwie kostet mich alles ca 5 FPS.
Also immer wenn ich das Abfrage, dann hab ich grad mal eben 5 FPS weniger. Ist das Normal? EDIT: Die Drei Zeilen werden im Moment 19 mal in der Schleife ausgeführt. Es soll aber eigentlich bis zu 30 mal ausgeführt werden. |
||
Ungarische Notation kann nützlich sein.
BlitzMax ; Blitz3D Win 7 Pro 64 Bit ; Intel Core i7-860 ; 8 GB Ram ; ATI HD 5750 1 GB Projekte: Window-Crasher Ich liebe es mit der WinAPI zu spielen. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group