网络

教育改变生活

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1069|回复: 0
打印 上一主题 下一主题

Java项目实战之天天酷跑(六)

[复制链接]

271

主题

284

帖子

1243

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1243

最佳新人活跃会员热心会员突出贡献优秀版主

跳转到指定楼层
楼主
发表于 2021-2-24 19:36:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
3、几种障碍物的出现障碍物一:螃蟹
  1. package cn.sqc.runday.model;

  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.awt.Paint;
  5. import java.io.File;

  6. import javax.imageio.ImageIO;

  7. import cn.sqc.runday.view.GameFrame;

  8. public class Barrs_1 {
  9.         private Image image;
  10.         private Image [] images;
  11.         public static final int WIDTH=100;
  12.         public static final int HEIGHT=110;
  13.         private int x,y;
  14.         int  index;
  15.         private int speed;
  16.        
  17.         public Barrs_1() {//                螃蟹!
  18.                 images = new Image[2];
  19.                 try {
  20.                         images[0]=ImageIO.read(new File("image/a2.png"));
  21.                         images[1]=ImageIO.read(new File("image/a4.png"));               
  22.                 } catch (Exception e) {
  23.                         // TODO: handle exception
  24.                 }               
  25.                 image = images[0];
  26.                 x=GameFrame.WIDTH+100;
  27.                 y=580;
  28.                 speed =30;
  29.                 index = 0;
  30.         }
  31.        
  32.         public  void step() {//切换图片
  33.                 image =images[index++/5%images.length];
  34.                 x-=speed;//切换图片实现螃蟹爪子张合的动态效果的同时,使其向左移动
  35.         }
  36.   public void paintBarrs(Graphics g) {
  37.         g.drawImage(image, x,y,WIDTH,HEIGHT, null);
  38. }
  39.   public boolean outofBounds(){
  40.                 return this.x <=-WIDTH;
  41.         }
  42. public Image getImage() {
  43.         return image;
  44. }
  45. public void setImage(Image image) {
  46.         this.image = image;
  47. }
  48. public Image[] getImages() {
  49.         return images;
  50. }
  51. public void setImages(Image[] images) {
  52.         this.images = images;
  53. }
  54. public int getX() {
  55.         return x;
  56. }
  57. public void setX(int x) {
  58.         this.x = x;
  59. }
  60. public int getY() {
  61.         return y;
  62. }
  63. public void setY(int y) {
  64.         this.y = y;
  65. }
  66. public int getIndex() {
  67.         return index;
  68. }
  69. public void setIndex(int index) {
  70.         this.index = index;
  71. }
  72. public int getSpeed() {
  73.         return speed;
  74. }
  75. public void setSpeed(int speed) {
  76.         this.speed = speed;
  77. }
  78. public static int getWidth() {
  79.         return WIDTH;
  80. }
  81. public static int getHeight() {
  82.         return HEIGHT;
  83. }
  84.   
  85. }
复制代码

需要注意的是,在创建后,记得添加set、get方法。以便在面板类中对其障碍物进行操作。
障碍物二:宠物
与其称之障碍物,不如说它是个跟着玩家的小跟班。
  1. package cn.sqc.runday.model;

  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.awt.event.KeyListener;
  5. import java.io.File;
  6. import java.io.IOException;

  7. import javax.imageio.ImageIO;

  8. import cn.sqc.runday.view.GameFrame;

  9. public class Barrs_2{  //  宠物!
  10.         private Image image;
  11.         private Image images [] ;
  12.         public static final int WIDTH= 70;
  13.         public static final int HEIGHT = 60;
  14.         private int x,y;
  15.         int index;
  16.         public Barrs_2() {
  17.                 init();
  18.                 image = images[0];
  19.                 x=300;
  20.                 y=460;
  21.         }
  22.         public void drop() {
  23.                 y ++;
  24.                 if(y>=460){
  25.                         y = 460;
  26.                 }
  27.         }
  28.         public void step(){
  29.                 image = images[index++/2%images.length];
  30.         }
  31.          public void paintBarrs(Graphics g) {
  32.                         g.drawImage(image, x,y,WIDTH,HEIGHT, null);
  33.                 }
  34.         public boolean outofBounds() {
  35.                 return this.x<=-WIDTH;
  36.         }
  37. public void init(){
  38.         images = new Image[6];
  39.         for( int i=0;i<6;i++){
  40.                 try {
  41.                         images[i]=ImageIO.read(new File ("Image/"+"d"+(i+1)+".png"));
  42.                 } catch (IOException e) {
  43.                         // TODO Auto-generated catch block
  44.                         e.printStackTrace();
  45.                 }
  46.         }
  47. }
  48. public Image getImage() {
  49.         return image;
  50. }
  51. public void setImage(Image image) {
  52.         this.image = image;
  53. }
  54. public Image[] getImages() {
  55.         return images;
  56. }
  57. public void setImages(Image[] images) {
  58.         this.images = images;
  59. }
  60. public int getX() {
  61.         return x;
  62. }
  63. public void setX(int x) {
  64.         this.x = x;
  65. }
  66. public int getY() {
  67.         return y;
  68. }
  69. public void setY(int y) {
  70.         this.y = y;
  71. }
  72. public int getIndex() {
  73.         return index;
  74. }
  75. public void setIndex(int index) {
  76.         this.index = index;
  77. }
  78. public static int getWidht() {
  79.         return WIDTH;
  80. }
  81. public static int getHeight() {
  82.         return HEIGHT;
  83. }

  84. }
复制代码

障碍物三、导弹
  1. package cn.sqc.runday.model;

  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.io.File;

  5. import javax.imageio.ImageIO;

  6. import cn.sqc.runday.view.GameFrame;

  7. public class Barrs_3 {//                 导弹!
  8.         private Image image;
  9.         private int x,y;
  10.         public static final int WIDTH = 150;
  11.         public static final int HEIGHT=70;
  12.         private int speed;
  13.         public Barrs_3() {
  14.                 try {
  15.                         image = ImageIO.read(new File("image/daodan.png"));
  16.                 } catch (Exception e) {
  17.                         // TODO: handle exception
  18.                 }
  19.                 x=GameFrame.WIDTH+1000;
  20.                 y=450;
  21.                 speed = 25 ;
  22.         }
  23.         public void step(){
  24.                 x-=speed;
  25.         }
  26.         public void paintBarrs(Graphics g) {
  27.                 g.drawImage(image, x, y, WIDTH, HEIGHT, null);

  28.         }
  29.         public boolean outofBounds(){
  30.                 return this.x<=-WIDTH;
  31.         }
  32.         public Image getImage() {
  33.                 return image;
  34.         }
  35.         public void setImage(Image image) {
  36.                 this.image = image;
  37.         }
  38.         public int getX() {
  39.                 return x;
  40.         }
  41.         public void setX(int x) {
  42.                 this.x = x;
  43.         }
  44.         public int getY() {
  45.                 return y;
  46.         }
  47.         public void setY(int y) {
  48.                 this.y = y;
  49.         }
  50.         public int getSpeed() {
  51.                 return speed;
  52.         }
  53.         public void setSpeed(int speed) {
  54.                 this.speed = speed;
  55.         }
  56.         public static int getWidth() {
  57.                 return WIDTH;
  58.         }
  59.         public static int getHeight() {
  60.                 return HEIGHT;
  61.         }
  62.        

  63. }
复制代码

障碍物四:鱼叉等障碍物
  1. package cn.sqc.runday.model;

  2. import java.awt.Graphics;
  3. import java.awt.Image;
  4. import java.io.File;
  5. import java.util.Random;

  6. import javax.imageio.ImageIO;

  7. import cn.sqc.runday.view.GameFrame;

  8. public class Barrs_4 {//                鱼叉障碍物!
  9.         private Image image;
  10.         private Image images[];
  11.         public static final int WIDTH =150;
  12.         public static final int HEIGHT =350;
  13.         private int x,y;
  14.        
  15.         public Barrs_4() {//构造方法
  16.                 Random random = new Random();
  17.                 images = new Image[4] ;
  18.         try {
  19.                 images[0] = ImageIO.read(new File("image/11.png"));
  20.                 images[1]= ImageIO.read(new File("image/12.png"));
  21.                 images[2]= ImageIO.read(new File("image/13.png"));
  22.                 images[3]= ImageIO.read(new File("image/14.png"));
  23.         } catch (Exception e) {
  24.                 // TODO: handle exception
  25.         }
  26.                 image= images[random.nextInt(4)];
  27.                 x=GameFrame.WIDTH+1500;
  28.                 y=0;
  29.         }
  30.         public void step(){
  31.                 x-=20;
  32.         }
  33.         public void paintBarrs(Graphics g){
  34.                 g.drawImage(image, x, y, WIDTH, HEIGHT, null);
  35.         }
  36.         public boolean outofBounds(){
  37.                 return this.x<=-WIDTH;
  38.         }
  39.         public Image getImage() {
  40.                 return image;
  41.         }
  42.         public void setImage(Image image) {
  43.                 this.image = image;
  44.         }
  45.         public Image[] getImages() {
  46.                 return images;
  47.         }
  48.         public void setImages(Image[] images) {
  49.                 this.images = images;
  50.         }
  51.         public int getX() {
  52.                 return x;
  53.         }
  54.         public void setX(int x) {
  55.                 this.x = x;
  56.         }
  57.         public int getY() {
  58.                 return y;
  59.         }
  60.         public void setY(int y) {
  61.                 this.y = y;
  62.         }
  63.         public static int getWidth() {
  64.                 return WIDTH;
  65.         }
  66.         public static int getHeight() {
  67.                 return HEIGHT;
  68.         }
  69.        
  70. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

WEB前端

QQ|手机版|小黑屋|金桨网|助学堂  咨询请联系站长。

GMT+8, 2025-1-3 10:07 , Processed in 0.032806 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表