MarioStaticSprite.java
上传用户:gyyuli
上传日期:2013-07-09
资源大小:3050k
文件大小:6k
源码类别:

J2ME

开发平台:

Java

  1. /**
  2.  * <p>Title: Mario</p>
  3.  * <p>Description:
  4.  * You cannot remove this copyright and notice.
  5.  * You cannot use this file any part without the express permission of the author.
  6.  * All Rights Reserved</p>
  7.  * <p>Copyright: lizhenpeng (c) 2004</p>
  8.  * <p>Company: LP&P</p>
  9.  * @author lizhenpeng
  10.  * @version 1.0.0
  11.  */
  12. package mario;
  13. import javax.microedition.lcdui.Graphics;
  14. import lipeng.*;
  15. import java.io.DataInputStream;
  16. import java.io.DataOutputStream;
  17. import java.io.IOException;
  18. public class MarioStaticSprite extends LPSprite
  19. {
  20. }
  21. class MarioBrokenBrick extends LPSprite
  22. {
  23.   private int xSpeed;
  24.   private int ySpeed;
  25.   public void writeData(DataOutputStream dos) throws IOException
  26.   {
  27.     super.writeData(dos);
  28.     dos.writeInt(xSpeed);
  29.     dos.writeInt(ySpeed);
  30.   }
  31.   public void readData(DataInputStream dis) throws IOException
  32.   {
  33.     super.readData(dis);
  34.     xSpeed = dis.readInt();
  35.     ySpeed = dis.readInt();
  36.   }
  37.   public MarioBrokenBrick()
  38.   {
  39.     isHidden = true;
  40.   }
  41.   public void action()
  42.   {
  43.     if (isHidden ||x < -50 || x > MarioMIDlet.gameCanvas.width + 50
  44.         || y < -50 || y > MarioMIDlet.gameCanvas.height + 50)
  45.     {
  46.       isHidden = true;
  47.       return;
  48.     }
  49.     x+=xSpeed;
  50.     y+=ySpeed;
  51.     ySpeed+=2;
  52.   }
  53.   public void init(int x,int y,int xSpeed,int ySpeed)
  54.   {
  55.     this.x = x;
  56.     this.y = y;
  57.     this.xSpeed = xSpeed;
  58.     isHidden = false;
  59.     if(xSpeed<0)
  60.     {
  61.       frameCnt = 1;
  62.     }
  63.     else
  64.     {
  65.       frameCnt = 0;
  66.     }
  67.     this.ySpeed = ySpeed;
  68.   }
  69. }
  70. class PassLevel extends LPSprite
  71. {
  72.   public PassLevel(int x,int y)
  73.   {
  74.     this.x = x;
  75.     this.y = y;
  76.     frameCnt = 8;
  77.   }
  78. }
  79. class Stick extends LPSprite
  80. {
  81.   protected int originX;
  82.   protected int originY;
  83.   protected int interval;
  84.   protected MarioGameManage gm;
  85.   protected boolean isLeft;
  86.   public boolean isMainSpriteMove;
  87.   protected int xSpeed;
  88.   protected int ySpeed;
  89.   protected int dy;
  90.   protected boolean isDown;
  91.   public void writeData(DataOutputStream dos) throws IOException
  92.   {
  93.     super.writeData(dos);
  94.     dos.writeInt(originX);
  95.     dos.writeInt(originY);
  96.     dos.writeInt(interval);
  97.     dos.writeBoolean(isLeft);
  98.     dos.writeBoolean(isMainSpriteMove);
  99.     dos.writeInt(xSpeed);
  100.     dos.writeInt(ySpeed);
  101.     dos.writeInt(dy);
  102.     dos.writeBoolean(isDown);
  103.   }
  104.   public void readData(DataInputStream dis) throws IOException
  105.   {
  106.     super.readData(dis);
  107.     originX = dis.readInt();
  108.     originY = dis.readInt();
  109.     interval = dis.readInt();
  110.     isLeft = dis.readBoolean();
  111.     isMainSpriteMove = dis.readBoolean();
  112.     xSpeed = dis.readInt();
  113.     ySpeed = dis.readInt();
  114.     dy = dis.readInt();
  115.     isDown = dis.readBoolean();
  116.   }
  117.   public Stick()
  118.   {
  119.     this.frameCnt = 0;
  120.   }
  121.   public void reInit(int x,int y)
  122.   {
  123.     super.reInit(x,y);
  124.     isMainSpriteMove = false;
  125.   }
  126. }
  127. class StickVertMove extends Stick
  128. {
  129.   public StickVertMove(int x,int y,int ySpeed,MarioGameManage gm)
  130.   {
  131.     this.x = x;
  132.     this.y = y;
  133.     this.ySpeed = ySpeed;
  134.     this.gm = gm;
  135.   }
  136.   public void action()
  137.   {
  138.     y+=ySpeed;
  139.     if(isMainSpriteMove)
  140.     {
  141.       gm.mainSprite.y+=ySpeed;
  142.     }
  143.     if(ySpeed>0)
  144.     {
  145.       if(y>gm.canvas.height)
  146.       {
  147.         y = -10;
  148.       }
  149.     }
  150.     else
  151.     {
  152.       if(y<-10)
  153.       {
  154.         y = gm.canvas.height;
  155.       }
  156.     }
  157.   }
  158. }
  159. class StickVertMoveShake extends Stick
  160. {
  161.   public StickVertMoveShake(int x,int y,int interval,MarioGameManage gm)
  162.   {
  163.     this.x = x;
  164.     this.y = y;
  165.     this.ySpeed = ySpeed;
  166.     this.gm = gm;
  167.     this.originY = y;
  168.     this.interval = interval;
  169.   }
  170.   public void action()
  171.   {
  172.     if(isLeft)
  173.     {
  174.       y-=2;
  175.       if(isMainSpriteMove)
  176.       {
  177.         gm.mainSprite.y-=2;
  178.       }
  179.       if(originY-(gm.mainSprite.judgeMap.y+y)>interval)
  180.       {
  181.         isLeft=false;
  182.       }
  183.     }
  184.     else
  185.     {
  186.       y+=2;
  187.       if(isMainSpriteMove)
  188.       {
  189.         gm.mainSprite.y+=2;
  190.       }
  191.       if((y+gm.mainSprite.judgeMap.y)-originY>interval)
  192.       {
  193.         isLeft=true;
  194.       }
  195.     }
  196.   }
  197. }
  198. class StickHornMove extends Stick
  199. {
  200.   public StickHornMove(int x,int y,int interval,MarioGameManage gm)
  201.   {
  202.     this.x = x;
  203.     this.y = y;
  204.     this.interval = interval;
  205.     this.originX = x;
  206.     this.gm = gm;
  207.   }
  208.   public void action()
  209.   {
  210.     if(isLeft)
  211.     {
  212.       x-=2;
  213.       if(isMainSpriteMove)
  214.       {
  215.         gm.mainSprite.x -= 2;
  216.       }
  217.       if(originX-(gm.mainSprite.judgeMap.x+x)>interval)
  218.       {
  219.         isLeft=false;
  220.       }
  221.     }
  222.     else
  223.     {
  224.       x+=2;
  225.       if(isMainSpriteMove)
  226.       {
  227.         gm.mainSprite.x += 2;
  228.       }
  229.       if((x+gm.mainSprite.judgeMap.x)-originX>interval)
  230.       {
  231.         isLeft=true;
  232.       }
  233.     }
  234.   }
  235. }
  236. class StickFall extends Stick
  237. {
  238.   public StickFall(int x,int y,MarioGameManage gm)
  239.   {
  240.     this.x = x;
  241.     this.y = y;
  242.     this.gm = gm;
  243.     isDown = false;
  244.   }
  245.   public void reInit(int x,int y)
  246.   {
  247.     this.x = x;
  248.     this.y = y;
  249.     this.frameCnt = 0;
  250.     dy = 0;
  251.     this.isDown = false;
  252.     this.isHidden = false;
  253.   }
  254.   public void action()
  255.   {
  256.     if(!isHidden)
  257.     {
  258.       if(isDown)
  259.       {
  260.         ++timeCnt;
  261.       }
  262.       if(timeCnt>5)
  263.       {
  264.         dy+=2;
  265.         y+=dy;
  266.         if(y>gm.canvas.width+20)
  267.         {
  268.           isHidden=true;
  269.         }
  270.       }
  271.     }
  272.   }
  273. }
  274. class FallBridge extends LPSprite
  275. {
  276.   public FallBridge(int x,int y)
  277.   {
  278.     this.x = x;
  279.     this.y = y;
  280.     frameCnt = 9;
  281.     isDown=false;
  282.   }
  283.   public void reInit(int x,int y)
  284.   {
  285.     this.x = x;
  286.     this.y = y;
  287.     this.timeCnt = 0;
  288.     this.isDown = false;
  289.     this.isHidden = false;
  290.     dy = 0;
  291.   }
  292.   public void action()
  293.   {
  294.     if(!isHidden)
  295.     {
  296.       if(isDown)
  297.       {
  298.         ++timeCnt;
  299.       }
  300.       if(timeCnt>5)
  301.       {
  302.         dy+=2;
  303.         y+=dy;
  304.         if(y>MarioMIDlet.gameCanvas.width+20)
  305.         {
  306.           isHidden=true;
  307.         }
  308.       }
  309.     }
  310.   }
  311.   public void readData(DataInputStream dis) throws IOException
  312.   {
  313.     super.readData(dis);
  314.     dy = dis.readInt();
  315.     isDown = dis.readBoolean();
  316.   }
  317.   public void writeData(DataOutputStream dos) throws IOException
  318.   {
  319.     super.writeData(dos);
  320.     dos.writeInt(dy);
  321.     dos.writeBoolean(isDown);
  322.   }
  323.   public boolean isDown;
  324.   private int dy;
  325. }