自学制作贪吃蛇


在学习的过程中,特别是学习程序,如果看懂了一个程序,但是你如果不亲自去写一遍这个程序,你还是不算是真正会制作这个程序的,本人利用闲暇时间,参考别人的程序,自己做出了一个贪吃蛇游戏的程序:

程序设计的过程是:

一:抽象出:贪吃蛇游戏中的各个对象(界面,游动的蛇,)

二.一步一步的理顺游戏的逻辑,从设计对象开始,

三,修改自己的程序,使其尽量少地bug出现


总结:我自己制作的贪吃蛇程序,没有运用到缓存技术所以有时候会看到屏闪,同时因为没有考虑到frame的边框效果,导致frame的边框挡住了游戏的边界部分!

从游戏的界面部分开始设计起:

设计游戏的格子->游动的蛇->被吃的豆豆->再回过头来实现游戏的主题逻辑部分,以下是设计出来后的程序代码,本人才疏学浅,如有错误,请不吝赐教!


游戏的主题逻辑部分(包括界面对象的设计)

/**
 * @Title: Aboard.java
 * @Package com.csdn.ranplus.snake
 * @Description: TODO
 * @author: Rainplus
 * @date: Feb 15, 2014 9:46:41 PM
 * @version: V1.0   
 */
package com.csdn.ranplus.snake;

import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * @author: Rainplus
 * @Description: 游戏活动的界面;
 * @date: Feb 15, 2014 9:46:41 PM
 */
public class Aboard extends Frame {
	public static final int ROWS = 30;
	public static final int COLS = 30;
	public static final int BLOCK_SIZE = 15;
	private static Aboard singleton;
	private static Snake s = new Snake();
	private static Bean b = new Bean();
	private MoveThread moveThread = new MoveThread();
	private static boolean gameOver = false;
	private static int score;
	
	/**
	 * @Title: start
	 * @Description: 使用单例模式的入口点     
	 * @throws:
	 */
	public static void start() {
		if (singleton == null) {
			singleton = new Aboard();
		}
		singleton.draw();
	}

	/**
	 * @Title: draw
	 * @Description: 画出贪吃蛇的界面大小;
	 * @throws:
	 */
	private void draw() {
		this.setTitle("Rainplus自学版 贪吃蛇");
		this.setSize(ROWS * BLOCK_SIZE, COLS * BLOCK_SIZE);
		this.setLocation(200, 200);
		this.addWindowListener(new WindowAdapter() {

			@Override
			public void windowClosing(WindowEvent e) {
				System.exit(0);
			}

		});
		this.setVisible(true);
		this.addKeyListener(new KeyMonitor());
		new Thread(moveThread).start();
	}

	/**
	 * @Title: paint
	 * @Override:
	 * @Desc
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值