Extremer Grafikfehler+Bei Hintergrundbewegung Spieler weg

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Nichts95

Betreff: Extremer Grafikfehler+Bei Hintergrundbewegung Spieler weg

BeitragFr, Jun 01, 2007 18:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo, seit einiger Zeit Arbeite ich an einem 2D-SPiel. Heute wollte ich eigentlich die erste Landschaft anfertigen allerdings wird beim Bewegen durch die Landschaft die Spielfigur ausgeblendet... Und als dass noch nicht genug wäre bekomme ich nach dem Drücken einer Steuertaste lauter schwarzer Streifen auf dem Bildschirm Evil or Very Mad Der Code ist in zwei Dateien gepeichert, da ich natürlich mehrereLandschaften machen will wenn ich dieses Problem gelöst habe^^
Also, hier das Hauptprogramm:
Code: [AUSKLAPPEN]

...
Function zeichnen()

If oldx# <> x# Or oldy# <> y# Then ;Nur erneuern wenn Alte Position anders als derzeitige ist um flackern vorzubeugen


   Cls
   DrawImage spielergrafik, x#,y#
   ;If KeyDown(205) winkel = winkel + 1
   ;If KeyDown(203) winkel = winkel + 359
   winkel = winkel Mod 360

   RotateImage spieler(winkel), winkel
Flip


;DrawImage spieler(winkel), x#,y#   
EndIf
oldx# = x#
oldy# = y#
End Function

Function steuerung() ;Steuerung - erklärt sich ja von selbst ;-)
If KeyDown(200) Then
Cls
y# = y# - geschwindigkeit
;yst = yst - geschwindigkeit
EndIf
If KeyDown(208) Then
Cls
y# = y# + geschwindigkeit
;yst = yst + geschwindigkeit
EndIf
If KeyDown(203) Then
Cls
x# = x# - geschwindigkeit
;xst = xst - geschwindigkeit
EndIf
If KeyDown(205) Then
Cls
x# = x# + geschwindigkeit
;xst = xst + geschwindigkeit
EndIf

Include "maps/industry.bb"

End Function

Und hier der Code von der Map "Industry":
Code: [AUSKLAPPEN]

;Industrielandschaft
boden = LoadImage ("grafiken\hintergrund_industry.bmp")
mauer1 = LoadImage ("grafiken\mauer1.bmp")

Repeat ;Nur für Verändern der Map

If oldxst <> xst Or oldyst <> yst Then
;Boden
TileBlock boden, xst, yst
;Ende von Boden

;Lange Mauer - senkrecht
DrawImage mauer1, xst + 800, yst +260
DrawImage mauer1, xst + 800, yst +280
DrawImage mauer1, xst + 800, yst +300
DrawImage mauer1, xst + 800, yst +320
DrawImage mauer1, xst + 800, yst +340
DrawImage mauer1, xst + 800, yst +360
;Ende von langer Mauer
oldxst = xst
oldyst = yst

DrawImage spieler(winkel),x#,y#
EndIf

If KeyDown(200) Then
Cls
yst = yst - geschwindigkeit
DrawImage spieler(winkel),x#,y#
EndIf
If KeyDown(208) Then
Cls
yst = yst + geschwindigkeit
DrawImage spieler(winkel),x#,y#
EndIf
If KeyDown(203) Then
Cls
xst = xst - geschwindigkeit
DrawImage spieler(winkel),x#,y#
EndIf
If KeyDown(205) Then
xst = xst + geschwindigkeit
DrawImage spieler(winkel),x#,y#
EndIf
Until KeyDown(1)
 

Beatenvoy

BeitragFr, Jun 01, 2007 19:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil du jeden tastendruck alles löschst Very Happy

Da ist der Fehler drin :

Code: [AUSKLAPPEN]
If KeyDown(200) Then
Cls
y# = y# - geschwindigkeit
;yst = yst - geschwindigkeit
EndIf
If KeyDown(208) Then
Cls
y# = y# + geschwindigkeit
;yst = yst + geschwindigkeit
EndIf
If KeyDown(203) Then
Cls
x# = x# - geschwindigkeit
;xst = xst - geschwindigkeit
EndIf
If KeyDown(205) Then
Cls
x# = x# + geschwindigkeit
;xst = xst + geschwindigkeit
EndIf
 

Nichts95

BeitragSa, Jun 02, 2007 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Hat nichts gebracht als ich die Cls auskommentiert habe... Sad Was mir gerade aufgefallen ist: Wer den (Haupt-)Code am Anfang betrachtet, wird ja sicherlich bemerken dass da eine "Smileyfarbeabfrage" ist, und wenn ich dann die entsprechende Zahl eingegeben habe, taucht er plötzlich auf und dann ist er plötzlich wieder weg...

Rongo Matane

BeitragMo, Jun 04, 2007 15:30
Antworten mit Zitat
Benutzer-Profile anzeigen
ähm setbuffer backbuffer() hast du aber drin, oder? Very Happy sonst könnts flackern ^^

das is generell alles etwas komisch...vllt solltest du dich erstmal an was einfacherem versuchen, sry wenn ich falsch lieg, aber mir scheints zumindest so, dass du noch ein paar Tuts durcharbeiten solltest^^

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group