免费java游戏代码大全(编程一个最简单游戏代码)

本文实例为大家分享了Java实现方块赛跑小游戏的具体代码,供大家参考,具体内容如下

在一个图形界面上构造两个位于同一起跑线方块,起跑线位于界面靠左位置, A 方块先开始运动,向右移动 50 像素后停止,B 方块开始运动,向右移动 100 像素后停 止,A 方块继续向右运动 100 像素后停止,B 方块开始运动,如此循环接替执行,直至 某一个方块到达终点,界面显示该方块胜利信息。

1) 自定义一个threadA,ThreadB, ThreadFrame类(均继承自Thread)。

2) 定义全局变量,方块的位置,总长度,冠军,睡眠时间等,布尔值方块等待变量、游戏继续变量、绘图变量

3) ThreadA(ThreadB):等待waitA(waitB)变量释放,即:等待另一个方块更新完位置;然后随机产生要移动的长度,检查运动后位置与总长度的关系,以此判断游戏是否结束。更新位置信息,更改绘图变量,通知绘图线程重绘。自锁本身,释放另一个方块线程。

4) ThreadFrame:创建类对象,重写run函数,等待绘图变量的命令。接到绘图命令,重绘,判断游戏释放结束,重置绘图命令。

5) 构造函数,paint函数绘制,并进行游戏是否结束的判断,若结束,则打印冠军是谁,退出

6) 主函数,定义threadA,ThreadB, ThreadFrame类的对象,运行。用jion函数等待子线程的结束。

import java.awt.*;
import javax.swing.*;

public class four3 extends JFrame {
 // 全局变量
 static int positionA = 50, positionB = 50, distanceAll = 1600;
 static int RecWidth = 50, RecHeight = 50;
 static char winner;
 static long sleeptime = 300;
 static boolean waitA = true, waitB = true, gaming = true, unrepaint = true;

 //构造函数
 public four3() {
 setTitle("多线程:方块赛跑");
 setBackground(Color.WHITE);
 setSize(1600, 500);
 setLocation(0, 200);
 setResizable(false);
 setVisible(true);
 setDefaultCloseOperation(EXIT_ON_CLOSE);
 }

 //绘图函数
 public void paint(Graphics g) {
 // TODO Auto-generated method stub
 g.clearRect(0, 0, 1600, 900);
 g.setColor(Color.RED);
 g.fillRect(positionA - 50, 100, RecWidth, RecHeight);
 g.setColor(Color.BLUE);
 g.fillRect(positionB - 50, 300, RecWidth, RecHeight);

 if (!gaming) {
  g.setFont(new Font("宋体", ALLBITS, 50));
  if (winner == 'A') {
  g.setColor(Color.RED);
  g.drawString(new String("Winner Is The Red One!"), 550, 250);
  } else if (winner == 'B') {
  g.setColor(Color.BLUE);
  g.drawString(new String("Winner Is The Blue One!"), 550, 250);
  }
 }
 }

 public static void main(String[] args) {
 waitA = false;
 waitB = true;
 unrepaint = false;

 threadframe tf = new threadframe();
 threadA tA = new threadA();
 threadB tB = new threadB();

 tf.start();
 tA.start();
 tB.start();

 try {
  tf.join();
  tA.join();
  tB.join();
 } catch (Exception e) {
  // TODO: handle exception
 }
 return;
 }

 //红色方块线程
 public static class threadA extends Thread {

 public void run() {
  while (gaming) {

  while (waitA) {
   if (!gaming)return;
   System.out.print("");
  }

  try {
   sleep(sleeptime);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  int distance = (int) (Math.random() * 100000) % 100;
  positionA += distance;
  if (positionA >= distanceAll) {
   positionA = distanceAll;
   unrepaint = false;
   gaming = false;
   winner = 'A';
  }
  unrepaint = false;
  waitA = true;
  waitB = false;
  }
 }
 }

 //蓝色方块线程
 public static class threadB extends Thread {

 public void run() {
  while (gaming) {

  while (waitB) {
   if (!gaming)return;
   System.out.print("");
  }

  try {
   sleep(sleeptime);
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
  int distance = (int) (Math.random() * 100000) % 100;
  positionB += distance;

  if (positionB >= distanceAll) {
   positionB = distanceAll;
   unrepaint = false;
   gaming = false;
   winner = 'B';
  }
  unrepaint = false;
  waitB = true;
  waitA = false;
  }
 }
 }

 //框架刷新线程
 public static class threadframe extends Thread {
 four3 jiemian = new four3();

 public void run() {
  while (gaming) {
  while (unrepaint) {
   if (!gaming)return;
   System.out.print("");
  }
  jiemian.repaint();
  unrepaint = true;
  }
 }
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

秒鲨号所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈!本站将在三个工作日内改正。
(18)

大家都在看

  • 九龙拉棺纹身含义是什么,世界十大禁忌纹身图片

    纹身是很多年轻人耍酷的方式,不少年轻人在背上或其他部位都纹上各种纹身,丝毫不忌讳纹身所代表的含义,那纹身有没有忌讳呢?九龙拉棺纹身有什么禁忌呢?世界十大禁忌纹身是哪些呢?我们今天一…

    2022年5月25日
  • 最新房产税税率表(2021新房产税税率)

    财政部、人大预算工委、住建部、税务总局近日在京召开房地产税改革试点工作座谈会。 公告十分简短,全文103个字,却涉及利益面十分广泛的房地产税问题。 01 “房产税”≠“房地产税” …

    2022年5月28日
  • 什么品牌的眼霜好用又实惠(十款眼霜好用又实惠的品牌盘点)

    在国货品牌迅速发展的当下,对于护肤品的市场冲击力非常大,以往贵价的护肤品大牌,也是倍感压力,在中端产品着重发力,为我们带来了不少诚意之作。 抗老眼霜是大牌中端线的竞争热区,随之出现…

    2022年8月9日 投稿
  • 阿里巴巴公司市值一览(阿里市值蒸发19000亿)

    最近的马云和阿里巴巴低调了很多,先是蚂蚁金服上市被否定,之后就是阿里巴巴受到了反垄断调查,被罚款100多个亿。这些事情直接影响到了阿里巴巴的发展,阿里的市值蒸发了19000多个亿,…

    2022年5月20日
  • 英汉互译器app(英汉互译拍照翻译器)

    我们经常遇到的翻译形式,无非就是中英文翻译了。有时候我们需要大量翻译文件,但是我们的翻译能力有限,我们该怎么办呢?可以帮助到我们的中英文翻译软件哪个好呢?大家可以试试下面这两个,不…

    2022年5月23日
  • 借呗上征信吗(用借呗居然没上征信)

    在支付宝盛行的当下,人们的生活已经越来越离不开支付宝。用户可以在支付宝里购买理财产品、储蓄、缴纳水电费、租借充电宝等,也可以在里面申请贷款。有朋友咨询,为什么我的借呗没上征信?原因…

    2022年3月14日
  • 网赚心得分享

    从懵懵懂懂发现“新大陆”看着大佬晒收入截图、晒消费截图、晒房子、晒车子,看大佬讲述自己从屌丝逆袭到人生赢家的故事,感觉的自己的人生又燃起了希望。 然后信心满满的进场仿佛下一个人生赢…

    2022年6月8日
  • 立知丨销售技巧和话术 销售话术技巧

      一个销售人员要想让产品介绍得富有诱人的魅力,以激发顾客的兴趣,刺激其购买欲望,就要讲究语言的艺术,向客户展示语言魅力。   要用客户听得懂的语言来介绍,通俗易懂的语言最容易被大…

    2022年8月17日
  • 和平精英段位排行(看到他的段位后)

    前段时间举办的PSI赛事想必各位小伙伴一定还印象深刻,作为比赛最强老六的鲨鱼也是凭借自己的老六打法成功拿到了一胜一负。正当大家以为鲨鱼会在比赛后好好休息鸽几天直播的时候,参加完比赛…

    2022年6月19日 投稿
  • 10万元存3年定期有多少利息(10万元存三年定期利息多少钱)

    在把钱存到银行时,大家最看重的除了存款的安全外,另一个就是存款的利息了。那么,大家是否知道银行存款的利息是怎么算的呢?如果在银行存10万3年的定期,利息有多少? 银行存款的利息怎么…

    2022年5月26日
品牌推广 在线咨询
返回顶部