Anzeige

Snakespiel

Snakespiel | PSD-Tutorials.de

Erstellt von maeggi07, 23.07.2008.

  1. maeggi07

    maeggi07 Noch nicht viel geschrieben

    Dabei seit:
    29.08.2007
    Beiträge:
    34
    Geschlecht:
    männlich
    Software:
    Photoshop CS6 Extended
    Snakespiel
    Hallo,

    Ich bin dabei ein Snakespiel zu machen. Wo der Wurm sich um 360 Grad drehen kann. Das funkioniert dank @Modokan einwandfrei.

    Jetzt funkioniert aber der andere Teil des Wurms nicht mehr(der schwanz des wurmes).

    Ich habe nur die Steuerung verändert. Hier mal der AS, wenn es funkioniert, ohne 360 Grad Steuerung.
    Das der AS vom HEAD

    PHP:
    1.  onClipEvent (load) {
    2.    kill = 0;
    3.     var count=0;
    4.  
    5. function replicate () {
    6.         count+=1;
    7.       if (count>=300) {
    8.          count = 0;
    9.       }
    10. duplicateMovieClip (_root.tail, "tail"+ count, 10+count);
    11.       _root["tail"+count]._x = this._x;
    12.       _root["tail"+count]._y = this._y;
    13.        
    14.  
    15. if(dir=="right"){_root["tail"+count]._rotation=0}
    16. else
    17. if(dir=="left"){_root["tail"+count]._rotation=180}
    18. else
    19. if(dir=="down"){_root["tail"+count]._rotation=90}
    20. else
    21. if(dir=="up"){_root["tail"+count]._rotation=-90}
    22.  
    23.    }
    24. function checkEdges(){
    25.     if (_x>550){this._x=-10}
    26. else if (_x<-15){this._x=540}
    27. else if (_y>400){_y=-10}
    28. else if (_y<-15){_y=380}
    29. }
    30.  
    31.  
    32.    }
    33.  
    34. onClipEvent (enterFrame) {
    35.  
    36.  
    37. checkEdges()
    38.  
    39.    if(!_root.head.kill){
    40.    if (Key.isDown(Key.RIGHT) and dir != "left") {
    41.       dir = "right";
    42.       speedx = 10;
    43.       speedy = 0;
    44.       this._rotation=0
    45.       replicate ()
    46.        
    47.    } else if (Key.isDown(Key.LEFT) and dir != "right") {
    48.       dir = "left";
    49.       speedx = -10;
    50.       speedy = 0;
    51.       replicate ()
    52.       this._rotation=180
    53.    } else if (Key.isDown(Key.UP) and dir != "down") {
    54.       dir = "up";
    55.       speedy = -10;
    56.       speedx = 0;
    57.       replicate ()
    58.       this._rotation=260
    59.    } else if (Key.isDown(Key.DOWN) and dir != "up") {
    60.       dir = "down";
    61.       speedx = 0;
    62.       speedy = 10;
    63.       replicate ()
    64.       this._rotation=90
    65.    }else {replicate ()}
    66.    
    67.    this._x += speedx;
    68.    this._y += speedy;
    69.    }
    70.    
    71.    
    72. }
    So funkioniert das einwandfrei.

    Wenn Ich das Jetzt mit der Steuerung änder(360 Grad), dann funkioniert das nicht mehr.

    Hier der AS.

    PHP:
    1.  onClipEvent (load) {
    2.    kill = 0;
    3.     var count=0;
    4.  
    5. function replicate () {
    6.         count+=1;
    7.       if (count>=300) {
    8.          count = 0;
    9.       }
    10. duplicateMovieClip (_root.tail, "tail"+ count, 10+count);
    11.       _root["tail"+count]._x = this._x;
    12.       _root["tail"+count]._y = this._y;
    13.        
    14.  
    15.    }
    16. function checkEdges(){
    17.     if (_x>550){this._x=-10}
    18. else if (_x<-15){this._x=540}
    19. else if (_y>400){_y=-10}
    20. else if (_y<-15){_y=380}
    21. }
    22.  
    23.  
    24.    }
    25.  
    26. onClipEvent (enterFrame) {
    27.  
    28.  
    29. checkEdges()
    30. speed = 5;
    31.  
    32.    if(!_root.head.kill){
    33.    if (Key.isDown(Key.RIGHT)) {
    34.        this._rotation += 7;
    35.       replicate ()
    36.       } else if (Key.isDown(Key.LEFT)) {
    37.         this._rotation -= 7;
    38.    }else {replicate ()}
    39.    
    40.         this._x += speed * Math.cos(this._rotation * (Math.PI / 180));
    41.         this._y += speed * Math.sin(this._rotation * (Math.PI / 180));
    42.    }
    43.    
    44.    
    45. }
    Die 360 Grad Steuerung funkioniert.
    Aber der Wurm wird nicht länger, und nach dem ich die 2te Nahrung gegessen habe, gehe ich immer GAMEOVER.

    Hier mal die SWF

    KLICK MICH


    Hier auch nochmal der AS für den Schwanz des Wurmes.

    PHP:
    1.  onClipEvent (load){var c=0;}
    2. onClipEvent (enterFrame){
    3. c=c+1;
    4.  
    5. if ( c>=_root.life){removeMovieClip (this);}
    6.  
    7.  
    8. if ( this.hitTest(_root.pill)){_root.pill.change_pos=1;}
    9.  
    10. if (this.hitTest (_root.head._x,_root.head._y,true))
    11. {_root.head.kill=1;
    12.  
    13. _root.pill._x=-100;
    14.  
    15. _root.msg="Game Over";
    16.  
    17. }
    18.  
    19. }
    20.      
    Wieso funkioniert das so nicht? Was mache ich Falsch?

    Ich hoffe mir kann da jemand bei Helfen.

    Das wäre echt super, wenn da mal jemand drüber gucken könnte.

    Vielen Dank

    mfg maeggi07
     
    #1      
  2. Xehanorth

    Xehanorth 2D/3D Hobby-Artist

    Dabei seit:
    28.05.2008
    Beiträge:
    211
    Geschlecht:
    männlich
    Snakespiel
    AW: Snakespiel

    hab die swf 2 mal angespielt und beim 2ten mal konnte ich 4 nahrungen einsammeln o_O
     
    #2      
  3. maeggi07

    maeggi07 Noch nicht viel geschrieben

    Dabei seit:
    29.08.2007
    Beiträge:
    34
    Geschlecht:
    männlich
    Software:
    Photoshop CS6 Extended
    Snakespiel
    AW: Snakespiel

    4 nahrungen schaffe ich nicht:D

    das ist ja auch nur, die test version davon. der wurm sieht in echt anders aus:D

    wollte eig. am we, das spiel fertig haben. aber das wird wohl nichts. will auch noch eine highscore mit einbinden. aber das kann ich ja schonmal machen.

    ich hoffe jemand hat noch eine idee.

    vielen dank

    mfg maeggi
     
    #3      
  4. BlueTomato

    BlueTomato Noch nicht viel geschrieben

    Dabei seit:
    10.06.2008
    Beiträge:
    4
    Geschlecht:
    männlich
    Snakespiel
    AW: Snakespiel

    hast du schon mal im adobe flash forum angefragt? da treiben sich die spezialisten rum...
     
    #4      
x
×
×
teststefan