Fräge zu | (And)
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
bruZardBetreff: Fräge zu | (And) |
Mi, Jun 29, 2005 13:21 Antworten mit Zitat |
|
---|---|---|
Wenn ich Werte mittels | verknüpfe ... Code: [AUSKLAPPEN] meinwert:Int = wert1:Int|wert2:Int|wert3:Int ... wie bekomme ich die einzelnen Werte wieder auseinander klamüsert? Ich glaube ST hatte da mal was gepostet, ich finde es aber ums Verrecken nicht mehr.
Schonmal Danke für jeden hilfreichen Hinweis |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Suco-XBetreff: ... |
Mi, Jun 29, 2005 13:28 Antworten mit Zitat |
|
---|---|---|
Code: [AUSKLAPPEN] Strict Local SHADOW = 2 Local LIGHT = 4 Local NONE = 8 Local zustand = LIGHT|SHADOW If zustand & SHADOW Print "Shadow" EndIf If zustand & LIGHT Print "LIGHT" EndIf If zustand & NONE Print "None" EndIf Ein kleines Beispiel. Die Werte müssen immer das Doppelte vom vorrigen sein, wenn ich mich nicht irre. Weiter ginge es halt mit 16, 32, 64, 128, 256 |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
bruZard |
Mi, Jun 29, 2005 13:56 Antworten mit Zitat |
|
---|---|---|
Hmm, wenn das nur so funzt ist es nicht tauglich für das was ich brauche ... ich will einen festen Wert mit einer Variablen verknüpfen.
Code: [AUSKLAPPEN] Const IS_GET_ALL:Int = 1 Const IS_GET_LEVEL:Int = 2 Const IS_GET_SKILL:Int = 3 Const IS_GET_BOTH:Int = 4 Local level:Int = 12 ' nur als Beispiel Local skill:Int = 2 iS_GetScores(IS_GET_BOTH|level|skill) 'oder iS_GetScore(IS_GET_LEVEL|level) Das ist nicht aus dem Original-Code, sollte aber verdeutlichen was mir vorschwebt. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Dreamora |
Mi, Jun 29, 2005 13:58 Antworten mit Zitat |
|
---|---|---|
Das ist alles kein Problem. Aber die Variablen dürfen nur 2er Potenzen haben. Also 1,2,4,8,16,32,.... wie die Flags in B3D für Texturen zb. Denn jeder dieser Werte hat eine eigene, eindeutige one-hot BitCodierung und die ist notwendig, damit man sie mit | und & einfach verknüpfen kann. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
bruZard |
Mi, Jun 29, 2005 14:06 Antworten mit Zitat |
|
---|---|---|
Naja, ich kann wohl kaum in der Dokumentation angeben dass Level- und Schwierigkeitsgrad immer als Zweierpotenz angegeben werden muss
Ich werde das dann doch über einzelne Funktionsparameter machen. Trotzdem Danke für Eure Hilfe Jungs. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Dreamora |
Mi, Jun 29, 2005 14:14 Antworten mit Zitat |
|
---|---|---|
Warum kannst du das nicht?
Alternativ kannst du eine Funktion schreiben die ihnen werte zuweist, die einfach 2^value macht mit value 0 bis 22 oder so |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
TheShadowModerator |
Mi, Jun 29, 2005 18:13 Antworten mit Zitat |
|
---|---|---|
bruz du enttäuschst mich wieder :-)
wie wäre es mit: (alle werte hier 0-255 möglich in dem Beispiel) value=(skill SHL 16)|(level SHL 8)|IS_GET so dann machst du so: IS_GET=value&255 level=(value SHR 8)&255 skill=(value SHR 16)&255 so hier ist aber noch unoptimiert... für IS_Get würdest du 3 bits brauchen (geht dann 0-7) Für level 4 bits (geht dann 0-15) für skill 2 bits (geht dann 0-3) insgesamt 3+4+2=9 bits würden reichen wenn man es optimiert |
||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
bruZard |
Mi, Jun 29, 2005 18:42 Antworten mit Zitat |
|
---|---|---|
Nee TheShadow ... soweit war ich schon ... Bitverschiebung geht bei mir nicht weil ich Integer für Level und Skill verwende ....
Ist aber auch egal, ich habe das jetzt direkt über Funktionsparameter gelöst und es funktioniert einwandfrei. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
TheShadowModerator |
Mi, Jun 29, 2005 19:51 Antworten mit Zitat |
|
---|---|---|
wow 2 Mrd Level ? | ||
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2 |
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group