Java GUI项目,一个练手的泡泡龙小游戏

泡泡龙经典小游戏

在敲代码之前一定要了解清楚基本规则和算法,不能盲目的写。
1.游戏规则:
由当前泡泡出发,经过若干个相邻泡泡,存在可连到顶端的通路,则认为该泡泡具有挂点,不会下坠。当泡泡失去挂点则下坠。
2. 泡泡的消除
主要有爆掉和下坠两种方式,前者是后者的基础。
(a) 泡泡爆掉
当玩家主动令游戏区形成 3 个或以上的同色泡泡相连,则这些泡泡将爆掉。
(b) 泡泡下坠
当爆掉的泡泡造成连接的异色泡泡失去挂点,则这些异色泡泡将下坠,算入消去的泡泡中。(下坠中的泡泡不对其他泡泡发生作用)
3. 泡泡的发射
发射出一个泡泡后,必须等灯泡泡爆掉或黏附与它泡泡或顶端,才能发下一个泡泡(称为就绪),但期间可以使用道具。
4. 泡泡的反弹
可利用两侧垂直的墙壁进行反弹,这是越过障碍击打上层泡泡的重要技巧。
5. 泡泡的黏附
泡泡飞行途中边界与其他泡泡相触,即被黏附,并停止运动。位置由入射角和原来静止的泡泡位置共同决定。
6. 胜负判断
泡泡下压越过下方的 “警戒线” 。

在程序里面所谓的规则,就是我们需要去实现的条件 ,算法等,这里主要需要的算法如下:
1.泡泡发射出去的运动轨迹
2.泡泡之间以及泡泡与墙壁的碰撞检测
3.泡泡最后的定位
4.泡泡的消除显示
5.泡泡的掉落显示

思考清楚后开始实战,我这里用的是eclipse,结构和代码如下。

在这里插入图片描述

//处理鼠标释放事件
    public final void mouseReleased(MouseEvent e) 
    {

		int currentKey =38;// e.getKeyCode();

		if (listKeys.length != 0) //从按键列表中按键的键码
		{
			int[] newListKeys = new int[listKeys.length-1];
			boolean found = false;

			for (int i=0 ; i<listKeys.length ; i++)
			{
				if (found)
				{
					newListKeys[i-1] = listKeys[i];
				}
				else
				{
					if (i != listKeys.length - 1)
					{
						newListKeys[i] = listKeys[i];
					}
				}

				if (listKeys[i] == currentKey)
				{
					found = true;
				}

				if (i == listKeys.length-1 && !found)
				{
					return;
				}
			}

			listKeys = newListKeys;
		}
//处理鼠标拖动事件
    public final void mouseDragged(MouseEvent e) 
    {
		mousePosition = e.getPoint();
			
		paint(this.getGraphics());
    }
	
	//处理鼠标移动事件
    public final void mouseMoved(MouseEvent e) 
    {
		mousePosition = e.getPoint();
			
		paint(this.getGraphics());
    }	
}

完成 效果
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页