LoadSprite / Transparenz

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

Dirk Knoop

Betreff: LoadSprite / Transparenz

BeitragMo, Sep 11, 2006 13:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

ich programmiere nun ja auch schon einige Jahre, kam bislang aber immer ohne Sprites aus.

Ich möchte nun ein Hinterggrundbild (1024*768 Pixel) laden und anzeigen.
Anschließend möchte ich ein anderes .png-Bild (800*600) Pixel laden und dieses mit 50 % Transparenz auf das zuvor angezeigte Hintergrundbild anzeigen.

Das müsste ja irgendwie wie folgt gehen:

Code: [AUSKLAPPEN]

Graphics3D 1024,768,16,2
SetBuffer BackBuffer()
camera=CreateCamera()

hintergrund=LoadImage("hintergrund.png")

sprite=LoadSprite("mein Gesicht.png")

PositionEntity sprite,0,0,5

While Not KeyHit(1)
Cls
DrawImage hintergrund,0,0

RenderWorld
Flip
Wend
End



Nun zu meinen Problemen:

1. "DrawImage hintergrund,0,0" wird nicht ausgeführt, ich sehe nur einen schwarzen Hintergrund.

2. das Bild, welches transparent erscheinen soll, wird verzerrt dargestellt

Wie muß ich das programmieren, daß sowohl der Hintergrund dargestellt wird und das sprite-Bild beispielsweise mit 50 % Transparenz an den
x/y-Koodinaten 50,50 eines 2-dimensionalen Feldes angezeigt wird ?

Vielen Dank schon einmal,

Dirk Knoop
www.kostenloser-fussballmanager.de
www.discaim.de - weil Spaß kein Zufall ist
www.torchance.de - ein etwas anderer Fußball-Manager
 

Dreamora

BeitragMo, Sep 11, 2006 13:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst CameraClsMode umstellen, wenn du 2D hinter 3D haben willst, weil sonst RenderWorld den 2D Backdrop einfach ausradieren wird.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Blitzcoder

Newsposter

BeitragMo, Sep 11, 2006 13:44
Antworten mit Zitat
Benutzer-Profile anzeigen
So:
Code: [AUSKLAPPEN]
Graphics3D 1024,768,16,2
SetBuffer BackBuffer()
camera=CreateCamera()

hintergrund=loadsprite("bild1.jpg")
PositionEntity hintergrund,0,0,2
sprite=LoadSprite("bild2.jpg")
PositionEntity sprite,0,0,1
EntityAlpha sprite,0.5

While Not KeyHit(1)
Cls
;DrawImage hintergrund,0,0

RenderWorld
Flip
Wend
End


MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Dirk Knoop

BeitragMo, Sep 11, 2006 15:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Danke für Eure Antworten.
Ich habe den Code einmal ausprobiert. Leider werden die Grafiken ein wenig vergrößert dargestellt.

Bei dem Hintergrundbild, welches aus 1024*768 Pixel besteht, fehlt oben, unten, links und rechts immer ein Teil. Das Bild wird etwas vergrößert dargestellt, als es im Original ist.

Bei dem kleinen ist das Bild breiter und höher als im Originalzustand.

Was muß ich da machen, daß beide Bilder 1:1 angezeigt werden, also nicht vergrößert ?


Gruß,

Dirk Knoop
www.kostenloser-fussballmanager.de
www.discaim.de - weil Spaß kein Zufall ist
www.torchance.de - ein etwas anderer Fußball-Manager

Blitzcoder

Newsposter

BeitragMo, Sep 11, 2006 15:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Du musst das eine Sprite mit dem Bild etwas nach vorne setzten. Ich habe es einfach zum testen auf die Position 0,0,1 gesetzt. Wenn du es kleiner haben willst, setz es z.b. auf 0,0,1.5 oder so. Musst du ausprobieren. man kann das glaube ich auch irgendwie berechnen, aber das fällt mir gerade nicht ein.

MfG Blitzcoder
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Christoph

BeitragMo, Sep 11, 2006 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
positionentity camera,0,0,-graphicswidth()/2

Glaub ich... Wink

Blitzcoder

Newsposter

BeitragMo, Sep 11, 2006 16:22
Antworten mit Zitat
Benutzer-Profile anzeigen
das kann es nicht sein, erstens wäre es hinter dem betrachter(der kamera) und zweitens bei 800x600 auf der position 300. das ist wohl zu weit weg...
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)
 

Ensign Joe

BeitragMo, Sep 11, 2006 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
also bei mir gehts viel einfacher:

Positionentity bild,0,0,graphicswidth()

und dann kann man die sprites 1:1 mit der 2d-größe skalieren.
Also Scalesprite bild,imagewidth/texturewidth,imageheight/textureheight

Smile
Ich habe jetzt eine Pommesbude aufgemacht am Münchner Hauptbahnhof.
Und da ich Herbert Görgens heiße, heißt diese Pommesbude
Herbert's Pommesbude Smile

skey-z

BeitragMo, Sep 11, 2006 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier findest du ein Tut, welches sich genau mit dem problem des Positionierens von Sprites beschäftigt

LINK
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter

Blitzcoder

Newsposter

BeitragMo, Sep 11, 2006 19:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke, Skey-Z. Sowas konnte ich gerade gebrauchen.
P4 3 Ghz@3,55Ghz|GF 6600GT 256MB|Samsung 80GB | 2x Samsung 160GB|2048MB DDR-400 RAM|6 Mbit Flatrate | Logitech G15 | Samsung 225BW-TFT | Ubuntu Gutsy Linux | Windows Vista | Desktop | Blog | CollIDE | Worklog
________________
|°°°°°°°°°°°°°°||'""|""\__,_
|______________ ||__ |__|__ |)
|(@) |(@)"""**|(@)(@)****|(@)

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group