资源简介
消消乐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个文件信息
- 上一篇:SSH个人相册项目
- 下一篇:sublime for mac 安装包
相关资源
- SSM框架管理系统
- 基于web的酒店客房管理系统
- 蓝牙五子棋
- DB旅游系统
- ssm框架搭建的简单的教务管理系统
- GatherPlatform数据抓取平台
- 房屋出租管理系统源码及毕设论文
- 深入浅出 RxJS(全本)
- 网狐棋牌(文档与源代码)
- 基于DirectX9.0c的坦克小游戏
- 游戏开发中的人工智能 中文 pdf
- mybatis+spring+springmvc+easyui做的一个登陆
- 基于Struts2、hibernate、spring实现的新闻
- 基于Qt5.7的2048小游戏
- 橙光文字游戏制作工具1.19.72.35.exe
- [游戏脚本高级编程]PDF版本
- 学生管理系统包含数据库文件以及需
- 网页游戏口袋精灵2动图素材包含地图
- 支付宝web接口调用
- 消消乐.zip
- qcby_ssm.zip
- 一个pygame实现的RPG游戏
- JDK11文档 jdk-11.0.4 API文档
- Unity3D坦克大战 源代码3D游戏开发
- 黑白棋游戏
- Unity3D StarTrooper多人游戏源码(可运行
- 第一行代码第二版源代码.rar
- 为女友做的游戏
- Algorithms 4th Edition(算法,第4版) 中
- 23种设计模式项目包括源码和ppt
评论
共有 条评论