package com.mypro.manager;
import java.util.ArrayList;
import java.util.HashMap;
import com.mypro.base.graphics.Bitmap;
import com.mypro.constant.Constant;
import com.mypro.model.Ammo;
import com.mypro.model.FishingNet;
import com.mypro.model.GamingInfo;
import com.mypro.model.WaterRipple;
import com.mypro.model.componets.Cannon;
import com.mypro.model.componets.ChangeCannonEffect;
import com.mypro.threads.ShotThread;
import com.mypro.tools.LogTools;
import com.mypro.tools.Tool;
/**
* 大炮管理器
* @author Xiloerfan
*
*/
public class CannonManager {
/**
* 是否可以更换大炮
*/
private boolean canChangeCannon = true;
/**
* 所有子弹
* key:大炮质量ID,value:子弹图片数组
*/
private HashMap<Integer,Bitmap[]> bullet = new HashMap<Integer,Bitmap[]>();
/**
* 所有大炮
* key:大炮质量ID,value:大炮图片数组
*/
private HashMap<Integer,Cannon> cannon = new HashMap<Integer,Cannon>();
/**
* 所有渔网图片
*/
private Bitmap[] net;
/**
* 水波纹下效果图片
*/
private Bitmap[] waterRipple;
/**
* 变换大炮的效果图
*/
private Bitmap[] changeCannonEffect;
/**
* 激光炮
*/
private Bitmap[] laser;
/**
* 是否可以发射炮弹
*/
private boolean shotable;
/**
* 当前使用的大炮ID
*/
private int currentCannonIndex = 1;
private static CannonManager cannonManager;
private CannonManager (){
}
/**
* 初始化大炮管理器
*/
public void init(){
try {
//获取配置文件指定的所有图片
HashMap<String,Bitmap> allImage = ImageManager.getImageMnagaer().getImagesMapByImageConfig(ImageManager.getImageMnagaer().createImageConfigByPlist("cannon/bulletandnet"),ImageManager.getImageMnagaer().scaleNum);
allImage.putAll(ImageManager.getImageMnagaer().getImagesMapByImageConfig(ImageManager.getImageMnagaer().createImageConfigByPlist("cannon/fire"),ImageManager.getImageMnagaer().scaleNum));
//初始化金币数字
initGoldNum(allImage);
//初始化子弹
initAmmo(allImage);
//初始化渔网
initNet(allImage);
//初始化水波纹
initWaterRipple(ImageManager.getImageMnagaer().getImagesMapByImageConfig(ImageManager.getImageMnagaer().createImageConfigByPlist("cannon/ripple"),ImageManager.getImageMnagaer().scaleNum));
//初始化大炮
initCannon(allImage);
//初始化激光
//初始化更换大炮时的效果
initChangeCannonEffect();
} catch (Exception e) {
LogTools.doLogForException(e);
}
}
/**
* 初始化金币数字
* 写在这里是因为这个数字所在的图片是网子和子弹的资源图中,当时欠考虑这个问题了
* @param allImage
*/
private void initGoldNum(HashMap<String,Bitmap> allImage){
//渔网的图全名(num_9.png)
StringBuffer numFullName = new StringBuffer();
//定义名字编号
int num = 0;
String numName = "num_";
ArrayList<Bitmap> allNumList = new ArrayList<Bitmap>();
//获取当前子弹的所有动作
while(GamingInfo.getGamingInfo().isGaming()){
numFullName.delete(0, numFullName.length());
numFullName.append(numName+num+".png");
Bitmap numImg = allImage.get(numFullName.toString());
//如果没有解析到内容了
if(numImg==null){
break;
}
allNumList.add(numImg);
num++;
}
allNumList.add(allImage.get("num_x.png"));
//将集合转换为数组
Bitmap[] imgs = new Bitmap[allNumList.size()];
for(int i =0;i<allNumList.size();i++){
imgs[i] = allNumList.get(i);
}
ScoreManager.getScoreManager().setGoldNum(imgs);
}
/**
* 初始化更换大炮的效果图
*/
private void initChangeCannonEffect(){
HashMap<String,Bitmap> allEffect = ImageManager.getImageMnagaer().getImagesMapByImageConfig(ImageManager.getImageMnagaer().createImageConfigByPlist("cannon/changefire"),ImageManager.getImageMnagaer().scaleNum);
//效果图全名(paolizi_08.png)
StringBuffer effectFullName = new StringBuffer();
//定义名字编号
int effectNum = 1;
String effectName = "paolizi";
ArrayList<Bitmap> allEffectList = new ArrayList<Bitmap>();
while(GamingInfo.getGamingInfo().isGaming()){
effectFullName.delete(0, effectFullName.length());
if(effectNum<10){
effectFullName.append(effectName+"_0"+effectNum+".png");
}else{
effectFullName.append(effectName+"_"+effectNum+".png");
}
Bitmap effect = allEffect.get(effectFullName.toString());
if(effect==null){
break;
}
allEffectList.add(effect);
effectNum++;
}
//将集合转换为数组
changeCannonEffect = new Bitmap[allEffectList.size()];
for(int i =0;i<allEffectList.size();i++){
changeCannonEffect[i] = allEffectList.get(i);
}
}
/**
* 初始化所有大炮图片
* @param allImage
*/
private void initCannon(HashMap<String,Bitmap> allImage){
//大炮的图全名(net_11.png)
StringBuffer cannonFullName = new StringBuffer();
//定义名字编号,子名称编号
int cannonNum = 1,subCannonNum = 1;
String cannonName = "net";
ArrayList<Bitmap> allCannonList = new ArrayList<Bitmap>();
//获取当前子弹的所有动作
while(GamingInfo.getGamingInfo().isGaming()){
allCannonList.clear();
subCannonNum = 1;
cannonFullName.delete(0, cannonFullName.length());
cannonFullName.append(cannonName+"_"+cannonNum);
while(GamingInfo.getGamingInfo().isGaming()){
Bitmap cannon = allImage.get(cannonFullName.toString()+subCannonNum+".png");
if(cannon==null){
break;
}
allCannonList.add(cannon);
subCannonNum++;
}
//如果没有解析到内容了
if(allCannonList.size()==0){
break;
}
//将集合转换为数组
Bitmap[] cannons = new Bitmap[allCannonList.size()];
for(int i =0;i<allCannonList.size();i++){
cannons[i] = allCannonList.get(i);
}
//将大炮放入管理器中
Cannon cannon_obj = new Cannon(cannons);
cannon_obj.init();
cannon.put(cannonNum,cannon_obj);
cannonNum++;
}
}
/**
* 初始化大炮
*/
public void initCannon(){
setShotable(false);
currentCannonIndex = 1;
resetCannonMatrix(getCannon(currentCannonIndex));
LayoutManager.getLayoutManager().initCannon(getCannon(currentCannonIndex));
setShotable(true);
}
/**
* 初始化渔网
*/
private void initNet(HashMap<String,Bitmap> allImage){
//渔网的图全名(net011.png)
StringBuffer netFullName = new StringBuffer();
//定义名字编号
int netNum = 1;
String netName = "net";
ArrayList<Bitmap> allNetList = new ArrayList<Bitmap>();
//获取当前子弹的所有动作
while(GamingInfo.getGamingInfo().isGaming()){
netFullName.delete(0, netFullName.length());
netFullName.append(netName+"0"+netNum+".png");
Bitmap net = allImage.get(netFullName.toString());
//如果没有解析到内容了
if(net==null){
break;
}
allNetList.add(net);
netNum++;
}
//将集合转换为数组
net = new Bitmap[allNetList.size()];
for(int i =0;i<allNetList.size();i++){
net[i] = allNetList.get(i);
}
}
/**
* 初始化渔网
*/
private void initWaterRipple(HashMap<String,Bitmap> allImage){
//渔网的图全名(water_11.png)
StringBuffer rippleFullName = new StringBuffer();
//定义名字编号
int rippleNum = 1;
String rippleName = "water_";
ArrayList<Bitmap> allRippleList = new ArrayList<Bitmap>();
//获取当前子弹的所有动作
while(GamingInfo.getGamingInfo().isGaming()){
rippleFullName.delete(0, rippleFullName.length());
rippleFullName.append(rippleName+rippleNum+".png");
Bitmap ripple = allImage.get(rippleFullName.toString());
//如果没有解析到内容了
if(ripple==null){
break;
}
allRippleList.add(ripple);
rippleNum++;
}
//将集合转换为数组
waterRipple = new Bitmap[allRippleList.size()];
for(int i =0;i<allRippleList.size();i++){
waterRipple[i] = allRippleList.get(i);
}
}
/**
* 初始化所有子弹图片
*/
private void initAmmo(HashMap<String,Bitmap> allImage){
//子弹的图全名(bullet12.png),子弹子名(bullet12_01.png)
StringBuffer ammoFullName = new StringBuffer();
StringBuffer subAmmoFullName = new StringBuffer();
//定义名字编号,子名称编号
int ammoNum = 1,subAmmoNum = 1;
String ammoName = "bullet";
ArrayList<Bitmap> allAmmoList = new ArrayList<Bitmap>();
//获取当前子弹的所有动作
while(GamingInfo.getGamingInfo().isGaming()){
allAmmoList.clear();
ammoFullName.delete(0, ammoFullName.length());
ammoFullName.append(ammoN
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip java实现的ssm架构的捕鱼游戏.zipjava实现的ssm架构的捕鱼游戏.zip
资源推荐
资源详情
资源评论
收起资源包目录
java实现的ssm架构的捕鱼游戏.zip (233个子文件)
run.bat 242B
CannonManager.class 11KB
ImageManager.class 10KB
FishManager.class 9KB
ScoreManager.class 7KB
ShoalManager.class 7KB
FishRunThread.class 7KB
MainSurface.class 6KB
SoundManager.class 6KB
GamePartManager.class 5KB
GoldParticleEffect.class 5KB
AmmoParticleEffect.class 5KB
LayoutManager.class 5KB
ShotThread.class 5KB
NetParticleEffect.class 5KB
Fish.class 5KB
BottomGold.class 4KB
BottomTime.class 4KB
GameInitManager.class 4KB
CatchFishManager.class 4KB
LoadProgress.class 4KB
HeadFish.class 4KB
GamingInfo.class 3KB
MusicManager$PlayThread.class 3KB
DecodingAudioPlayer.class 3KB
ScoreManager$2.class 3KB
ParticleEffectManager.class 3KB
FishingNet.class 3KB
MainSurface$JCanvas$JPaint.class 3KB
ImageConfig$ActConfig.class 3KB
MusicManager.class 3KB
ShoalManager$2.class 2KB
XmlManager.class 2KB
CircleRectangleIntersect.class 2KB
FishRunThread$1.class 2KB
Cannon.class 2KB
MainSurface$JCanvas.class 2KB
FishGold.class 2KB
ScoreManager$4.class 2KB
ScoreManager$3.class 2KB
LayoutManager$1.class 2KB
NetParticleEffect$2.class 2KB
Fish$1.class 2KB
GamePartInfo.class 2KB
ChangeCannonEffect.class 2KB
FishInfo.class 2KB
Bitmap.class 2KB
Constant.class 2KB
CannonManager$3.class 2KB
AwtMainComponet.class 2KB
GoldParticleEffect$1.class 2KB
AmmoParticleEffect$1.class 2KB
GamePartManager$1.class 2KB
ImageConfig.class 2KB
PicActThread.class 2KB
Bottom.class 2KB
ScoreManager$1.class 2KB
PathManager.class 2KB
MainSurface$OnDrawThread.class 2KB
ButtonAdapter.class 2KB
AwtMainComponet$1.class 1KB
Gold.class 1KB
NetParticleEffect$Particle.class 1KB
AmmoParticleEffect$Particle.class 1KB
GoldParticleEffect$Particle.class 1KB
Ammo.class 1KB
ScoreManager$2$1.class 1KB
ShoalManager$1.class 1KB
ShotThread$1.class 1KB
CatchFishManager$2.class 1KB
NetParticleEffect$1.class 1KB
Componet.class 1KB
Cannon$1.class 1KB
LayoutInfo.class 1KB
DrawableAdapter.class 1KB
CannonManager$2.class 1KB
HundredPoint.class 1020B
JMatrix.class 1012B
HighPoint.class 1011B
SoundManager$1.class 966B
CannonManager$1.class 939B
WaterRipple.class 933B
CatchFishManager$1.class 915B
Log.class 895B
BackGround.class 854B
LogTools.class 780B
AwtMainComponet$2.class 690B
DownCannonButtonListener.class 603B
UpCannonButtonListener.class 595B
Tool.class 535B
Drawable.class 382B
Canvas.class 318B
NpcManager.class 291B
Paint.class 285B
Matrix.class 218B
Button.class 212B
OnClickListener.class 162B
.classpath 864B
jmf.jar 1.82MB
dom4j-1.6.1.jar 307KB
共 233 条
- 1
- 2
- 3
资源评论
辣椒种子
- 粉丝: 4240
- 资源: 5837
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功