如何用Java语言写一个贪吃蛇游戏

1年前 (2022-10-08)阅读4回复1
zaibaike
zaibaike
  • 管理员
  • 注册排名1
  • 经验值562677
  • 级别管理员
  • 主题112535
  • 回复1
楼主

  设想游戏,起首就要设想界面。起首看一下我设想的一个界面。界面分为右边的游戏区与右边的控造区。游戏区包罗“得分信息”和贪吃蛇的游戏区,右边控造区有“起头”“暂停”“停行”按钮,品级选择单选框以及游戏排行榜。所以我们需要定义swing组件,并在类初始化时初始化那些组件,添加组件。

  因为后面设想游戏的时候,我们要切当晓得游戏区的大小,所以那里设置游戏区固定大小值。原来想用规划来更好的办理,但做者对规划也掌握不敷,所以就先设置固定大小吧。定义我们的游戏。贪吃蛇游戏其实就是包罗良多藐小网格,然后蛇在网格中挪动。蛇由连续串的网格构成,为了视觉效果,蛇身用蓝色标识表记标帜,食物用红色标识表记标帜,布景白色。

  如第一张图片所示。所以,我们需要定义二维数组,保留网格信息,保留蛇身和食物的位置信息等。初始化时,还需要添加键盘事务控造上下摆布挪动。食物的位置信息是二维的,所以我简单定义了一个类用来保留二维信息。接着就是实现游戏的功用了。起头,暂停,停行按钮添加事务控造游戏起头。

  品级按钮定义游戏难度等。起头游戏后,我们定义一个按时器。蛇身根据指定的标的目的挪动,标的目的是通过初始化时添加的键盘事务,键盘的上下摆布按钮来控造。蛇身是持续的位置信息,保留到队列中,所以蛇身的挪动就是队首增加一个位置,队尾削减位置,然后从头绘画游戏区就能够了。

  在蛇身挪动时进一步做吃掉食物、碰墙、碰到本身的处置。那是游戏的次要逻辑。最初,游戏完毕我们弹出一个对话框提醒能否保留游戏得分。我们造做了排行榜信息,只保留前10名的游戏得分。起首定义了一个实现Comparable接口的游戏得分类,按得分高,时间最早来排序。

  游戏完毕时保留得分信息,看能否进入到排行榜中。而之前在初始化排行榜组件时就会加载游戏排行榜信息。通过保留和读取排行榜信息,我们也熟悉一下文件读取操做,还有集合、排序算法的功用。

0
回帖

如何用Java语言写一个贪吃蛇游戏 相关回复(1)

临风
临风
沙发
用Java编写贪吃蛇游戏,乐趣无穷!
2个月前 (01-18 01:53)回复00
取消