Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-04-2005, 08:16   #1 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 19
rechtsdreh statt linksdreh

hallo, wollte mein array rechtsdrehen lassen. allerdings dreht es sich momentan links herum. kann mir einer weiterhelfen? steh etwas auf dem schlauch.

ActionScript:
  1. Piece.prototype.setNext = function () {
  2.     temp_array = new Array();
  3.     temp_array = [ [0,0,0,0],
  4.                  [0,0,0,0],
  5.                  [0,0,0,0],
  6.                  [0,0,0,0] ];
  7.  
  8.     for ( row = 0; row < 4; row++ ) {
  9.         for ( col = 0; col < 4; col++ ){
  10.             temp_array[col][3 - row] = this.piece_array[row][col];
  11.         }
  12.     }
  13.     this.piece_array = temp_array;
  14.    
  15.     while( !( this.piece_array[0][0] || this.piece_array[1][0] ||
  16.               this.piece_array[2][0] || this.piece_array[3][0]) ) {
  17.         for ( row = 0; row < 4; row++ ) {
  18.             for ( col = 1; col < 4; col++ ){
  19.                 this.piece_array[row][col - 1] = this.piece_array[row][col];
  20.             }
  21.         }
  22.  
  23.         this.piece_array[0][3] = 0;
  24.         this.piece_array[1][3] = 0;
  25.         this.piece_array[2][3] = 0;
  26.         this.piece_array[3][3] = 0;
  27.     }
  28. };
adlerfeder ist offline   Mit Zitat antworten
Alt 29-04-2005, 11:52   #2 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Ich hoffe, dass ich dich richtig verstanden habe.
Dann z.B. so:
ActionScript:
  1. stop();
  2. var test_arr = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]];
  3. drehRechts = function (arr) {
  4.     var temp_arr = [], count = 0;
  5.     for (var i = 0; i<=arr[0].length-1; i++) {
  6.         temp_arr[i] = [];
  7.         for (var d = arr.length-1; d>=0; d--) {
  8.             temp_arr[i][count] = arr[d][i];
  9.             count++;
  10.         }
  11.         count = 0;
  12.     }
  13.     return temp_arr;
  14. };
  15. trace("originalarray     = "+test_arr);
  16. trace("array dreh rechts = "+drehRechts(test_arr));
__________________
Gruß, Jey!
jeypack ist offline   Mit Zitat antworten
Alt 29-04-2005, 13:29   #3 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 19
soll ich das jetzt zusätzlich verwenden, oder stattdessen?

ich schätz mal zusätzlich?
adlerfeder ist offline   Mit Zitat antworten
Alt 29-04-2005, 16:06   #4 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Zitat:
Zitat von adlerfeder
soll ich das jetzt zusätzlich verwenden, oder stattdessen?

ich schätz mal zusätzlich?
Nein - stattdessen!
Einfach mal ausprobieren.
__________________
Gruß, Jey!
jeypack ist offline   Mit Zitat antworten
Alt 29-04-2005, 16:19   #5 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 19
thanx, hab ich gemacht, kommt allerdings folgende fehlermeldung:

Code:
originalarray     = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
array dreh rechts = 12,8,4,0,13,9,5,1,14,10,6,2,15,11,7,3
man hört zwar das tonsignal für den dreh, aber es dreht sich leider nicht. werder rechts noch links

kann es sein, dass jetzt die Tastatur nicht mehr direkt angesprochen wird?

ActionScript:
  1. } else if( Key.isDown( Key.UP ) ) {
  2.             if ( pieces[_global.currentPiece].testNext() )
  3.                 changePiece();

Geändert von adlerfeder (29-04-2005 um 16:21 Uhr)
adlerfeder ist offline   Mit Zitat antworten
Alt 29-04-2005, 16:45   #6 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Zitat:
Zitat von adlerfeder
thanx, hab ich gemacht, kommt allerdings folgende fehlermeldung:

Code:
originalarray     = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
array dreh rechts = 12,8,4,0,13,9,5,1,14,10,6,2,15,11,7,3
man hört zwar das tonsignal für den dreh, aber es dreht sich leider nicht. werder rechts noch links

kann es sein, dass jetzt die Tastatur nicht mehr direkt angesprochen wird?

ActionScript:
  1. } else if( Key.isDown( Key.UP ) ) {
  2.             if ( pieces[_global.currentPiece].testNext() )
  3.                 changePiece();
Na ja, du must das natürlich noch in deinen Code bzw. Methode integrieren.
Aber wenn du willst, dass die Elemente im Array sich nach rechts drehen, damit gehts. (So habe ich das zumindest verstanden).
Habe das halt auf die Husche mitner Funktion umgesetzt. Was du reingestellt hast ist ja eine Methode.
Die Fehlermeldung ist keine Fehlermeldung sondern die Ausgabe des gedrehten Arrays.
Bin jetzt mal davon ausgegangen, dass du den 'trace'-Befehl kennst.
__________________
Gruß, Jey!
jeypack ist offline   Mit Zitat antworten
Alt 29-04-2005, 18:36   #7 (permalink)
Neuer User
 
Registriert seit: Feb 2004
Beiträge: 19
ups , hab ich mich blamiert?

das kommt davon, wenn man sich nicht wirklich zeit nimmt. ok, dann kann ich diese Funktion ja auch raus nehmen.

Aber kannst du mir vielleicht sagen, was an meiner Methode geändert werden müsste? Ich mein, ich verstehs halt nicht, warum die sich nicht nach rechts drehen!
adlerfeder ist offline   Mit Zitat antworten
Alt 30-04-2005, 12:15   #8 (permalink)
User
 
Benutzerbild von jeypack
 
Registriert seit: Sep 2003
Ort: Essen
Beiträge: 616
Zitat:
Zitat von adlerfeder
ups , hab ich mich blamiert?

das kommt davon, wenn man sich nicht wirklich zeit nimmt. ok, dann kann ich diese Funktion ja auch raus nehmen.

Aber kannst du mir vielleicht sagen, was an meiner Methode geändert werden müsste? Ich mein, ich verstehs halt nicht, warum die sich nicht nach rechts drehen!
Also ich bin ja kein Hellseher. Deswegen weiß ich auch nicht, was gespielt wird.
Außerdem merk ich gerade Uuhpps... die Methode setNext() dreht doch auch rechts herum.
Vielleicht kannst du es ja so angehen:
ActionScript:
  1. Piece = function () {
  2. };
  3. Piece.prototype.piece_array = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11], [12, 13, 14, 15]];
  4. Piece.prototype.setNext = function(direction) {
  5.     temp_array = new Array();
  6.     temp_array = [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]];
  7.     if (direction == "left") {
  8.         for (var row = 0; row<4; row++) {
  9.             for (var col = 0; col<4; col++) {
  10.                 temp_array[3-col][row] = this.piece_array[row][col];
  11.             }
  12.         }
  13.     } else if (direction == "right") {
  14.         for (var row = 0; row<4; row++) {
  15.             for (var col = 0; col<4; col++) {
  16.                 temp_array[col][3-row] = this.piece_array[row][col];
  17.             }
  18.         }
  19.     }
  20.     this.piece_array = temp_array;
  21.     while (!(this.piece_array[0][0] || this.piece_array[1][0] || this.piece_array[2][0] || this.piece_array[3][0])) {
  22.         for (var row = 0; row<4; row++) {
  23.             for (var col = 1; col<4; col++) {
  24.                 this.piece_array[row][col-1] = this.piece_array[row][col];
  25.             }
  26.         }
  27.         this.piece_array[0][3] = 0;
  28.         this.piece_array[1][3] = 0;
  29.         this.piece_array[2][3] = 0;
  30.         this.piece_array[3][3] = 0;
  31.     }
  32. };
  33. p = new Piece();
  34. trace("1. - p.piece_array = "+p.piece_array);
  35. p.setNext("left");
  36. trace("2. - p.piece_array = "+p.piece_array);
  37. p.setNext("right");
  38. p.setNext("right");
  39. trace("3. - p.piece_array = "+p.piece_array);
Natürlich nur die geänderte Methode. Der Rest ist nur, damit ich auch was seh.
__________________
Gruß, Jey!
jeypack ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 06:07 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele