Breite eines Videos festlegen
Übersicht

Bobo2040Betreff: Breite eines Videos festlegen |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Leute ![]() Ich möchte um es Optisch schöner zu machen ein Video einer Explosion benutzen wenn ein Gegner zerstört wird... Das einbinden klappt auch nur ist das Video zu groß... kann man da irgendwie die Breite festlegen ? Und die Höhe? Und kann ich, da aus irgendeinem grund nach der Convertierung von .flv zu .avi der Hintergrund nicht mehr Transparent ist ihn irgendwie wieder Transparent machen ? Hier ist mal mein bisheriger Code vllt. gibts ja was dran auszusetzen ![]() BlitzBasic: [AUSKLAPPEN]
Mfg |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Lösung lautet, nicht Videos dafür zu benutzen.
Stattdessen benutze eine einfache Animation (aus einer Bilddatei geladen mit z.B. LoadAnimImage ![]() |
||
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hmm okay ![]() Aber die Explosion hat mehrere Bilder (60) Und ich habe die auch alle aber das stopft doch dann den Ram Mega voll oder nicht ? |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Und wo landet das Video wenn nicht im RAM...? | ||
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja ![]() Aber es ist doch als Videoformat nicht so groß wie etliche Bilder ![]() Und ausserdem ist das sooo viel arbeit die Ganzen Bilder zu Includen ![]() EDIT: Bin mal eben auf die Idee gekommen nen .gif zu nehmen ![]() 1. Frage kann ich ein .gif nachträglich Transparent machen ? |
||
![]() |
Tennisball |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du Videos benutzt müsstest du:
- ...das Video immer wieder neuladen, siehe OpenMovie ![]() - ...für Transparenz das Video eh zunächst in ein Image rendern, um dieses dann zu maskieren. Da kannst du auch gleich ein Image mit Animation nutzen. Es gibt außerdem etliche Tools (Man kann sich auch mit wenig Aufwand selbst eines schreiben), die Einzelbilder zu einem Strip zusammenfügen. Gruß, Tennisball |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Selbst wenn das mit einem Video funktionieren könnte - was es nicht tut - würde der Schnippsel nicht funktionieren:
BlitzBasic: [AUSKLAPPEN] If AiHP < 1 ThenGanz einfach, weil du die Explosion nur einen Frame lang anzeigen würdest. Die Frage ob man nicht ein gif benutzen könnte, kommt auch immer mal wieder vor und immer noch muss ich sagen: nein, dass ist weder eine einfache noch eine sinnvolle Methode Animationen dar zu stellen. Zum ersten werden gifs von BlitzBasic wie filme behandelt (man kann sie mit openmovie abspielen) aber das gibt einem keine Kontrolle über die Animation. Du kannst ja gerne ausprobieren, ob man da Transparenz benutzen und gleichzeitig mehrere abspielen kann - für sinnvoll halte ich das aber nicht. Exportiere die Frames vom gif zu einem ImageStrip und baue dir einen Explosions-Type. Davon kannst du dann beliebig viele Objekte erstellen - da wo oben im Code DrawMovie steht - und die Explosionen werden unabhängig vom Gegner verwaltet. Das ist so ziemlich die einzige Möglichkeit, wie man Animationen steuern und das Spiel gleichzeitig laufen lassen kann. Ich würde dir die Beginner's Practice Series ans Herz legen, besonders BPS #5: Seifenblasenmaschine sollte dir da enorm weiterhelfen. |
||
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) |
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wie Tennisball gesagt hat, machst du sowas mit AnimImage. Wenn du das Bild in einem sinnvollen, komprimierten Format hast, wie .png, dann wirst du sehen, dass es kaum mehr verbraucht, als das Video, vor allem, wenn du es schon vorher in die passende Größe (Auflösung) bringst.
@viele Bilder: hast du dir die Hilfedatei zu LoadAnimImage angeschaut, also den Link, den dir Tennisball gegeben hat? AnimImages funktionieren so, dass du eine Bilddatei mit allen Frames der Animation nebeneinander hast. Das lädst du per LoadAnimImage als ein Bild und zeichnest es per DrawAnimImage, wobei du da im Vergleich zu DrawImage einen weiteren Parameter, mit dem du festlegen kannst, welches Frame du zeichnen willst. Warum du Bilder und nicht Videos verwenden solltest: -Viel bessere Kontrolle: Du kannst die Dinger schön pixelgenau positionieren, steuern, welches Frame angezeigt werden soll, und somit die Geschwindigkeit bestimmen, kannst so sogar mehrere Animationen in das gleiche Ding packen und auch Frames überspringen -Masking geht viel einfacher -Wenn du .png verwendest hast du auch keine Komprimierungs-Artefakte, schaut also schöner aus -Lässt sich viel einfacher erstellen (Paint oder Gimp reichen dafür völlig) -Du kriegst keine Probleme, weil du anderer Leute Animationen von Youtube klaust -Es gibt haufenweise fertige, frei verwendbare Animationen in dem Format (immer schauen, was die Lizenzbestimmungen dazu sagen, ob du es verwenden darfst) Als Beispielbild, wie sowas ausschauen kann: ![]() Edit: Sorry, Xerxes, hab nicht gesehen, dass du schon geschrieben hast. @Bobo, das ist wieder mal ne Aufforderung gewesen, dass du dir Types anschaust ![]() |
||
Gewinner der 6. und der 68. BlitzCodeCompo |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Video ist ungeeignet für sowas, siehe auch vorherige Posts. Aber um Deine eigentliche Frage zu beantworten im Hinblick auf anderweitige spätere Verwendung:
BlitzBasic: [AUSKLAPPEN] DrawMovie video,x,y, video_weite , video_hoehe Also recht simpel ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay ![]() Habe mir den Link mal angeguckt und es getestet klappt auch ... nur wie kann ich jetzt mehrere Bilder hintereinander Abspielen lassen ? PS: Sry wenn das ne blöde Frage ist ![]() |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfach jedes Frame (oder wenn du es langsamer haben willst alle paar Frames) die Zahl des momentan angezeigten Frames erhöhen. | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
okay gut danke ![]() Versuch das nachher mal ^^ PS: @DAK du hast ne PM ![]() Und hätte da noch ne Frage und zwar möchte ich wenn man Tod ist das Fenster komplett Schwarz werden lassen und dann soll da ein Textfeld sein wo steht du bist gestorben oder so ... nur wie kann ich das machen ? Also Text weiß ich und nen Großes Viereck was Schwarz ist auch... und wie ich das vor allen andren Bildern machen kann weiß ich auch nur wie kann ich danach das Spiel beenden ? |
||
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@Bobo2040
ohne irgend jemanden persönlich anzugreifen auch mir wurde hier sehr viel geholfen, doch bei Bobo2040 hat es den Anschein als ob andere sein Spiel programmieren sollten! Es gibt so viele und vor allem schöne Tutorials, man muß diese eben lesen und ausprobieren. Programmieren lernt man nicht durch Wie geht das und Warum so und nicht so, sondern, man sollte sich da schon auch selbst durcharbeiten um das zu verstehen was man macht oder warum Beispielcode die einem gegeben werden, genau so funktionieren und nicht anders! Bitte nicht persönlich nehmen Bobo2040, aber deine Fragen (alle bisherigen) sind so ausgelegt, daß du ohne viel Aufwand ein Spiel haben möchtest und das klappt so aber nicht! Man sollte schon so ehrgeizig sein und sich die Tutorials reinziehen, auch BlitzBasic selbst hat viele, viele Beispiele und Programme aus diesen man sehr gut lernen kann. Und ja, es führt kein Weg bei den Types vorbei. Einmal verstanden, immer gern verwendet. Man kann auch mit DIM arbeiten aber ich persönlich bevorzuge Types! Dieses Forum ist einfach klasse und es wird einem echt schnell geholfen aber man sollte auch Problemstellungen zuerst versuchen alleine zu lösen bevor man seine ganzen Fragen stellt. Zumal, bevor man ein Spiel schreibt, sollte man ein Konzept entwerfen damit man nicht irgendwann den Überblick verliert. Sonst bleibt nur noch zu sagen, learning by doing....! lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich versuche immer meine Probleme vorerst alleine und danach über Google zu lösen...
Nur kann ich nicht riechen das ImageAnim... besser ist als Videos und in der Help ist nur ein Beispiel von 1 Bild Dort wird dann Oben Links die Ecke gezeigt und unten rechts... ![]() und lieber Frage ich anstatt die Motivation zu verlieren und damit aufzuhören ![]() Hätte DAK mich nicht wieder motiviert hätte ichs nicht weitergemacht sondern hätte mich wieder auf mein Forensystem Konzentriert ![]() Mfg |
||
![]() |
Jamagin |
![]() Antworten mit Zitat ![]() |
---|---|---|
@bobo
in der hilfe ist Code: [AUSKLAPPEN] Bild = LoadAnimImage (Datei$, width, height, Start, Frames [,Modus]) angegeben und im Beispielcode sind es 3 Bilder! Was soll an diesem Befehl so schwer zu verstehen sein? Gezeichnet werden sie ja doch alle mit DrawImage, die Frames kannst du ja über Timer steuern und zu diesem Zweck --> Types. Den Spass am Programmieren will ich dir nicht verderben. Du hast ja Recht wenn du fragst, aber es hat für mich so den Anschein gehabt, das deine Fragen genau so gestellt waren, als ob man dir ein fertiges Spiel vorlegen sollte! lg. Jamagin |
||
Bevor du etwas neues beginnst, erledige das alte |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Achssooooooooooo ![]() Jetzt hab ichs glaub verstanden man braucht ein Bild das aus mehreren Bildern zusammengefügt ist und dann wird sozusagen der focus immer nen Stück nach Rechts/Links verlegt so wie bei den alten Filmstreifen oder ? Weil ich hab da nur einmal DrawImage gesehen ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bobo2040 hat Folgendes geschrieben: Und hätte da noch ne Frage und zwar möchte ich wenn man Tod ist das Fenster komplett Schwarz werden lassen und dann soll da ein Textfeld sein wo steht du bist gestorben oder so ... nur wie kann ich das machen ?
Dafür würde ich Gamestates empfehlen - Eine Variable die ganz früh in der Hauptschleife entscheidet, welcher Teil des Programms ausgeführt werden soll. Pseudo BlitzBasic: [AUSKLAPPEN]
Konstanten sind super lesbar und man wechselt den State einfach, in dem man der Variable einen neuen Wert gibt und den Rest abbricht. Es geht natürlich komplizierter, aber das ist das Minimum an Ordnung, die man in einem kleinen Spiel schaffen sollte, wenn man sich nicht im Code verheddern will. |
||
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) |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay cool ![]() Ich versuche mal nachher den Code so umzuschreiben, das nur je nach action eine Function ausgeführt wird spart dann doch auch ressorucen oder ? PS: Noch ne Frage und zwar kennt ihr nen Programm mit dem ich das machen kann ? Also direkt unterteilen also z.b. nen 1800 px großes "Banner" das dann in 200px abschnitten unterteilt ist und wo ich sehen kann wo die Mitte ist usw... braucht halt eig. nur die Funktionen die Paint auch hat.. nur das die Bilder Transparent gemacht werden können... habe eben nen bisschen geguckt und mit CS6 versucht nur iwie siehts so scheiße aus.. weil ich nicht weiß wo das nächste "frame" beginnt ![]() |
||
![]() |
XeresModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, sparen tut man dabei nichts außer Entwicklungszeit, weil man ganz klar sieht, was wann im Code passiert. ![]() Es gilt immer noch, das man Ressourcen nur einmal Lädt (am besten vor der Hauptschleife) und den Code so optimiert, dass man nur das nötigste tut. Aber dass muss man in jedem Fall tun. |
||
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) |
Bobo2040 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay ![]() kennst du tricks um die cpu leistung zu senken ? momentan zieht das spiel 20-40% manchmal mehr ... würde das noch nen bisschen senken ... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group