Problem mit "getblend()"
Übersicht

EquilibriumBetreff: Problem mit "getblend()" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hiho wieder mal
ich versuche mal mein problem zu schildern: Zitat: Function GetBlend()
Returns 0 (SOLIDBLEND), 1 (MASKBLEND) ,2 (ALPHABLEND), 3 (LIGHTBLEND) or 4 (SHADEBLEND). Description Get current blendmode setting. sagt die BMax-Hilfe.... soweit sogut.... um das ganze zu testen bastle ich mir mal ein testprog: Code: [AUSKLAPPEN] Graphics 30,30
SetBlend(SOLIDBLEND) x=GetBlend() Print(x) End nun meine resultate: SOLIDBLEND x=2 (nicht 0) MASKBLEND x=1 (wie in der Hilfe beschrieben) ALPHABLEND x=3 (nicht 2) LIGHTBLEND x=4 (nicht 3) SHADEBLEND x=5 (nicht 4) leicht verwirrt aber nungut... vieleicht ein fehler in der hilfe... aber wenn ich nun SetBlend(SOLIDBLEND|MASKBLEND) wähle ist x=3 und somit das selbe wie SetBlend(ALPHABLEND) :S Verwirrung perfekt ![]() wo liegt der Fehler? (warscheinlich bei mir ![]() was ich im Endeffekt eigentlich haben möchte sind die momentanen Blend-Einstellungen zu speichern um später wieder darauf zugreiffen zu können.... ein grosses DANKE von mir schon mal für jegliche Hilfe ![]() |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da ist der Hilfetext wohl veraltet.
Code: [AUSKLAPPEN] Graphics 30,30
Print SOLIDBLEND Print MASKBLEND Print ALPHABLEND Print LIGHTBLEND Print SHADEBLEND End Ergo: Die Funktion gibt schon das richtige zurück. Arbeite mit den Konstanten und du hast keine Probleme. Und das bei SOLIDBLEND | MASKBLEND dann ALPHABLEND rauskommt, ist total logisch. Denn 1 OR 2 ist 3. Und das wiederum ist Alphablend. |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nur um das Fehlverständnis auch noch auszuräumen: Die Blending Flags können NICHT kombiniert werden. Es sind "entweder oder" flags, also Solid oder Mask oder Alpha oder Light oder Shade | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Equilibrium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
danke euch beiden ![]() dank euren beiden beiträgen und ein paar experimentellen spielereien von meiner seite ist das ganze jetzt doch viel klarer ^^ und @dreamora was du erwähnt hast war tatsächlich ein zentraler Denkfehler von mir... habe wohl Zitat: These blendmodes can be mixed using the | (OR) operator.
aus nem tutorial falsch interpretiert ![]() Wenn wer schon bei dem "Ding" sind... noch ne reine Interessenfrage... tut eigentlich nichts mehr zur sache aber würde mich dennoch interessieren... Wieso ist 1 or 2 ->3 ? Die Bedeutung von "or" als "oder" ist mir klar.... auch die logischen abhängigkeiten die sich mit or schaffen lassen.. aber wie man 2 zahlen mit "or" verrechnen kann.... ka ![]() näjo wär schön wenn mir das jemand beantworten könnte... thx schonmal |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
or ist nicht das gleiche wie |
or ist eine boolean operation, die gibt nur wahr oder falsch zurück | hingegen ist eine bit weise operation 1 | 2 ist 00000001 | 00000010 = 00000011 Allerdings frage ich mich in welchem tutorial so ein elementarer Fehler steht, denn eigentlich sollte jeder Wissen, das nur 1 Blending auf einmal aktiv sein kann (Hardware kann nur eine Blendfunktion auf einmal ausführen, zumindest solange man nicht Multipass + Shader nutzt). Wer in die Sources der Module schaut wird das auch sofort einsetzen, denn dort ist select activeBlend case solidblend case maskblend ... nix mit if activeBlend & solidblend else if activeBlend & maskblend etc ![]() |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
maximilian |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Dreamora: | ist OR, aber lediglich binär. Wenn du es nicht OR nennst, wie dann? Wenn man von | spricht, sollte es klar sein, dass damit das binäre OR gemeint ist.
Was du da machst ist Haarspalterei. |
||
Variety is the spice of life. One day ignore people, next day annoy them. |
Equilibrium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
http://www.2dgamecreators.com/...mages.html
is das tutorial... zu finden ganz am ende.. |
||
![]() |
Farbfinsternis |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wozu eigentlich ein so langer Thread? Mir fällt nicht mal ein Grund ein wofür GetBlend() überhaupt da sein könnte ... ich als Programmierer setze aktiv den Blendstate und dessen Wert, wozu sollte ich mich davon überzeugen wollen dass dies auch tatsächlich passiert ist? | ||
Farbfinsternis.tv |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group