Frame-Frage (ich bin ein Noob)-Noch nicht gelöst
Übersicht

Gehe zu Seite 1, 2, 3, 4 Weiter
petecoolbelabBetreff: Frame-Frage (ich bin ein Noob)-Noch nicht gelöst |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
hab da mal eine frage: Ich hab bei Robs BB Kurs den Frame Teil nicht zu 100% verstanden und habs einfach Versucht. Ich habe das hingeschrieben: Graphics 640, 480, 16, 3 SetBuffer FrontBuffer() R[color=indigo]epeat Cls Bild1 = LoadAnimImage("C:\Dokumente und Einstellungen\Peter\Eigene Dateien\Eigene Bilder\AL_HEroes.png", 100, 180, 0, 11) DrawImage Bild1, 100, 180, frame = frame + 1 MaskImage Bild1, r255, g255, b255 Flip Until frame = 11 WaitKey End [/color] Und irgendwie funktioniert das nicht. Könnt ihr das oben korrigieren und mir helfen? |
||
- Zuletzt bearbeitet von petecoolbelab am Do, März 27, 2008 20:02, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
so kann das auch net gehen.
Beim bild das frame muss eine Integer sein du packst aber eine boolean da rein (irgendwas = irgendwas) du musst frame da rein packen und die erhöhung in einen weiteren schritt. in einem geht net. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wie geht des?
(Könntest du mir nen klöeinen Code dazu geben?) |
||
![]() |
CaesiumBetreff: Re: Frame-Frage (ich bin ein Noob) |
![]() Antworten mit Zitat ![]() |
---|---|---|
bin zwar selbst noch anfänger, dennoch:
wenn du auf den frontbuffer schaltest solltest du das flip in der schleife weglassen, da flip front- und backbuffer tauscht. btw. würde ich dir da sowieso zu BackBuffer() raten. bilder/animationen/etc. nicht in der schleife laden, das kostet nur unnötig zeit. das r-g-b bei maskimage weglassen, soll heißen: MaskImage Bild1, 255, 255, 255 anstelle von MaskImage Bild1, r255, g255, b255. wenn ich mich nicht irre, sollte es jetzt funktionieren - ABER da die schleife seehr oft pro sekude durchlaufen wird, wirst du nichts erkennen können. bau also am besten eine "zeitbegrenzung" ein, dass (z.b. alle 40millisekunden) die frame-variable um eins erhöht wird. schau dir dazu mal den Befehl MilliSecs() an. gruß, Caesium EDIT: war wohl zu langsam, aber habe offensichtlich sowieso den eigentlichen fehler übersehn ~.~ |
||
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist da schon schwieriger. ![]() |
- Zuletzt bearbeitet von Caesium am So, März 30, 2008 13:54, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
petecoolbelab hat Folgendes geschrieben: Wie geht des?
(Könntest du mir nen klöeinen Code dazu geben?) Schau dir das tutorial nochmal genau an bzw. arbeite es durch. Dann siehst du das da sowas wie <irgendwo> DrawImage img, x,y, frame <irgendwo anders> frame = frame + 1 oder so stehen wird. Auch die Art wie du farben setzt ist falsch. Die r,g,b in der Hilfe sind parameter die du durch zahlen ersetzen musst. -> maskimage img, 255,255,255 ohne die r,g,b |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Könnt ihr mir einfach nur einen Code geben? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hab ich doch
Mehr als das gibts nicht, du sollst ja auch selbst etwas lernen und programmieren lernt man nunmal nur durch "es tun" und fehler machen die man dann ausbügelt und weiss was falsch war. mit obigem von mir sollte es ohne probleme möglich sein und sonst robs BB Kurs 1 und 2 nochmal machen, diesmal einfach durcharbeiten statt nur durchlesen, denn Tutorials sind net zum lesen sondern bearbeiten da. |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
CaesiumBetreff: Re: Frame-Frage (ich bin ein Noob) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 640, 480, 16, 3
SetBuffer BackBuffer() Bild1 = LoadAnimImage("C:\Dokumente und Einstellungen\Peter\Eigene Dateien\Eigene Bilder\AL_HEroes.png", 100, 180, 0, 11) ;animation laden MaskImage Bild1, 255, 255, 255 ;transparenz Local frame ;variable deklarieren Repeat Cls If zeit + 40 < MilliSecs() Then zeit = MilliSecs() frame = frame + 1 EndIf DrawImage Bild1, 100, 180, frame Flip Until frame = 11 WaitKey End trotzallem kann ein kompletter code, bzw. ein komplettes beispiel mehr bringen. helfen es zu verstehn, nicht um es abzuschreiben versteht sich. wenn man nochmal genau den aufbau sieht, versteht man es auch eher. diese erfahrung habe ich auch gemacht. gruß, caesium |
||
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist da schon schwieriger. ![]() |
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Vielen Dank.
Logischerweiße steht nach einiger Zeit "Image out of Frame" Kann ich die Ani auch unendlich lang laufen lassen (wenn ja, wie?)? |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] If Frame > Frameanzahl then Frame = 0
|
||
[BB2D | BB3D | BB+]
|
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kann ich auch per KeyHit meinee Ani so einstellen, dass wenn ich "P" drücke meine Ani stehen bleibt? | ||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Einfacher:
frame=frame MOD framelimit |
||
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Kannst mir nen Beispiel code geben? | ||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
petecoolbelab hat Folgendes geschrieben: Kann ich auch per KeyHit meinee Ani so einstellen, dass wenn ich "P" drücke meine Ani stehen bleibt?
Dazu brauchst du eine StatusVar die dann deine Frames nicht weiterschaltet Code: [AUSKLAPPEN] if keyhit( [Scancode] ) then pause = pause xor 1;schaltet zwischen 0 und 1
;oder if keyhit( [Scancode] ) then pause = 1 - pause ;schaltet zwischen 0 und 1 die Pause kannst du dann hier einbauen Code: [AUSKLAPPEN] If zeit + 40 < MilliSecs() Then
zeit = MilliSecs() if pause = 0 then frame = frame + 1 EndIf |
||
[BB2D | BB3D | BB+]
|
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Kannst mir nen Beispiel code geben?
Sorry wenn ich jetzt mal sehr deutlich werde: Nein, man lernt programmieren indem man sich für jeden Mist ein Beispiel von anderen liefern lässt. Also: Setz dich auf deine vier Buchstaben und probier es selbst. Spiel mit den Befehlen rum. Erstelle Testcodes um die Wirkung von den Befehlen zu verstehen und feil solange dran rum bis du sie wirklich verstehst. Alles andere bringt dir nix. Und wenn nach dem x-ten Test es immer noch nicht funktioniert (die man btw erst mal durchdenken sollte, sprich, überleg dir was du glaubst was die Befehle in welcher Reihenfolge bewirken. Wenn Fehler auftreten, schau nach wie es zu den Fehlern kam (Stichwort: Debugger)), nutze Google, Blitzbase, Forensuche.) , dann UND ERST DANN ist der Zeitpunkt gekommen eine Anfrage hier zu stellen. Und die sollte mit Code von dir erfolgen, der das Problem aufzeigt und auch zeigt dass Du dich mit dem Problem beschäftigt hast. Und dann das Ganze bitte noch ordentlich verpackt in eine sinnvolle und durchdachte Frage. Danke. An dieser Stelle erfolgt mein üblicher Hinweis auf die Onlinehilfe, welcher eigentlich unnötig wäre würden die Neuankömmlinge sich mal die Mühe machen die gepinnten Threads aufmerksam durchzulesen. Besorg dir die, installier sie und lern aus den Beispielen dort. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi hab nochmal ne Frage.
Ich brauche diesmal keinen genauen code. Habe übrigens schon mit google und hier gesucht und nix gefunden Mein Code lautet so: [color=indigo]Graphics 640, 480, 16, 3 SetBuffer BackBuffer() Bild1 = LoadAnimImage("C:\Dokumente und Einstellungen\Peter\Eigene Dateien\Eigene Bilder\AL_HEroes2.png", 100, 180, 0, 11) ;animation laden MaskImage Bild1, 255, 255, 255 ;transparenz Local frame ;variable deklarieren Repeat For Bild1 = 0 To 640 Step 20 Cls If zeit + 120 < MilliSecs() And pause = 0Then zeit = MilliSecs() frame = frame + 1 EndIf If frame =10 Then frame = 1 EndIf If KeyHit(25) Then pause = pause Xor 1;schaltet zwischen 0 und 1 EndIf If pause = 0 Then frame = frame ElseIf pause = 1 Then frame = frame = 1 EndIf Flip Next Until KeyHit(25) WaitKey End[/color] Bin mir ziemlich sicher dass es an dem For Bild1= 0 to640 Step 20 liegt. Ihr müsst mir diesmal aber keinen genauen Code geben. (Es wäre jedoch nett). Ein Tipp würde aber auch schon reichen (wenn es den Moderatoren so recht ist) Danke |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Zitat: Hi hab nochmal ne Frage.
ich habe gesucht aber wo ist die Frage bzw. wo liegt das Problem Code: [AUSKLAPPEN] ;Diese Schleife ist doch total überflüssig
For Bild1 = 0 To 640 Step 20 ;die Var Bild1 ist doch ein Bild und sollte demnach nicht als Schleifenzähler herhalten ;da du dir das laden des Bildes dann auch sparen kannst Cls If zeit + 120 < MilliSecs () And pause = 0 Then zeit = MilliSecs () frame = frame + 1 EndIf If frame = 10 Then frame = 1 EndIf If KeyHit (25) Then pause = pause Xor 1;schaltet zwischen 0 und 1 EndIf If pause = 0 Then frame = frame ; ist auch über macht ja nichts ElseIf pause = 1 Then frame = frame = 1 ; 2x "=" geht nicht sollte wohl "+" sein EndIf Flip Next Until KeyHit (25) WaitKey End Vieleicht hilft dir das ! |
||
[BB2D | BB3D | BB+]
|
petecoolbelab |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Könntest du mir das event. genauer geben (ein code wäre gut aber nicht nötig-trotzdem könntest du mir nen code gebn) | ||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da wir immer noch nicht wissen wo dein Problem liegt wird das schwierig. ![]() |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Tipp:
Wenn du Code: [AUSKLAPPEN] Bild1 = LoadAnimImage... machst.
Dann solltest du das Handle (in diesem Fall) Bild1 nicht durch Code: [AUSKLAPPEN] For Bild1 = 0 To 640 Step 20 Cls wieder überschreiben.
Ein Handle ist eine variable Nummer die vom System per Laufzeit erstellt wird. Diese Nummer ist einmalig und gibt im grunde eine Adresse zu einem Bild, Sound oder irgend was anderes wieder. Mit der For/Next -Schleife würde die vergebene Nummer wieder gelöscht sein. Ausserdem kannst/solltest du nicht zwei oder mehr Befehle hintereinander reihen. Schreibe sie untereinander und wenn unbedingt nicht anders erwünscht durch ein '':'' getrennt. Benutze relative Pfade, keine absoluten. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
Gehe zu Seite 1, 2, 3, 4 Weiter
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group