Schleifen parallel abarbeiten
Übersicht

![]() |
M0rgensternBetreff: Schleifen parallel abarbeiten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo an alle.
Ich habe angefangen einen kleinen 2d Shooter zu schreiben, für den ich die verschiedenen Dinge drehen lasse, also die Bilder. Aber wie wir ja alle wissen ist "Rotateimage" total langsam. Aber da ich nicht mit bmax arbeiten möchte sondern mit bb (b2d), habe ich wohl keine andere Wahl. Jetzt habe ich mir gedacht, dass ich ein Intro mache während die Bilder im Hintergrund gedreht werden. Mein Intro ist ein SpaceInvaders Klon. Der ist bis auf einige Details eigentlich schon fertig. Jetzt ist mir aber etwas aufgefallen: Die Bilder werden ja in einer Schleife gedreht. Und das Intro ist ja auch eine Schleife. Das Intro soll dann im Endeffekt abbrechen, sobald die Bilder fertig sind und übergehen in das eigentliche Spiel. Meine Frage ist jetzt folgende: Gibt es eine Möglichkeit die Schleifen (also das Intro und das Drehen der Bilder) parallel laufen zu lassen? Danke schonmal im Voraus. Lg, M0rgenstern. |
||
![]() |
Mr.HydeNewsposter |
![]() Antworten mit Zitat ![]() |
---|---|---|
nein parallel geht nicht, Blitzbasic unterstütz keine Mehrkernprozessoren, aber du kannst die Schleifen einfach zusammenlegen, indem du die Aufgaben, die in der zweiten Schleife ausgeführt werden einfach zur ersten hinzufügst. Dabei solltest du natürlich nicht beide schleifen verschachteln. | ||
BBP News RSS | Chaos Interactive | Watanien 2 Screens, Infos und Download | Watanien 2 Worklog | PuzzleMasters
http://abgeordnetenwatch.de - http://www.regierungs-beratung.de - Der Regierung auf die Finger schauen |
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich glaube nicht, dass das mit vertretbarem Einsatz gemacht werden kann. Das wäre aber mal ein wirklich sinnvoller Einsatz für einen Ladebalken. | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Drehe dir die Bilder doch einmal und schreibe sie dann auf die Platte und lade sie dann direkt. Währe besser als so ein Ladebalken, außerdem gibt es ja auch noch die Möglichkeit die Bilder zusammenzufassen (und sie dann mit LoadAnimImage![]() Zur not schau mal im CodeAchiv da gibt es ein paar Funktionen die dir aus mehreren Datein ein Datenpaket machen. Mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hm... Ladebalken... Dachte ich mir auch zuerst. Aber als ich das mal durch Prozente dargestellt hatte.... allein für ein Bild. Da würde der Spieler einige Minuten auf einen Balken starren, der sich nur sehr langsam auffült. (1 Bild für den Spieler, circa 10 Monsterarten und nochmal etwa 7 Waffengattungen, das wären 6480 Bilder.....)
Das mit den animierten Bildern hab ich mir auch schon gedacht, aber das wäre ein sehr großer Aufwand, bzw ich müsste das Spiel ohne Laufanimation machen. Also, sagen wir mal 2 Bilder für die Laufanimation... Das wären dann wieder doppelt so viele wo ich dann noch die Schritte unterscheiden müsste.... Ich glaube ich denke wieder zu kompliziert^^ Ich werd mal versuchen, beide Schleifen ineinander zu packen. Lg, M0rgenstern |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du brauchst nicht alle bilder in 1° Schritten! Wenn du 5° Schritte nimmst - was man mit bloßem Auge schwer unterscheiden kann - hast du nur noch 1296 Bilder zu berechnen... | ||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Oder du benützt Draw3D, das dreht bilder in echtzeit ![]() Must dir aber B3D zulegen |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe ja B3d....
Aber ich kann auf dem Pc hier nicht damit arbeiten. Ich wollte ja zuerst damit mein Spiel schreiben, aber ich bin momentan nicht zuhause und die Leistung von dem Pc hier ist bei B3d so abgesunken dass echt nix mehr ging. Und das einzige was ich gemacht habe war ein Bild anzeigen^^ Ihr könnt euch also vorstellen wie das aussehen würde, wenn ich versuchen würde ein ganzes Spiel hinzuzaubern. Aber wie sieht das denn aus in B3d? Geht das da auch mit rotateimage? Denn dann würde ich das jetzt in b2d fertig schreiben und zuhause entsprechendes für b3d abändern. Werde gleich mal den SpaceInvader Klon hochladen, der ist eigentlich fertig..... Lg, M0rgenstern |
||
![]() |
ozzi789 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rotateimage gibts auch für b3d, must eigentlich nicht (viel) umschreiben...
Was ist den los mit b3d bei dir? sollte eigentlich nicht sein klar lad den mal hoch ![]() |
||
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5 |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich weiß nicht was da los ist.
Der Pc (sry, Laptop) hat erstmal ne halbe minute gebraucht, bis das Fenster überhaupt in voller Größe erschienen ist. Dann Nochmal ne Zeit bis das Bild angezeigt wurde und die Maus hat sich nur noch ruckartig bewegen gelassen. Irgendwann hab ich dann alles geschlossen bekommen, aber nur mit der Fehlermeldung, dass irgendein Grafiktreiber nicht richtig gestartet werden konnte, die komplette Auflösung vom Pc hat sich auf 800*600 verkleinert, die Farben sind alle zu ihren negativfarben geworden und der Pc war total lahm. Ich hab dann neu gestartet und die AUflösung dann geändert, dann wurde mir noch angezeigt, dass der Pc nicht die volle Grafikleistung bringt, das hab ich angeklickt und neu eingestellt und dann gings wieder. Danach hab ich dann hier zu b2d gewechselt^^ Danke für deine Hilfe. AUf Bmax hab ich nämlich keine Lust mehr (PanzerS = Bmax... und mir schwirren schon Panzer im Kopf rum, deshalb das kleine, neue Projekt) und B3d funtzt hier nicht... Aber wenn ich nicht viel ändern muss dann ists ja gut... Lg, M0rgenstern. |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich würde den Laptop mal neu Aufspielen und dann alle Treiber installieren scheint ein ganz normales Treiber Problem zu sein was du jetzt grade hast. (Ich denke mal nicht das das die Negativfarben waren sondern einfach das 16Bit Farbspektrum, da der Treiber nicht mehr anzeigen konnte)
mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, ansonsten macht der Laptop keine Probleme... UNd ich kann schlecht den Laptop von meinem Opa neu aufspielen, "nur" weil eins meiner Programme nicht funktioniert^^
Lg, M0rgenstern. |
||
FWeinbehemals "ich" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achso ich dachte es wäre deiner.
mfg ich |
||
"Wenn die Menschen nur über das sprächen, was sie begreifen, dann würde es sehr still auf der Welt sein." Albert Einstein (1879-1955)
"If you live each day as if it was your last, someday you'll most certainly be right." Steve Jobs |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
So, Der Space Invaders Klon ist fertig.
Die Grafiken sind alle aus der bb Installation, ich weiß jetzt aber gar nicht ob ich die verwenden darf^^ Wenn nicht werd ichs rausnehmen. Wenn jemand Lust hat Grafiken zu machen, dann bitte, tut euch keinen Zwang an^^ So, hier der Link: https://www.blitzforum.de/upload/file.php?id=6360 Lg, M0rgenstern @ ozzi, mit draw3d muss ich schon ne menge umschreiben hab ich grade gesehen.... Also rotateimage ist mit b3d zwar deutlich schneller aber immernoch zuuuu langsam^^ Lg, M0rgenstern |
||
![]() |
Tankbuster |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ein Sprite drehen ist zu langsam mit Draw3D?
Dann machst du irgendwas falsch. Draw3D arbeitet ja mit 3D-Unterstützung, und da kannst du die Objekte locker in Echtzeit rotieren lassen. Du musst ja nicht wie bei 2D jedes Frame neu laden, sondern einfach ein Sprite erzeugen, was du mit einer Textur belegst, und dann drehst. Das kannst du auch mit 100 gleichzeitig machen, und du wirst -bei einem etwas aktuellen PC- keinen Speedverlust bemerken. |
||
Twitter
Download Jewel Snake! Windows|Android |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab nie gesagt dass ich es schon für draw3d umgeschrieben habe.
Ich habe einfach die .bb datei mit der b3d.exe geladen... Und da ist rotateimage und so drin.... Das geht im allgemeinen etwas schneller als b2d aber immernoch zu langsam. An draw3d werde ich mich morgen oder übermorgen setzen... Ich hatte die letzten Tage leider keine Zeit merh und bin gerade erst heim gekommen, hab dann noch den spaceinvadersklon fertiggestellt. Lg, M0rgenstern |
||
n-Halbleiter |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
M0rgenstern hat Folgendes geschrieben: Also rotateimage ist mit b3d zwar deutlich schneller aber immernoch zuuuu langsam^^
Tankbuster, ich denke, er meint das normale RotateImage unter B3D ausgeführt. M0rgenstern: Du solltest dir für solche Fälle trotzdem mal die D3D ansehen, da es sehr hilfreich ist, wenn du viel zeichnen möchtest, da es kaum CPU-Leistung frisst. Der Umstieg ist zwar am Anfang ein wenig schwer, und man muss einiges umschreiben, aber es lohnt sich sicher. |
||
mfg, Calvin
Maschine: Intel Core2 Duo E6750, 4GB DDR2-Ram, ATI Radeon HD4850, Win 7 x64 und Ubuntu 12.04 64-Bit Ploing! Blog "Die Seele einer jeden Ordnung ist ein großer Papierkorb." - Kurt Tucholsky (09.01.1890 - 21.12.1935) |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
N-Halbleiter, genau das hab ich gemeint^^
Klar werd ich tun, danke.... |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
M0rgenstern hat Folgendes geschrieben: So, Der Space Invaders Klon ist fertig. Nach kurzer Durchsicht fällt mir auf, dass du die "For Enemy.TGegner1Intro = Each TGegner1Intro" Schleife mehrfach verwendest und vielfach das gleiche machst - das könntest du noch optimieren. In manchen Funktionen deklarierst du Variablen ordentlich, in anderen gar nicht. Eingerückt ist der Code auch, aber uneinheitlich mit Leerzeichen statt Tabs.
Und sowas wie BlitzBasic: [AUSKLAPPEN] For Enemy.TGegner1Intro = Each TGegner1Intro kannst kurz als BlitzBasic: [AUSKLAPPEN] Delete Each TGegner1Introschreiben. Für die Bilder könntest du auch automidhandle ![]() Im großen und ganzen aber gar nicht schlecht. |
||
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus THERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld) |
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Welche Funktionen meinst du, in denen ich Variablen nicht richtig deklariere?
Ja, mit der Schleife "For Enemy.TGegner1Intro = Each TGegner1Intro" hatte ich bei den Items ein Problem, weil sie irgendwie zu oft ausgeführt wurde... habs auskommentiert, dann gings^^ Das mit dem delete each... ist mir entfallen, danke^^ Werde das ganze vllt morgen ein wenig verbessern, mal schauen^^ Lg, M0rgenstern |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group