DDPixmap::create() - failed to create surface
Übersicht

KekskillerBetreff: DDPixmap::create() - failed to create surface |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group