DDPixmap::create() - failed to create surface

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Kekskiller

Betreff: DDPixmap::create() - failed to create surface

BeitragSa, Feb 14, 2004 21:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!
Ich bastele derzeit an einer rpgeingine ähnlich wie Golden Sun und habe
dabei ein sehr unangenehmes Problem im Grakimodus 320,240,16,1.
Denn wenn ich vesuche eine Karte zu kreieren , welche größer ist als
eine , welche den Bildschirm ausfüllt , bekomme ich die Nachricht:
DDPixmap::create() -
failed to create surface
Sorecht habe ich noch nicht verstanden , was genau damit gemeint ist
aber im Fenstermodus funktioniert es und auch als Canva.
Hier ist der Code ( bitte nicht wundern , er ist noch nicht ganz fertig , da
ich ihn erst heute Nachmittag angefangen habe ) :
Zitat:

Global gardenlowerpic=LoadImage("garden_lower.png"):MaskImage gardenlowerpic,255,0,255
Global gardenupperpic=LoadImage("garden_upper.png"):MaskImage gardenupperpic,255,0,255
Global garden_lower=LoadAnimImage("garden_lower.png",16,16,0,192):MaskImage garden_lower,255,0,255
Global garden_upper=LoadAnimImage("garden_upper.png",16,16,0,192):MaskImage garden_upper,255,0,255
Global forestlowerpic=LoadImage("forest_lower.png"):MaskImage forestlowerpic,255,0,255
Global forestupperpic=LoadImage("forest_upper.png"):MaskImage forestupperpic,255,0,255
Global forest_lower=LoadAnimImage("forest_lower.png",16,16,0,192):MaskImage forest_lower,255,0,255
Global forest_upper=LoadAnimImage("forest_upper.png",16,16,0,192):MaskImage forest_upper,255,0,255
Global isaac=LoadAnimImage("Isaac.png",16,28,0,12):MaskImage isaac,255,0,255:MidHandle isaac

Global herox,heroy,herorun,heroanimation=0,herorichtung,heroframe,heroframetimer
Dim tastengedrueckt(4)
Global lowerbild,upperbild
Global breite,hoehe,chip,name$,musik,monster,maximalbreite=200,maximalhoehe=200
Dim lowerchip(maximalbreite*maximalhoehe),upperchip(maximalbreite*maximalhoehe),chipx(maximalbreite),chipy(maximalhoehe)

LoadMap("Startkarte.map")

Graphics 320,240,16,1

While KeyHit(1)=0
event=WaitEvent(1)
Cls
DrawImage lowerbild,0,0
DrawImage upperbild,0,0
MoveHero()
DrawHero()
Flip
Wend

Function LoadMap(Kartendateiname$)
If Kartendateiname$<>"" Then
FreeImage kartenbild
kartendateistream=ReadFile(Kartendateiname$)
name$=ReadString(kartendateistream)
breite=ReadInt(kartendateistream)
hoehe=ReadInt(kartendateistream)
chip=ReadInt(kartendateistream)
musik=ReadInt(kartendateistream)
monster=ReadInt(kartendateistream)
For zy=1 To hoehe
For zx=1 To breite
z=z+1
chipx(zx)=ReadInt(kartendateistream)-16
chipy(zy)=ReadInt(kartendateistream)-16
Next
Next
z=0
For z=1 To breite*hoehe
lowerchip(z)=ReadInt(kartendateistream)
Next
z=0
For z=1 To breite*hoehe
upperchip(z)=ReadInt(kartendateistream)
Next
CloseFile kartendateistream
lowerbild=CreateImage(breite*16,hoehe*16)
upperbild=CreateImage(breite*16,hoehe*16)
z=0
For zx=1 To breite
For zy=1 To hoehe
z=z+1
Select chip
Case 1
SetBuffer ImageBuffer(lowerbild)
DrawImage garden_lower,chipx(zx),chipy(zy),lowerchip(z)
SetBuffer ImageBuffer(upperbild)
DrawImage garden_upper,chipx(zx),chipy(zy),upperchip(z)
Case 2
SetBuffer ImageBuffer(lowerbild)
DrawImage forest_Lower,chipx(zx),chipy(zy),lowerchip(z)
SetBuffer ImageBuffer(upperbild)
DrawImage forest_Upper,chipx(zx),chipy(zy),upperchip(z)
End Select
Next
Next
EndIf
End Function

Function MoveHero()
If KeyDown(156)=1 Then herorun=1 Else herorun=0
Select herorun
Case 0
If KeyDown(200)=1 Then herorichtung=1:heroy=heroy-1:tastengedrueckt(1)=1 Else tastengedrueckt(1)=0
If KeyDown(208)=1 Then herorichtung=3:heroy=heroy+1:tastengedrueckt(3)=1 Else tastengedrueckt(3)=0
If KeyDown(203)=1 Then herorichtung=4:herox=herox-1:tastengedrueckt(4)=1 Else tastengedrueckt(4)=0
If KeyDown(205)=1 Then herorichtung=2:herox=herox+1:tastengedrueckt(2)=1 Else tastengedrueckt(2)=0
Case 1
If KeyDown(200)=1 Then herorichtung=1:heroy=heroy-2:tastengedrueckt(1)=1 Else tastengedrueckt(1)=0
If KeyDown(208)=1 Then herorichtung=3:heroy=heroy+2:tastengedrueckt(3)=1 Else tastengedrueckt(3)=0
If KeyDown(203)=1 Then herorichtung=4:herox=herox-2:tastengedrueckt(4)=1 Else tastengedrueckt(4)=0
If KeyDown(205)=1 Then herorichtung=2:herox=herox+2:tastengedrueckt(2)=1 Else tastengedrueckt(2)=0
End Select
If tastengedrueckt(1)=1 Or tastengedrueckt(2)=1 Or tastengedrueckt(3)=1 Or tastengedrueckt(4)=1 Then
heroframetimer=heroframetimer+1
Select herorun
Case 0:If heroframetimer>=10 Then heroanimation=heroanimation+1:heroframetimer=0
Case 1:If heroframetimer>=5 Then heroanimation=heroanimation+1:heroframetimer=0
End Select
If heroanimation>3 Then heroanimation=0
Else
heroframetimer=9
heroanimation=1
EndIf
Select heroanimation
Case 0:heroframe=-1
Case 1:heroframe=0
Case 2:heroframe=1
Case 3:heroframe=0
End Select
End Function

Function DrawHero()
Select herorichtung
Case 1:DrawImage isaac,herox,heroy,1+heroframe
Case 2:DrawImage isaac,herox,heroy,4+heroframe
Case 3:DrawImage isaac,herox,heroy,7+heroframe
Case 4:DrawImage isaac,herox,heroy,10+heroframe
End Select
End Function

Vielleicht kann mit einer ja erklären , was genau es sich damit auf
sich hat.Ich hätte es auch im Fenstermodus machen können , aber
somit wäre das Fenster viel zu klein und man könnte nichts sehen.
Achja , ich benutze Images , um die Karte anzuzeigen , da einzelne
gezeichnete Tiles zu lange dauern würden.
 

BIG BUG

BeitragSa, Feb 14, 2004 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
So weit ich weiß haben manche Grafikkarten Probleme mit Bildern, die größer als die Bildschirmauflösung sind...
Da musst du wohl die Karte in kleinere Häppchen zerteilen.
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group