Schleifen parallel abarbeiten

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

M0rgenstern

Betreff: Schleifen parallel abarbeiten

BeitragSo, Jul 26, 2009 13:03
Antworten mit Zitat
Benutzer-Profile anzeigen
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.Hyde

Newsposter

BeitragSo, Jul 26, 2009 13:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Xeres

Moderator

BeitragSo, Jul 26, 2009 13:07
Antworten mit Zitat
Benutzer-Profile anzeigen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

FWeinb

ehemals "ich"

BeitragSo, Jul 26, 2009 13:13
Antworten mit Zitat
Benutzer-Profile anzeigen
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 zu laden)

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

BeitragSo, Jul 26, 2009 13:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Xeres

Moderator

BeitragSo, Jul 26, 2009 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

ozzi789

BeitragSo, Jul 26, 2009 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder du benützt Draw3D, das dreht bilder in echtzeit Smile
Must dir aber B3D zulegen
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

M0rgenstern

BeitragSo, Jul 26, 2009 14:50
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Jul 26, 2009 15:05
Antworten mit Zitat
Benutzer-Profile anzeigen
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 Smile
0x2B || ! 0x2B
C# | C++13 | Java 7 | PHP 5

M0rgenstern

BeitragSo, Jul 26, 2009 15:12
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
 

FWeinb

ehemals "ich"

BeitragSo, Jul 26, 2009 15:15
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragSo, Jul 26, 2009 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
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.
 

FWeinb

ehemals "ich"

BeitragSo, Jul 26, 2009 15:38
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jul 29, 2009 1:09
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jul 29, 2009 1:19
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jul 29, 2009 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jul 29, 2009 1:22
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragMi, Jul 29, 2009 1:35
Antworten mit Zitat
Benutzer-Profile anzeigen
N-Halbleiter, genau das hab ich gemeint^^

Klar werd ich tun, danke....

Xeres

Moderator

BeitragMi, Jul 29, 2009 1:35
Antworten mit Zitat
Benutzer-Profile anzeigen
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
Delete Enemy.TGegner1Intro
Next

kannst kurz als
BlitzBasic: [AUSKLAPPEN]
Delete Each TGegner1Intro
schreiben.
Für die Bilder könntest du auch automidhandle benutzen.
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
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

M0rgenstern

BeitragMi, Jul 29, 2009 1:38
Antworten mit Zitat
Benutzer-Profile anzeigen
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

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group