资源简介

消消乐A2版,包含查找消除、消除动画、产生新块、下落的过程。地图生成,初始化生成没有“连续三块”的地图,有两种不同的编码方法。带演示视频,简单介绍了状态机的技术。

资源截图

代码片段和文件信息

package com.example.ani;

import java.awt.Image;
import java.util.ArrayList;
import java.util.List;

import com.example.appex3.GameTool;

//public  static int GAME_SET_PLAY=1;
//public  static int GAME_SET_CLEAR_START=2;
//public  static int GAME_SET_CLEAR=3;
//public  static int GAME_SET_MOVE_START=4;
//public  static int GAME_SET_MOVE=5;

public class ClearAni {

public List clearlist = new ArrayList();


// ////////// 消除次数
public int cleartry;

public void startclear(int[][] item_ar) {
//
cleartry++;
// 如果消除了50次,不再消除
if (cleartry > 50) {
GameTool.gamestate_set = GameTool.GAME_SET_PLAY;
return;
}

clearlist.clear();
// 找消除块,找连续三块
findClear(item_ar);
findVClear(item_ar);
// 找到“连续三块”,开始消除动画
if (clearlist.size() > 0) {
GameTool.gamestate_set = GameTool.GAME_SET_CLEAR;
} else {
// 没有找到“连续三块”,返回继续游戏
GameTool.gamestate_set = GameTool.GAME_SET_PLAY;
//统计步数
GameTool.countstep();
}
}

public void addone(int x int y) {
ClearPoint cp = new ClearPoint();
cp.setxy(x y);
cp.setMaxframe(12);
cp.setState(GameTool.ANI_PALY);

clearlist.add(cp);
}

// ///////////////
// /////////////
public int count_hclear(int[][] item_ar int x int y) {
int i j;
int num = 1;// 相同个数,从1数起

i = y;
j = x;

if (x < 0 || x > 8 || y < 0 || y > 8)
return num;

//
if (item_ar[i][j] == -1)
return num;

// 求横行某个方块向右的相同个数
while (j <= 7) {
if (item_ar[i][j] == item_ar[i][j + 1]) {
num++;
j++;

} else
break;
}
return num;
}

public int count_vclear(int[][] item_ar int x int y) {
int i j;
int num = 1;// 相同个数,从1数起

i = y;
j = x;

if (x < 0 || x > 8 || y < 0 || y > 8)
return num;

//
if (item_ar[i][j] == -1)
return num;

// 求竖行某个方块向右的相同个数
while (i <= 7) {
if (item_ar[i][j] == item_ar[i + 1][j]) {
num++;
i++;

} else
break;
}
return num;
}

public void findClear(int[][] item_ar) {
int i j;
int num = 0;

for (i = 0; i < 9; i++) {
j = 0;
// 0 - 6: 前7列
while (j <= 6) {
num = count_hclear(item_ar j i);
if (num >= 3) {
// System.out.println(“clear h num “ + num);
// 保存消除方块
for (int k = 0; k < num; k++) {
addone(j + k i);
}
}

j += num;// 跳过连续的相同方块
}
}
}

public void findVClear(int[][] item_ar) {
int i j;
int num = 0;

for (j = 0; j < 9; j++) {
i = 0;
while (i < 9) {
num = count_vclear(item_ar j i);
if (num >= 3) {
// 保存消除方块
for (int k = 0; k < num; k++) {
addone(j i + k);
}

}

i += num;// 跳过连续的相同方块
}
}
}

public void anidraw( ) {
for (int i = 0; i < clearlist.size(); i++) {
ClearPoint cp = clearlist.get(i);

if (cp.state == GameTool.ANI_PALY) {
cp.paint();
}
}
}

public void updatedata(int[][] item_ar) 

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        232  2017-09-10 06:00  消消乐A2版源码和演示视频\xxlA2\.classpath

     文件        381  2018-08-22 05:12  消消乐A2版源码和演示视频\xxlA2\.project

     文件       3187  2018-08-22 11:56  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\ClearAni.class

     文件       1202  2018-08-22 11:15  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\ClearPoint.class

     文件       2103  2018-08-22 10:18  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\InitMap.class

     文件       2166  2018-08-22 11:30  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\InitMap2.class

     文件       2457  2018-08-22 11:54  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\MoveAni.class

     文件       1498  2018-08-22 07:12  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\MovePoint.class

     文件        538  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\Point.class

     文件        857  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\ani\Rect.class

     文件       1088  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\appex3\Game.class

     文件       2005  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\appex3\GameManage.class

     文件       1986  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\appex3\GamePanel.class

     文件       1632  2018-08-22 11:49  消消乐A2版源码和演示视频\xxlA2\bin\com\example\appex3\GameTool.class

     文件       1560  2018-08-22 11:15  消消乐A2版源码和演示视频\xxlA2\bin\com\example\appex3\R.class

     文件       1226  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\game\GameInfo.class

     文件       1815  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\game\GameMenu.class

     文件       4632  2018-08-22 11:53  消消乐A2版源码和演示视频\xxlA2\bin\com\example\game\GamePlay.class

     文件       1427  2018-08-22 05:13  消消乐A2版源码和演示视频\xxlA2\bin\com\example\game\GameResult.class

     文件       1471  2018-08-22 11:41  消消乐A2版源码和演示视频\xxlA2\bin\com\example\game\XXLtouch.class

     文件       2998  2017-09-10 06:03  消消乐A2版源码和演示视频\xxlA2\img\ani\clearani1.png

     文件       3043  2017-09-10 06:03  消消乐A2版源码和演示视频\xxlA2\img\ani\clearani2.png

     文件       9847  2018-08-22 11:04  消消乐A2版源码和演示视频\xxlA2\img\ani\clearani2design.png

     文件       3043  2017-09-10 06:03  消消乐A2版源码和演示视频\xxlA2\img\ani\clearani3.png

     文件       3043  2017-09-10 06:03  消消乐A2版源码和演示视频\xxlA2\img\ani\clearani4.png

     文件       2994  2017-09-10 06:03  消消乐A2版源码和演示视频\xxlA2\img\ani\clearani5.png

     文件       3945  2018-08-22 11:08  消消乐A2版源码和演示视频\xxlA2\img\clearani1.png

     文件       4373  2018-08-22 11:08  消消乐A2版源码和演示视频\xxlA2\img\clearani2.png

     文件       4497  2018-08-22 11:08  消消乐A2版源码和演示视频\xxlA2\img\clearani3.png

     文件       4386  2018-08-22 11:14  消消乐A2版源码和演示视频\xxlA2\img\clearani4.png

............此处省略53个文件信息

评论

共有 条评论