Weiß statt Image?
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
FirstdeathmakerBetreff: Weiß statt Image? |
Di, Nov 01, 2005 19:19 Antworten mit Zitat |
|
---|---|---|
Ich hab ein sehr komisches Problem: Der Mauszeiger in meinem Spiel ist auf einmal nur noch weiß, ebenso die Schüsse. Wenn ich ein anderes Bild als Mauszeiger lade, wird das weiße Kästchen immer noch angezeigt, es hat immer genau die Maße wie das Bild dass eigentlich da hin sollte. Ich kann mir dass einfach nicht erklären, zumal ich vor dem Einzeichnen noch
Code: [AUSKLAPPEN] SetAlpha 1
SetColor 255,255,255 SetBlend(ALPHABLEND) mache. Anbei noch ein Screenshot vom Hauptmenü wo man den Fehler drauf sehen kann (Mit rotem Pfeil markiert). Das weiße Kästchen sollte eigentlich der Mauszeiger sein. Screenshot |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
bruZard |
Di, Nov 01, 2005 20:07 Antworten mit Zitat |
|
---|---|---|
SetBlend(ALPHABLEND) macht man in der Regel nur einmal ... danach ist dieses State für OGL für die Laufzeit des Programms gesetzt.
Außerdem: Man muss den Blend-Mode vor der Verwendung eines Befehls setzen der diesen Blendmode mit Parametern versorgt. Wenn Du also in Deinem Programm ALPHABLEND benutzen willst, setzt Du zuerst den Blendmode und definierst danach für jedes zu zeichnende Objekt den Alphawert. |
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Firstdeathmaker |
Di, Nov 01, 2005 23:37 Antworten mit Zitat |
|
---|---|---|
Zitat: SetBlend(ALPHABLEND) macht man in der Regel nur einmal
Bei meinem Programm wird zwischendrin bei manchen Objekten der Lightblend verwendet, deshalb habe ich dort einen Alphablendbefehl gesetzt. Dass mit der Alphawertzuweisung habe ich auch schon umgestellt, dass hatte aber keine Auswirkungen, weil der Wert unabhängig davon gespeichert wird welcher Blendmode gerade aktiv ist. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
soli |
Mi, Nov 02, 2005 14:13 Antworten mit Zitat |
|
---|---|---|
Vielleicht zeichnest du das Alpha Bild auch zu oft übereinander
ohne zwischendurch Cls auszuführen. Nur so eine Idee...... Bruzard und Fetze habens mir hier erklärt warum das passiert. https://www.blitzforum.de/view...p;start=20 |
||
solitaire |
Firstdeathmaker |
Do, Nov 03, 2005 0:35 Antworten mit Zitat |
|
---|---|---|
Ich hab gerade festgestellt, dass sich BMP-Bilder problemlos einzeichnen lassen. Bei den Schüssen tritt nämlich das gleiche Problem auf. BPM´s werden richtig eingezeichnet, .PNG´s nur als komplett weißes Image. Geladen werden die Schussimages so:
Code: [AUSKLAPPEN] EQ_Info_Weapon.Image = LoadImage(Imagepath)
Und sie werden auch nur einmal eingezeichnet, das hab ich kontrolliert. Noch etwas kommt mir komisch vor. Bei mir wird der Befehl SetGraphicsDriver GLMax2DDriver() nicht erkannt. Ich hab jedoch Version 1.10 installiert. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Justus |
Do, Nov 03, 2005 0:56 Antworten mit Zitat |
|
---|---|---|
Hast du die aktuellsten Treiber und die Qualiätseinstellungen auf maximum? | ||
Firstdeathmaker |
Do, Nov 03, 2005 8:17 Antworten mit Zitat |
|
---|---|---|
Jepp, alles sehr aktuell.
Aber daran dürfte es nicht liegen, der Mauzeiger im Spiel direkt ist z.B. das gleiche Image wie der im Hauptmenü, und er wird genauso geladen wie der im Hauptmenü (Über die globale Mini-Gui). |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
bruZard |
Do, Nov 03, 2005 9:26 Antworten mit Zitat |
|
---|---|---|
Hast Du den PNG Loader mittels Code: [AUSKLAPPEN] Import BRL.PNGLoader eingebunden?
|
||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
soli |
Do, Nov 03, 2005 10:47 Antworten mit Zitat |
|
---|---|---|
Zitat: BPM´s werden richtig eingezeichnet,
Ich dachte bmp unterstützt gar kein Alphachannel. |
||
solitaire |
bruZard |
Do, Nov 03, 2005 10:58 Antworten mit Zitat |
|
---|---|---|
Tun sie auch nicht... | ||
PIV 2,4GHz - 1GB DDR 333 - ATI Radeon9600 - WinXP - DX9.0c - BMax 1.14 - B3D 1.91 - 1280x1024x32
User posted image |
Firstdeathmaker |
Do, Nov 03, 2005 15:53 Antworten mit Zitat |
|
---|---|---|
Ja, BMP unterstützen natürlich kein Alpha, deshalb nehme ich ja auch PNG´s um die Übergänge zu bekommen.
@ BruZard: Nein, dass habe ich nicht eingebunden, muss man dass extra nochmal machen? Ich meine ich habe bisher auch nie irgentwelche Module einbinden müssen wenn ich mit transparenten PNG´s gearbeitet hab, und ein paar PNG´s funktionieren ja sogar richtig. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
soli |
Fr, Nov 04, 2005 6:03 Antworten mit Zitat |
|
---|---|---|
Kannst du das Problem nicht eingrenzen?
Du könntest eines der ansonsten funktionierenden PNG an die Stelle setzen, dann siehst du sofort ob es am Code liegt. Eventuell auch mal testweise direkt vor dem gezeichneten Mauszeiger ein CLS machen, oder ein Delay danach. Dann müsstest du sehen können ob der Alphachannel überzeichnet wird. |
||
solitaire |
Firstdeathmaker |
Fr, Nov 04, 2005 8:16 Antworten mit Zitat |
|
---|---|---|
Es muss irgentwie am Code liegen, dass mit dem ersetzen des PNG´s durch andere hab ich schon gemacht, dann nimmt das weiße Kästchen die Größe des neuen Bildes an.
Wenn ich direkt vor dem zeichnen des Mauszeigers ein CLS setze, wird dieser nur noch alleine auf dem Bildschirm angezeigt, aber auch wieder als weißes Kästchen. Ich hab ne Vermutung, vielleicht liegt es auch an meinem PC? Hier ist eine compilierte Version des Spieles, könntet ihr die mal ausprobieren und dann schreiben ob der Mauszeiger im Startmenü weiß ist und ob ein Teil der Schüsse welches das Startschiff abfeuert (Leertaste zum feuern drücken) auch weiß ist? Wenn ja, muss es irgendwie an nem Wackelkontakt mit meinen PNG-Treibern sein, da ja manchmal die PNG´s richtig und manchmal falsch angezeigt werden (z.B. wird der gleiche Mauszeiger des Menü´s im Spiel richtig angezeigt, obwohl die Zeichenroutine die gleiche bleibt). www.illusion-games.de/build01.rar |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
soli |
Fr, Nov 04, 2005 9:31 Antworten mit Zitat |
|
---|---|---|
Dein Mauszeiger ist bei mir durchsichtig, quadratisch, hellgrau.
Die Schüsse aus dem Raumschiff scheinen solides weiss zu sein. (Geht ein wenig schnell um es genau zu sagen.) Optisch kommt dein Spiel ganz gut daher, nur hab ich leider bei mir nur 30FPS, was es ein wenig lahm macht. |
||
solitaire |
Dreamora |
Fr, Nov 04, 2005 10:05 Antworten mit Zitat |
|
---|---|---|
Rein weiss wäre eigentlich nur möglich wenn die Textur nicht geladen wird.
Import Brl.PNGLoader wurde oben schon genannt (nur nötig wenn du Framework benutzt). Eine andere Möglichkeit wäre eine Verwendung von 16Bit Farbtiefe anstelle von 32Bit ... Vielleicht ist es aber auch nur sonst irgend ein Problem ... mit Strict, Debug und ohne Framework hast du das ganze schonmal durchlaufen lassen, um zu sehen ob es eventuell andere Probleme gibt? (viele vergessen, das Framework leider auch die debugnotwendigen Module für Arrayprobleme und andere Fehler rauswirft, deshalb NIE Framework während der Entwicklung und des Testens) Übrigens: Gibt es einen Grund, dass du dein Spiel nicht als "GUI Build" gemacht hast (zumal es ja Vollbild läuft)? Dann wäre die Konsole weg die aktuell kommt. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Justus |
Fr, Nov 04, 2005 12:18 Antworten mit Zitat |
|
---|---|---|
Also ich habe es jetzt mal kurz ausprobiert. Auch bei mir erscheint nur ein grauer halbtransparenter Kasten.
Kann es vielleicht sein, dass du bevor du das Bild einzeichnest mal Code: [AUSKLAPPEN] SetColor 0,0,0
drin hast? Auf jeden Fall habe ich es auch mal hiermit ausprobiert: Zitat: cursor = LoadImage("cursor.png")
SetGraphicsDriver(GLMax2DDriver()) Graphics 1024,768,32,60 SetBlend(ALPHABLEND) Repeat Cls DrawImage cursor,400,300 Flip FlushMem() Until KeyHit(KEY_ESCAPE) Und das lief wunderbar, d.h. es kam dieser Cursor zustande: |
||
Firstdeathmaker |
Fr, Nov 04, 2005 17:53 Antworten mit Zitat |
|
---|---|---|
@ Soli: Dass durchsichtig graue kommt daher, dass ich zum testen ob es vielleicht an Setalpha liegt vor dem einzeichnen Alpha auf 0.5 gesetzt hatte, aber es noch nicht wieder rausgenommen hatte. Das Spiel ist noch in einem sehr frühen Stadium, deshalb habe ich es bisher noch nicht vorgestellt, nur das Problem wirft mich total über den Haufen. Es gibt auch noch viel zu optimieren, die 30 FPS werde ich noch hochschrauben können (Bei mir läuft es teilweise mit 999 FPS, aber mein Rechner ist ja nicht präsentativ. Ich werde es daher auch vor Veröffentlichung noch auf meinem alten probieren).
@ Dreamora: Hmm, dass mit dem Textur nicht geladen muss ich nochmal überprüfen, vielleicht sind die Ladepfade falsch, obwohl der doch eigendlich dann einen Fehler angeben müsste? Ich benutze kein Framework, nur Strict um mich zu nem übersichtlicheren Stil zu zwingen. Das mit dem GUI-Build wusste ich noch nicht, es hat mich immer gewundert warum die Konsole erscheint, aber danke für den Hinweis! @ Justus: Nee, setcolor hab ich nicht drin, dann wäre das Bild warscheinlich Schwarz und nicht weiß. Also das Image muss in Ordnung sein, wenn man in einer Station mit "Enter" landet (Bei jeder Station gibt es eine rechteckige Landeluke, manchmal noch etwas falsch gesetzt, ist eben erst Testweise), erscheint der Mauszeiger auch korrekt eingezeichnet. Edit: Ok, ich habe folgendes noch herausgefunden: Mit dem Laden scheint wohl alles ok zu sein, wenn ich direkt nach dem Laden das Bild einzeln anzeigen lasse ist alles ok. Aber wenn ich jetzt in den normalen Programm das Bild einzeln einzeichne und anzeigen lasse ist das Bild weiß. Es ist also irgentwie so, als ob das Bild zwischendurch irgentwo verändert und mit weiß überschrieben wird. |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Dreamora |
Fr, Nov 04, 2005 21:52 Antworten mit Zitat |
|
---|---|---|
Ich habe gerade versucht dein Problem auch hinzubekommen.
Also der Cursor bleibt bei mir auch weiss. Wenn ich jedoch Cur.png (nehme an das ist der Cursor) mit einer anderen Textur ersetze, ändert sich das ganze nicht. Könntest du eventuell den Zeichnungspart und auch den Ladeblock für den Cursor angeben? Eventuell liegts an den Ladeflags oder an einer bestimmten Befehlskombination vor dem Zeichnen. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Firstdeathmaker |
Sa, Nov 05, 2005 4:35 Antworten mit Zitat |
|
---|---|---|
Ja sicher, hier:
Lademethode (von der TGUI) Code: [AUSKLAPPEN] Method AddCursor(Cursorimagepath:String)
Local C:CGCURSOR = New CGCURSOR C.Image = LoadImage(Cursorimagepath) C.PRIOR = 1 CGGUI_OBJECTS.addlast(C) C.CGGUI = Self End Method Und Einzeichenmethode von CGCURSOR Code: [AUSKLAPPEN] Method process()
SetColor 255,255,255 'SetBlend(ALPHABLEND) 'SetAlpha 1.0 DrawImage Image,CGGUI.MOUSE_X,CGGUI.MOUSE_Y End Method |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Justus |
Sa, Nov 05, 2005 11:28 Antworten mit Zitat |
|
---|---|---|
Zitat: @ Justus: Nee, setcolor hab ich nicht drin, dann wäre das Bild warscheinlich Schwarz und nicht weiß.
Ich dachte, denn Schwarz*halbtransparent = Grau (?) |
||
Übersicht BlitzMax, BlitzMax NG Beginners-Corner
Powered by phpBB © 2001 - 2006, phpBB Group