2012-11-28 15 views
7

Ben PAC MAN oyun kodu var Bu oyunda android olarak nasıl bir aktivite olarak adlandırılır .. ve ben android uygulama online oyun bir bağlantı android uygulama aramak için nasıl aramak istiyorum Eğer kullanıcı o oyun linki üzerine tıklarsa, online oyun öğle yemeği formundan daha iyi .. PAC MAN gibi oyunlar. teşekkürlerandroid oyunları başlatmak

public class Board extends JPanel implements ActionListener { 

    Dimension d; 
    Font smallfont = new Font("Helvetica", Font.BOLD, 14); 

    FontMetrics fmsmall, fmlarge; 
    Image ii; 
    Color dotcolor = new Color(192, 192, 0); 
    Color mazecolor; 

    boolean ingame = false; 
    boolean dying = false; 

    final int blocksize = 24; 
    final int nrofblocks = 15; 
    final int scrsize = nrofblocks * blocksize; 
    final int pacanimdelay = 2; 
    final int pacmananimcount = 4; 
    final int maxghosts = 12; 
    final int pacmanspeed = 6; 

    int pacanimcount = pacanimdelay; 
    int pacanimdir = 1; 
    int pacmananimpos = 0; 
    int nrofghosts = 6; 
    int pacsleft, score; 
    int deathcounter; 
    int[] dx, dy; 
    int[] ghostx, ghosty, ghostdx, ghostdy, ghostspeed; 

    Image ghost; 
    Image pacman1, pacman2up, pacman2left, pacman2right, pacman2down; 
    Image pacman3up, pacman3down, pacman3left, pacman3right; 
    Image pacman4up, pacman4down, pacman4left, pacman4right; 

    int pacmanx, pacmany, pacmandx, pacmandy; 
    int reqdx, reqdy, viewdx, viewdy; 

    final short leveldata[] = 
    { 19, 26, 26, 26, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 22, 
     21, 0, 0, 0, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 
     21, 0, 0, 0, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 
     21, 0, 0, 0, 17, 16, 16, 24, 16, 16, 16, 16, 16, 16, 20, 
     17, 18, 18, 18, 16, 16, 20, 0, 17, 16, 16, 16, 16, 16, 20, 
     17, 16, 16, 16, 16, 16, 20, 0, 17, 16, 16, 16, 16, 24, 20, 
     25, 16, 16, 16, 24, 24, 28, 0, 25, 24, 24, 16, 20, 0, 21, 
     1, 17, 16, 20, 0, 0, 0, 0, 0, 0, 0, 17, 20, 0, 21, 
     1, 17, 16, 16, 18, 18, 22, 0, 19, 18, 18, 16, 20, 0, 21, 
     1, 17, 16, 16, 16, 16, 20, 0, 17, 16, 16, 16, 20, 0, 21, 
     1, 17, 16, 16, 16, 16, 20, 0, 17, 16, 16, 16, 20, 0, 21, 
     1, 17, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 20, 0, 21, 
     1, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 20, 0, 21, 
     1, 25, 24, 24, 24, 24, 24, 24, 24, 24, 16, 16, 16, 18, 20, 
     9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 25, 24, 24, 24, 28 }; 

    final int validspeeds[] = { 1, 2, 3, 4, 6, 8 }; 
    final int maxspeed = 6; 

    int currentspeed = 3; 
    short[] screendata; 
    Timer timer; 


    public Board() { 

     GetImages(); 

     addKeyListener(new TAdapter()); 

     screendata = new short[nrofblocks * nrofblocks]; 
     mazecolor = new Color(5, 100, 5); 
     setFocusable(true); 

     d = new Dimension(400, 400); 

     setBackground(Color.black); 
     setDoubleBuffered(true); 

     ghostx = new int[maxghosts]; 
     ghostdx = new int[maxghosts]; 
     ghosty = new int[maxghosts]; 
     ghostdy = new int[maxghosts]; 
     ghostspeed = new int[maxghosts]; 
     dx = new int[4]; 
     dy = new int[4]; 
     timer = new Timer(40, this); 
     timer.start(); 
    } 

    public void addNotify() { 
     super.addNotify(); 
     GameInit(); 
    } 


    public void DoAnim() { 
     pacanimcount--; 
     if (pacanimcount <= 0) { 
      pacanimcount = pacanimdelay; 
      pacmananimpos = pacmananimpos + pacanimdir; 
      if (pacmananimpos == (pacmananimcount - 1) || pacmananimpos == 0) 
       pacanimdir = -pacanimdir; 
     } 
    } 


    public void PlayGame(Graphics2D g2d) { 
     if (dying) { 
      Death(); 
     } else { 
      MovePacMan(); 
      DrawPacMan(g2d); 
      moveGhosts(g2d); 
      CheckMaze(); 
     } 
    } 


    public void ShowIntroScreen(Graphics2D g2d) { 

     g2d.setColor(new Color(0, 32, 48)); 
     g2d.fillRect(50, scrsize/2 - 30, scrsize - 100, 50); 
     g2d.setColor(Color.white); 
     g2d.drawRect(50, scrsize/2 - 30, scrsize - 100, 50); 

     String s = "Press s to start."; 
     Font small = new Font("Helvetica", Font.BOLD, 14); 
     FontMetrics metr = this.getFontMetrics(small); 

     g2d.setColor(Color.white); 
     g2d.setFont(small); 
     g2d.drawString(s, (scrsize - metr.stringWidth(s))/2, scrsize/2); 
    } 


    public void DrawScore(Graphics2D g) { 
     int i; 
     String s; 

     g.setFont(smallfont); 
     g.setColor(new Color(96, 128, 255)); 
     s = "Score: " + score; 
     g.drawString(s, scrsize/2 + 96, scrsize + 16); 
     for (i = 0; i < pacsleft; i++) { 
      g.drawImage(pacman3left, i * 28 + 8, scrsize + 1, this); 
     } 
    } 


    public void CheckMaze() { 
     short i = 0; 
     boolean finished = true; 

     while (i < nrofblocks * nrofblocks && finished) { 
      if ((screendata[i] & 48) != 0) 
       finished = false; 
      i++; 
     } 

     if (finished) { 
      score += 50; 

      if (nrofghosts < maxghosts) 
       nrofghosts++; 
      if (currentspeed < maxspeed) 
       currentspeed++; 
      LevelInit(); 
     } 
    } 

    public void Death() { 

     pacsleft--; 
     if (pacsleft == 0) 
      ingame = false; 
     LevelContinue(); 
    } 


    public void moveGhosts(Graphics2D g2d) { 
     short i; 
     int pos; 
     int count; 

     for (i = 0; i < nrofghosts; i++) { 
      if (ghostx[i] % blocksize == 0 && ghosty[i] % blocksize == 0) { 
       pos = 
ghostx[i]/blocksize + nrofblocks * (int)(ghosty[i]/blocksize); 

       count = 0; 
       if ((screendata[pos] & 1) == 0 && ghostdx[i] != 1) { 
        dx[count] = -1; 
        dy[count] = 0; 
        count++; 
       } 
       if ((screendata[pos] & 2) == 0 && ghostdy[i] != 1) { 
        dx[count] = 0; 
        dy[count] = -1; 
        count++; 
       } 
       if ((screendata[pos] & 4) == 0 && ghostdx[i] != -1) { 
        dx[count] = 1; 
        dy[count] = 0; 
        count++; 
       } 
       if ((screendata[pos] & 8) == 0 && ghostdy[i] != -1) { 
        dx[count] = 0; 
        dy[count] = 1; 
        count++; 
       } 

       if (count == 0) { 
        if ((screendata[pos] & 15) == 15) { 
         ghostdx[i] = 0; 
         ghostdy[i] = 0; 
        } else { 
         ghostdx[i] = -ghostdx[i]; 
         ghostdy[i] = -ghostdy[i]; 
        } 
       } else { 
        count = (int)(Math.random() * count); 
        if (count > 3) 
         count = 3; 
        ghostdx[i] = dx[count]; 
        ghostdy[i] = dy[count]; 
       } 

      } 
      ghostx[i] = ghostx[i] + (ghostdx[i] * ghostspeed[i]); 
      ghosty[i] = ghosty[i] + (ghostdy[i] * ghostspeed[i]); 
      DrawGhost(g2d, ghostx[i] + 1, ghosty[i] + 1); 

      if (pacmanx > (ghostx[i] - 12) && pacmanx < (ghostx[i] + 12) && 
       pacmany > (ghosty[i] - 12) && pacmany < (ghosty[i] + 12) && 
       ingame) { 

       dying = true; 
       deathcounter = 64; 

      } 
     } 
    } 


    public void DrawGhost(Graphics2D g2d, int x, int y) { 
     g2d.drawImage(ghost, x, y, this); 
    } 


    public void MovePacMan() { 
     int pos; 
     short ch; 

     if (reqdx == -pacmandx && reqdy == -pacmandy) { 
      pacmandx = reqdx; 
      pacmandy = reqdy; 
      viewdx = pacmandx; 
      viewdy = pacmandy; 
     } 
     if (pacmanx % blocksize == 0 && pacmany % blocksize == 0) { 
      pos = 
pacmanx/blocksize + nrofblocks * (int)(pacmany/blocksize); 
      ch = screendata[pos]; 

      if ((ch & 16) != 0) { 
       screendata[pos] = (short)(ch & 15); 
       score++; 
      } 

      if (reqdx != 0 || reqdy != 0) { 
       if (!((reqdx == -1 && reqdy == 0 && (ch & 1) != 0) || 
         (reqdx == 1 && reqdy == 0 && (ch & 4) != 0) || 
         (reqdx == 0 && reqdy == -1 && (ch & 2) != 0) || 
         (reqdx == 0 && reqdy == 1 && (ch & 8) != 0))) { 
        pacmandx = reqdx; 
        pacmandy = reqdy; 
        viewdx = pacmandx; 
        viewdy = pacmandy; 
       } 
      } 

      // Check for standstill 
      if ((pacmandx == -1 && pacmandy == 0 && (ch & 1) != 0) || 
       (pacmandx == 1 && pacmandy == 0 && (ch & 4) != 0) || 
       (pacmandx == 0 && pacmandy == -1 && (ch & 2) != 0) || 
       (pacmandx == 0 && pacmandy == 1 && (ch & 8) != 0)) { 
       pacmandx = 0; 
       pacmandy = 0; 
      } 
     } 
     pacmanx = pacmanx + pacmanspeed * pacmandx; 
     pacmany = pacmany + pacmanspeed * pacmandy; 
    } 


    public void DrawPacMan(Graphics2D g2d) { 
     if (viewdx == -1) 
      DrawPacManLeft(g2d); 
     else if (viewdx == 1) 
      DrawPacManRight(g2d); 
     else if (viewdy == -1) 
      DrawPacManUp(g2d); 
     else 
      DrawPacManDown(g2d); 
    } 

    public void DrawPacManUp(Graphics2D g2d) { 
     switch (pacmananimpos) { 
     case 1: 
      g2d.drawImage(pacman2up, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 2: 
      g2d.drawImage(pacman3up, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 3: 
      g2d.drawImage(pacman4up, pacmanx + 1, pacmany + 1, this); 
      break; 
     default: 
      g2d.drawImage(pacman1, pacmanx + 1, pacmany + 1, this); 
      break; 
     } 
    } 


    public void DrawPacManDown(Graphics2D g2d) { 
     switch (pacmananimpos) { 
     case 1: 
      g2d.drawImage(pacman2down, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 2: 
      g2d.drawImage(pacman3down, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 3: 
      g2d.drawImage(pacman4down, pacmanx + 1, pacmany + 1, this); 
      break; 
     default: 
      g2d.drawImage(pacman1, pacmanx + 1, pacmany + 1, this); 
      break; 
     } 
    } 


    public void DrawPacManLeft(Graphics2D g2d) { 
     switch (pacmananimpos) { 
     case 1: 
      g2d.drawImage(pacman2left, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 2: 
      g2d.drawImage(pacman3left, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 3: 
      g2d.drawImage(pacman4left, pacmanx + 1, pacmany + 1, this); 
      break; 
     default: 
      g2d.drawImage(pacman1, pacmanx + 1, pacmany + 1, this); 
      break; 
     } 
    } 


    public void DrawPacManRight(Graphics2D g2d) { 
     switch (pacmananimpos) { 
     case 1: 
      g2d.drawImage(pacman2right, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 2: 
      g2d.drawImage(pacman3right, pacmanx + 1, pacmany + 1, this); 
      break; 
     case 3: 
      g2d.drawImage(pacman4right, pacmanx + 1, pacmany + 1, this); 
      break; 
     default: 
      g2d.drawImage(pacman1, pacmanx + 1, pacmany + 1, this); 
      break; 
     } 
    } 


    public void DrawMaze(Graphics2D g2d) { 
     short i = 0; 
     int x, y; 

     for (y = 0; y < scrsize; y += blocksize) { 
      for (x = 0; x < scrsize; x += blocksize) { 
       g2d.setColor(mazecolor); 
       g2d.setStroke(new BasicStroke(2)); 

       if ((screendata[i] & 1) != 0) // draws left 
       { 
        g2d.drawLine(x, y, x, y + blocksize - 1); 
       } 
       if ((screendata[i] & 2) != 0) // draws top 
       { 
        g2d.drawLine(x, y, x + blocksize - 1, y); 
       } 
       if ((screendata[i] & 4) != 0) // draws right 
       { 
        g2d.drawLine(x + blocksize - 1, y, x + blocksize - 1, 
           y + blocksize - 1); 
       } 
       if ((screendata[i] & 8) != 0) // draws bottom 
       { 
        g2d.drawLine(x, y + blocksize - 1, x + blocksize - 1, 
           y + blocksize - 1); 
       } 
       if ((screendata[i] & 16) != 0) // draws point 
       { 
        g2d.setColor(dotcolor); 
        g2d.fillRect(x + 11, y + 11, 2, 2); 
       } 
       i++; 
      } 
     } 
    } 

    public void GameInit() { 
     pacsleft = 3; 
     score = 0; 
     LevelInit(); 
     nrofghosts = 6; 
     currentspeed = 3; 
    } 


    public void LevelInit() { 
     int i; 
     for (i = 0; i < nrofblocks * nrofblocks; i++) 
      screendata[i] = leveldata[i]; 

     LevelContinue(); 
    } 


    public void LevelContinue() { 
     short i; 
     int dx = 1; 
     int random; 

     for (i = 0; i < nrofghosts; i++) { 
      ghosty[i] = 4 * blocksize; 
      ghostx[i] = 4 * blocksize; 
      ghostdy[i] = 0; 
      ghostdx[i] = dx; 
      dx = -dx; 
      random = (int)(Math.random() * (currentspeed + 1)); 
      if (random > currentspeed) 
       random = currentspeed; 
      ghostspeed[i] = validspeeds[random]; 
     } 

     pacmanx = 7 * blocksize; 
     pacmany = 11 * blocksize; 
     pacmandx = 0; 
     pacmandy = 0; 
     reqdx = 0; 
     reqdy = 0; 
     viewdx = -1; 
     viewdy = 0; 
     dying = false; 
    } 

    public void GetImages() 
    { 

     ghost = new ImageIcon(Board.class.getResource("../pacpix/ghost.png")).getImage(); 
     pacman1 = new ImageIcon(Board.class.getResource("../pacpix/pacman.png")).getImage(); 
     pacman2up = new ImageIcon(Board.class.getResource("../pacpix/up1.png")).getImage(); 
     pacman3up = new ImageIcon(Board.class.getResource("../pacpix/up2.png")).getImage(); 
     pacman4up = new ImageIcon(Board.class.getResource("../pacpix/up3.png")).getImage(); 
     pacman2down = new ImageIcon(Board.class.getResource("../pacpix/down1.png")).getImage(); 
     pacman3down = new ImageIcon(Board.class.getResource("../pacpix/down2.png")).getImage(); 
     pacman4down = new ImageIcon(Board.class.getResource("../pacpix/down3.png")).getImage(); 
     pacman2left = new ImageIcon(Board.class.getResource("../pacpix/left1.png")).getImage(); 
     pacman3left = new ImageIcon(Board.class.getResource("../pacpix/left2.png")).getImage(); 
     pacman4left = new ImageIcon(Board.class.getResource("../pacpix/left3.png")).getImage(); 
     pacman2right = new ImageIcon(Board.class.getResource("../pacpix/right1.png")).getImage(); 
     pacman3right = new ImageIcon(Board.class.getResource("../pacpix/right2.png")).getImage(); 
     pacman4right = new ImageIcon(Board.class.getResource("../pacpix/right3.png")).getImage(); 

    } 

    public void paint(Graphics g) 
    { 
     super.paint(g); 

     Graphics2D g2d = (Graphics2D) g; 

     g2d.setColor(Color.black); 
     g2d.fillRect(0, 0, d.width, d.height); 

     DrawMaze(g2d); 
     DrawScore(g2d); 
     DoAnim(); 
     if (ingame) 
     PlayGame(g2d); 
     else 
     ShowIntroScreen(g2d); 

     g.drawImage(ii, 5, 5, this); 
     Toolkit.getDefaultToolkit().sync(); 
     g.dispose(); 
    } 

    class TAdapter extends KeyAdapter { 
     public void keyPressed(KeyEvent e) { 

      int key = e.getKeyCode(); 

      if (ingame) 
      { 
      if (key == KeyEvent.VK_LEFT) 
      { 
       reqdx=-1; 
       reqdy=0; 
      } 
      else if (key == KeyEvent.VK_RIGHT) 
      { 
       reqdx=1; 
       reqdy=0; 
      } 
      else if (key == KeyEvent.VK_UP) 
      { 
       reqdx=0; 
       reqdy=-1; 
      } 
      else if (key == KeyEvent.VK_DOWN) 
      { 
       reqdx=0; 
       reqdy=1; 
      } 
      else if (key == KeyEvent.VK_ESCAPE && timer.isRunning()) 
      { 
       ingame=false; 
      } 
      else if (key == KeyEvent.VK_PAUSE) { 
       if (timer.isRunning()) 
        timer.stop(); 
       else timer.start(); 
      } 
      } 
      else 
      { 
      if (key == 's' || key == 'S') 
      { 
       ingame=true; 
       GameInit(); 
      } 
      } 
     } 

      public void keyReleased(KeyEvent e) { 
       int key = e.getKeyCode(); 

       if (key == Event.LEFT || key == Event.RIGHT || 
       key == Event.UP || key == Event.DOWN) 
       { 
       reqdx=0; 
       reqdy=0; 
       } 
      } 
     } 

    public void actionPerformed(ActionEvent e) { 
     repaint(); 
    } 
} 

cevap

0

Sadece "oyun kodunu çağrı" olamaz. Android'de mantığı öğrenebilir, anlayabilir ve yeniden kullanabilir ve yeni bir oyun oluşturabilirsiniz. Bu kodun yeniden kullanılması bile çok fazla refactoring gerektirecektir.

Android oyunları oluşturmak istiyorsanız, Cocos2D gibi bir çerçeve kullanabilirsiniz.

http://dan.clarke.name/2011/04/how-to-make-a-simple-android-game-with-cocos2d/

+0

flash oyunlar diğer java kod oyunları gibi herhangi bir çevrimiçi oyun aramak için hiçbir şekilde onların geçerli:

İşte iyi öğretici var? ... onların sadece Cocos2D oyun yapmak ve android uygulamada oynamak daha mı? –

+0

Tarayıcıyı destekliyorsa, flash oyunları tarayıcıda çalıştırabilirsiniz. Başka platformlardaki oyunları yeniden kodlamak zorunda kalacaksınız (bir çeşit emülatör kullanmıyorsanız. Performans burada bir isabet alabilir). Cocos2D sadece bir çerçevedir ve başkaları da vardır. –

+0

teşekkürler ... bana bir şey söyle. Oyun telefonda zaten kurulu ise. Bu oyunu benim uygulamamda nasıl çağırırım yoksa o oyunu başlatmak için bir bağlantıyı tıklıyorum –

İlgili konular