Seite 1 von 2

Known BUGs in Purebasic 4.1 final

Verfasst: 13.06.2008 08:22
von Scarabol
Known BUGs in Purebasic 4.1 final:

LoadSprite & #PB_Any führt dazu das man wenn der Screen minimiert wird alles Sprites die auf diese Weise geladen wurden neu geladen werden müssen.
Lösung:
Am besten codet ihr euch eine eigene Sprite Verwaltung mit dem "normalen" Zahlen Zuordnungen, dann tritt der Fehler nicht auf.

FlipBuffers() neigt dazu vor allem bei größeren Projekten das Programm nicht richtig zu bremsen um die FPS einzuhalten, daher kann es sein das von der einen auf die andere Sekunde euer Programm nur noch 10% seiner ursprünglichen FPS hat. Also nicht Wundern.
Lösung:
Eine Lösung ist mir bisher nicht bekannt, außer alles rückgängig zu machen und zu versuchen das Problem durch umstellen des Codes zu umgehen.

AddKeyboardShortcut ist in Verbindung mit Fenstern die einzige Möglichkeit Tastatureingaben zu verarbeiten. Da dies jedoch sehr eingeschränkt ist, solltet ihr euch zu dem jeweiligen OS selbst einige Routinen mit der OS eigenen API programmieren.

Bei OpenNetworkConnection sollttet ihr beachten, dass es kein Timeout gibt, das Programm wird also angehalten und kann nicht vorzeitig unterbrochen werden. Daher solltet ihr auf diese Funktion verzichten und OpenNetworkConnectionEx hier aus dem Forum unter Code Tips und Tricks verwenden.

Edit1:
Wenn ihr mit einem anderen Computer auf den freigegebenen Code zugreift diesen ändert und speichert wird der Pfad des aktuellen Computers eingespeichert. Dann kommt es zu Fehlern mit dem Debugger.
Lösung:
Ihr verwendet jaPBide oder ihr öffnet den Quellcode mit Notepad und ändert die Parameter von Hand. Löschen funktioniert hier ganz gut.

InitSprite, InitNetwork ect. kann nur einmal aufgerufen werden.
Lösung Programm sich selbst neustarten lassen.

Gruß
Scarabol

-----------------------------------------
Den neuen Thread hab ich aus dem Posting gemacht.
mag sein, dass das Bug-Subforum nicht ganz das richtige ist,
aber an den ReadMe-Thread des Anfänger-Subforums
gehört dieses Posting auf keinen Fall angehängt.
Kaeru

Verfasst: 13.06.2008 10:14
von Scarabol
@Kaeru
Dachte das sollte den Anfängern weiterhelfen, damit sie nachher nicht völlig verzweifeln sollte man ihnen auch die Fehler von PB aufzeigen. Damit sie diese von vornherein umgehen können.

Gruß
Scarabol

Verfasst: 13.06.2008 10:35
von Rings
PureBasic Geschichte hat geschrieben:
23. Mai 2008 : Version 4.20

4. November 2007 : Version 4.10
Warum reitet man eigentlich immer noch auf der 4.1 ?

Verfasst: 13.06.2008 10:43
von rolaf
Rings hat geschrieben:Warum reitet man eigentlich immer noch auf der 4.1 ?
Da sagste was Wahres. Wäre doch eher interessant ob die Fehler in der 4.2 überhaupt noch bestehen.

Verfasst: 13.06.2008 11:02
von Kaeru Gaman
trotzdem ist es in der ReadMe des Anfängerforums fehl am Platz.
eventuell wäre das was für ne FAQ... aber:
> Wäre doch eher interessant ob die Fehler in der 4.2 überhaupt noch bestehen.
definitiv!
...du wirst in den FAQ auch keine Abhandlungen über Workarounds für 3.92 o.ä. finden.
lediglich für die 3.30 wäre das interessant, weil die immer noch als standalone aufm Markt ist.

aber die 4.1 kann man sich nicht mal mehr runterladen, also was solls?

da hab ich garnicht genug drauf geachtet, also gehört dieser thread eher nach "Allgemein" oder "Beta"... *grübel*

Verfasst: 13.06.2008 11:14
von ZeHa
Sorry, aber für mich sind das keine Bugs.

Was genau meinst Du mit FlipBuffers()? Warum sollte das das Programm überhaupt bremsen?

Und was ist damit:
InitSprite, InitNetwork ect. kann nur einmal aufgerufen werden.
Lösung Programm sich selbst neustarten lassen.
Wer muß das mehrmals aufrufen und warum muß man das Programm sich selbst neustarten lassen?!

Verfasst: 13.06.2008 11:21
von Kaeru Gaman
so habs jetzt nach "beta" verschoben...

ich muss gestehen, ich habs mir auch garnicht komplett durchgelesen,
als ichs von dem anderen thread abgeschnitten hab.
war für mich nur grundsätzlich eindeutig, dass es am falschen platz war.

FlipBuffers() neigt dazu vor allem bei größeren Projekten das Programm nicht richtig zu bremsen um die FPS einzuhalten, daher kann es sein das von der einen auf die andere Sekunde euer Programm nur noch 10% seiner ursprünglichen FPS hat.
das isn scherz, oder?

FlipBuffers tut nix weiter, als auf den nächsten VSync warten und dann die Buffer zu flippen.
wenn du fünf minuten rechnest, bevor du das nächste mal flipst, ist das dein problem.

Verfasst: 13.06.2008 11:24
von ZeHa
Da sind noch mehr Scherze... also ich würde sowas als "Known Pitfalls" bezeichnen, aber ein Bug ist einfach was völlig anderes.

Verfasst: 13.06.2008 11:30
von Scarabol
Zu Flipbuffers
Also ich bastel wie ihr vielleicht wisst mit Gemusoft an nem kleinen Game. Nun wollte mein Kumpel das ganze testen und schwup hatte er nur 2 FPS wobeis bei mir mit 60 lief. An der Hardware lags auch nich den seine war besser und beim letzten Test lief alles einwandfrei. Also hab ich angefangen alles rückgängig zu machen, hab im Code die Stelle gesucht, welche sooo langsam ist. Schlussendlich kam dann heraus das ein StartDrawing wahnsinnig lange wartet eh es forfährt. Musste das ganze dann von nem Screen auf nen Spriteoutput lenken hab das Sprite dann als Screen verwendet usw... Jede Menge Arbeit und getrickse bis es dann lief.

Jetzt muss ich bei jeder Änderung bangen das der Fehler wieder auftritt und die Tricks diesmal nicht anschlagen.

Gruß
Scarabol

Verfasst: 13.06.2008 11:35
von Kaeru Gaman
und was hat jetzt StartDrawing mit FlipBuffers zu tun?
du hast oben gesagt, es gäbe ein Problem mit FlipBuffers.
jetzt sagst du, das Problem liegt bei StartDrawing.

...du bist gerade dabei, deine Reputation zu Kleinholz zu zerbröseln, ist dir das bewußt?
zusätzlich zu deinem kulturellen Fauxpas von gestern Abend und heute Morgen
läßt du grad erheblich Fachkompetenz vermissen.

..vielleicht solltest du die ganze Sache mal ein paar Tage ruhen lassen, bis es dir wieder besser geht.
wenn du jetzt mit Gewalt weitermachst, riskierst du, dass dich danach niemand mehr ernst nimmt.