Seite 1 von 4

Clearscreen und Neuinstall

Verfasst: 26.12.2008 18:44
von kayfr72
Ich habe um sicher zu stellen dass das Update ohne jegliche Rester vom alten PB 4.20 installiert wird gelöscht. Beim Testen von PB 4.30 fiel mir auf das der Bildschirm mit ClearScreen(255,255,255) nicht weiß gelöscht wurde und die alten Grafik noch darauf stand. Nach Installieren der PB 4.20 und darauf die PB 4.30 funktionierte wieder alles. Da habt ihr in PB 4.30 bestimmt vergessen eine Routinenausführung zu schalten. :o

Verfasst: 26.12.2008 18:59
von Kaeru Gaman
irgendsoeinen Fehler kann ich nicht bestätigen.

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"test")
CreateSprite(0,64,64)
Repeat
  ExamineKeyboard()
  ClearScreen($FFFFFF)
    DisplaySprite(0,x,352)
    x+1:If x>1024 : x=-64 : EndIf
  FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)
läuft einwandfrei.

Verfasst: 26.12.2008 19:07
von kayfr72
der Fehler ist nur dann darauf wenn du PB 4.20 deinstallierst und PB 4.30 dann installierst,so das alle Dateien neu sind im Verzeichnis sind.

Verfasst: 26.12.2008 19:14
von Kaeru Gaman
mir war trotz deines einigermaßen unterhaltsamen Satzbaus durchaus eingegangen wie du das meinst.

da ich 4.3 in ein komplett neues Verzeichnis installiert habe, müßte der Fehler dann ja auch auftreten.

Verfasst: 26.12.2008 19:20
von kayfr72
dann erklär mir warum jetzt funktioniert und nach einem Uninstall von PB4.20 nicht mehr. Schon ein wenig komisch oder!

Verfasst: 26.12.2008 19:27
von Kaeru Gaman
ich unterstelle eine anderweitig fehlerhafte Vorgehensweise.

wenn du ein Verzeichnis komplett leer machst, entspricht es auf OS-Ebene einem neu erzeugten Verzeichnis.

weitergehend kann ich auch nicht nachvollziehen,
warum eine nicht vorhandene Datei darin resultieren sollte,
dass ein Screen nicht gelöscht wird aber trotzdem kein Fehler produziert.



hast du denn den Fehler wenigstens ein zweites Mal reproduziert?

also, hast du 4.20 noch mal in eine neues Verzeichnis installiert,
dann wieder destalliert und alle Reste gelöscht,
dann 4.3 in dieses Verzeichnis installiert und
ist dann der Fehler noch mal aufgetreten?

Verfasst: 26.12.2008 20:25
von kayfr72
Also bin mal so verfahren. 2 Verzeichnisse mit "Purebasic" und Purebasic420. Starte ich Purebasic.exe im Verzeichnis von 4.20 funktioniert das Löschen des Bildschirms mit Clearscreen(RGB(wert,wert,wert) wenn ich dieses im Verzeichnis "Purebasic" starte(also 4.30) dann funktioniert das Löschen nicht. Also ergo: PB 4.30 löscht den Bildschirm nicht. Wenn ich nun die Version 4.30 über die Version 4.20 drüber installiere funktioniert die Version im Verzeichnis Purebasic420 und die Purebasicversion von "Purebasic" Verzeichnis immer noch nicht.

Also enthält Purebasic 4.30 irgend einen Befehl nicht der in Purebasic drin ist.

Verfasst: 26.12.2008 21:25
von Kaeru Gaman
wie bereits gesagt, dann müßte es ja bei mir auch nicht funktionieren.
also musst du noch irgendetwas anderes versiebt haben.

Verfasst: 28.12.2008 22:32
von kayfr72
Also habe ich nochmal alles ausprobiert und auf 2 Rechner getestet. Der Fehler von ClearScreen bezieht sich nur auf PB 4.30 und auch nur auf OpenwindowedScreen. Das Beispiel mit dem OpenScreen von Kaeru:
irgendsoeinen Fehler kann ich nicht bestätigen.

Code:
InitSprite()
InitKeyboard()
OpenScreen(1024,768,32,"test")
CreateSprite(0,64,64)
Repeat
ExamineKeyboard()
ClearScreen($FFFFFF)
DisplaySprite(0,x,352)
x+1:If x>1024 : x=-64 : EndIf
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape)


läuft einwandfrei.
funktioniert einwandfrei.

testet doch mal bitte:

Code: Alles auswählen

InitEngine3D()
InitSprite()
OpenWindow(0,0,0,800,600,"......",#PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0),0,0,800,600,0,0,0)

Repeat

Event = WaitWindowEvent()
Select Event
Case #PB_Event_CloseWindow
quit = 1
EndSelect

ClearScreen(RGB(255,0,0))
FlipBuffers()
Until quit = 1
End
wechselt auch mal die Farben um zu sehen ob sich was ändert oder nicht!
ich denke der Fehler wird auch bei anderen auftreten.

Verfasst: 28.12.2008 22:41
von Kaeru Gaman
ganz merkwürdiges verhalten:

wenn man InitEngine3D() auskommentiert, funktioniert es.
wenn man das wieder einsetzt, wird der screen in der farbe gelöscht, die man vorher benutzt hat.

also mal testen:
- InitEngine3D() auskommentieren
- bei ClearScreen eine ungewöhnliche farbe einsetzen
- laufen lassen
- InitEngine3D() wieder entkommentieren
- bei ClearScreen eine andere Farbe einsetzen
- es sollte die Farbe auftauchen, die vorher benutzt wurde

bitte bestätigen, dann müssen wirs mal im Englischen posten.