| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Sep 2003 Ort: Feldberg
Beiträge: 9
|
Hallo zusammen, ich bin am verzweifeln. Versuch seit 13 Stunden eine Kugel auf der x und y Achse laufen zu lassen, wenn sie das ende der Bühne erreicht hat soll sie in die entgegengesetzte Richtung laufen. Denke das es mit einer if else Anweisung und den umdrehen der Variablen für die Bewegung mit *-1 zu realisieren sein müsste. Bin ein totaler noob was AS angeht ich schaffe es auch sie nach rechts laufen zu lassen doch wenn sie das ende der bühne erreicht weiß ich nicht wie ich sie dazu bekomme wieder umzukehren^^ Glaub das liegt an dem unverständnic in meinem Kopf... Hier mein Script soweit ich es jetzt hinbekommen habe. stop(); xbewegung = 10; ybewegung = 10; _root.ball.height = 20; _root.ball.width = 20; _root.ball._x = 10; _root.ball._y = 10; positivmov = function() { <---- noch ein Stück eines _root.ball._x += xbewegung missglückten Gedanken... } _root.attachMovie("ball", "ball", 1); _root.onEnterFrame = function() { if (_root.ball._x <=390) { _root.ball._x += xbewegung; } else { xbewegung *-1 <------------ Hier ist das Prob! } } |
| | |
| | #3 (permalink) |
| Rock'n'Bass Registriert seit: Feb 2006 Ort: Hamburg
Beiträge: 202
|
So einfach kanns gehn. PS: Mal nur aus reinem Interesse: Würde die erste Version denn so auch funzen? Code: xbewegung *= (-1);
__________________ ==>remix.nin.com<== // Life Is Too Short For Boring Music! Fantasie ist die einzige Waffe gegen die Wirklichkeit. |
| | |
| | #4 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
was ist den der unterschied ob ich * -1 oder * (-1) nehme ![]() ActionScript:
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi Geändert von _crypto_ (19-12-2007 um 11:45 Uhr) |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Sep 2003 Ort: Feldberg
Beiträge: 9
| Das Script ist Perfect
Wunderbar vielen Dank für die schnelle Hilfe Kannst du mir Bitte erklären was das: var r : Number = Math.sqrt( ball._width * ball._width + ball._height * ball._height ) / 2; macht ?? Wenn ich es richtig verstehe wird die (Höhe mal Höhe + Breite x Btreite) und dann die Hälfte davon als Variable declariert. die Variable r wird ja dann unten wieder auf den Ball gerechnet.? Bitte um Hilfe Geändert von ellodron (19-12-2007 um 15:57 Uhr) |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Sep 2003 Ort: Feldberg
Beiträge: 9
| anderer versuch
stop(); var hori = -1; var verti = -1; _root.attachMovie("ball", "ball", 1); _root.ball.height = 20; _root.ball.width = 20; _root.ball._x =20; _root.ball._y =20; _root.onEnterFrame = function() { if (hori == -1) { _root.ball._x +=5; } else { _root.ball._x -=5; } if (_root.ball._x >= 390 || _root.ball._x <= 10) { hori *=-1 } if (verti == -1) { _root.ball._y =+5; } else { _root.ball._y =-5; } if (_root.ball._y >=390 || _root.ball._y <= 10) { verti *=-1; } } das Problem ist aber das der y wert nicht richtig verarbeitet wird so funktioniert die x abfrage wunderbar aber auf der y achse springt er nur auf und ab in einen bereich von ungefähr 10 pixel |
| | |
| | #10 (permalink) |
| Neuer User Registriert seit: Mar 2006
Beiträge: 1.573
|
wieso wieder so umständliche ifelse verzweigungen machs doch so wie cih oben geschrieben habe. ob ich nun + -1 rechne oder -1 ist doch das gleiche aber im code spart es sich an zeilen... und nochmal zum r. wenn du (wie ich denke) einen ball ahst, ist es sinnvoll die kollision an den äußeren rändern zu machen, udn da x und y denke ich mal der mittelpunkt ist, muss der radius mal + und mal - gerechnet werden. kannst es auch mit getBounds() machen
__________________ Currently working on: - --- --- ----------------------------------------------------------------- ActionScript 3.0, C++, Java, Delphi Geändert von _crypto_ (19-12-2007 um 22:19 Uhr) |
| | |
| | #11 (permalink) |
| Neuer User Registriert seit: Sep 2003 Ort: Feldberg
Beiträge: 9
|
Ja deins klappt wunderbar wenn ich es bei mir einfüge doch sobald ich es selber schreibe, passieren komiche Sachen. stop(); var xmove : Number = 10; var ymove : Number = 10; var ball : MovieClip = this.attachMovie ("ball", "ball", 0); ball.height = 20; ball.width =20; ball._x = 20; ball._y =20; this.onEnterFrame = function() : Void { var r:Number = Math.sqrt(ball.height * ball.height + ball.width * ball.width) / 2; if( ball.width + r >= Stage.width || ball.width - r <= 0) xmove* -1; if( ball.height + r >= Stage.height || ball.width -r <= 0) ymove* -1; ball._x += xmove; ball.y += ymove; } das ist doch genauso wie deins oder übersehe ich da was? Das Problem ist das ich das mit dem Void in dem Script nicht kenne. Dadurch kann man hinter if() direkt sagen was er machen soll wenn if erfüllt ist ohne {}???? Wir schreiben morgen ne Prüfung und da is heikel wenn ich ein Script benutze was ich nicht zu 100% verstehe. ![]() Mir ist das andere auch zu überladen deins macht ja das gleich mit viel wenieger Script. |
| | |
| | #13 (permalink) | |
| voidboy Registriert seit: Sep 2004 Ort: München
Beiträge: 5.588
| Zitat:
Solche Dinge kannst du ganz schnell in deiner Flashhilfe nachschauen. | |
| | |
| | #14 (permalink) |
| Neuer User Registriert seit: Sep 2003 Ort: Feldberg
Beiträge: 9
|
allerdings nicht immer, wenn ich micht nicht täusche nur wenn man die Werte beinflussen will, zum reinen Auslesen wohl nicht. Aber trotzdem Danke. Hab mich echt in das Script verliebt Vielen Dank nochmal Frauenarzt / _crypto_ !!!! Würd mich zwar freuen wenn mir das jemand nochmal genauer mit dem Void erklären könnte, und was genau das Math.sqrt macht, aber denke soweit hab ich es verstanden. Wie kann ich noch eine Abfrage hinzufügen die mir in einem Textfeld ausgibt wie oft er den Rand auf der x Achse berührt? if ( ball._x +r >= Stage.width || ball._x - r <= 0) zähler +=1; ???? Bitte um schnelle Hilfe schreib in ner halben Stunde Prüfung..... Geändert von ellodron (20-12-2007 um 10:20 Uhr) |
| | |
| | #15 (permalink) |
| Neuer User Registriert seit: Jun 2007
Beiträge: 71
|
Math.sqrt benutzt man zur Wurzelberechnung! void bedeutet, das die Funktion keinen Rückgabewert hat. Würdest du bspw. function():String schreiben müßtest du gewährleisten, dass deine Funktion nen String zurückgibt. Wenn du keinen Rückgabewert brauchst, schreibste halt :void, was man wahlweise auch weglassen kann! Das hinter der if-Anweisung keine {} gesetzt werden liegt daran, das nur eine Anweisung danach steht. Müßten im Falle der if-Anweisung 2 oder mehrere Anweisungen ausgeführt werden, wären die Klammern Pflicht. Wie du siehst alles keine Hexerei. Und alles sehr schön in der Flash-Hilfe nachzulesen |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |