import java.io.*;
import java.util.*;
import javax.microedition.lcdui.*;
import javax.microedition.rms.*;
/**
* 游戏画板。这是这个游戏最关键的一个类
* @author SoftStar,嘟嘟熊
* @version 1.0
*/
public class PlayCanvas extends Canvas
implements Runnable
{
/**
* 画板宽度
*/
public int canvasWidth;
/**
* 画板高度
*/
public int canvasHeight;
/**
* richMan实例
*/
private KMRichMan richMan;
/**
* 地图第1部分
*/
private Image mapImage1;
/**
* 地图第2部分
*/
private Image mapImage2;
/**
* 游戏控制面板
*/
private Image gamePanelImage;
/**
* 线程
*/
private volatile Thread thread;
/**
* 控制面板的选择序号(1-色子,2-卡片,3-其他(玩家信息,股票信息)4-系统
*/
private static int choiceIndex = 0;
/**
* 游戏角色要走的步数
*/
private static int steps = 0;
/**
* 游戏进行的轮数
*/
private static int turnCount = 0;
/**
* 游戏状态(0-进行,2-胜利,3-失败)
*/
private static int gameStatusGoOrWinOrFail = 0;
/**
* 角色特殊状态(10--在公园处,20-在监狱里,30-在睡眠中(睡眠卡)
*/
private static int status_Park10_Prinson20_Sleep30 = 0;
/**
* 现在正在进行的角色
*/
public static int nowPlayerID = 0;
/**
* 现在玩家是否能控制进行游戏(如果是电脑角色在玩,玩家就不能控制)
*/
private boolean ManControlStatus_CanNotPlay;
/**
* 随机函数
*/
private Random random;
/**
* 定时器
*/
private static Timer timer = null;
/**
* 地皮
*/
private static int groundForBuilding[] = null;
// 游戏角色变量
/**
* 角色在地图上位置(用地皮ID表示)
*/
private static int player_location[] = null;
/**
* 角色卡片
*/
private static int player_cards[][] = null;
/**
* 角色因为进入监狱而不能移动的次数
*/
private static int player_prinson_canNotMoveNum[] = null;
/**
* 角色因为睡眠而不能移动的次数
*/
private static int player_sleep_canNotMoveNum[] = null;
/**
* 角色轮转次序
*/
public static int player_sequence[] = null;
/**
* 角色的金钱
*/
public static int player_money[] = null;
/**
* 角色的地皮和房屋的图象
*/
private static Image player_houseImage[][] = null;
/**
* 角色的头像
*/
private static Image player_faceImage[] = null;
/**
* 玩家的股票 [角色ID][股票ID][0]---- 购入数目,[角色ID][股票ID][1]---- 购入价格
*
*/
public static int player_stock[][][] = null;
/**
* 屏幕图象缓冲
*/
Image bufferImage;
/**
* 空白地皮图象
*/
Image emptyGround;
/**
* 屏幕图象缓冲句柄
*/
Graphics bufferImageG;
/**
* 是否背景灯打开
*/
private boolean isLightOn = true;
/**
* 是否背景音乐打开
*/
private boolean isMusicOn = true;
/**
* 游戏速度
*/
private int gameSpeed = 3;
/**
* 音乐序号
*/
private int music = 1;
/**
* 西门子手机的音乐合成器
*/
com.siemens.mp.game.MelodyComposer composer;
/**
* 地皮的缓冲
*/
private int[] bufferGroundForBuilding;
// 股票变量
/**
* 股票名字
*/
public String[] stock_name;
/**
* 股票的价格
*/
public int[] stock_price;
/**
* 股票的涨幅
*/
public int[] stock_amplitude;
/**
* 股票的分数部分(便于计算)如 2元 涨幅 1%,总要个分数部分吧,不然老是2元
*/
public int[] stock_price_fraction;
/**
* 构造游戏画板
*/
public PlayCanvas(KMRichMan kmrichman)
{
player_faceImage = null;
richMan = null;
mapImage1 = null;
thread = null;
random = null;
thread = null;
richMan = kmrichman;
ManControlStatus_CanNotPlay = false;
random = new Random();
timer = new Timer();
canvasWidth = getWidth();
canvasHeight = getHeight();
bufferImage = Image.createImage(101,80);
bufferImageG = bufferImage.getGraphics();
groundForBuilding = new int[56];
bufferGroundForBuilding = new int[56];
player_location = new int[3];
player_money = new int[3];
player_sequence = new int[3];
player_cards = new int[3][5];
player_prinson_canNotMoveNum = new int[3];
player_sleep_canNotMoveNum = new int[3];
player_faceImage = new Image[3];
player_stock = new int[3][4][2];
// 加载图像
loadMap();
loadImage();
//初始化音乐
this.initialMusic();
//初始化游戏
initialGame();
}
/**
* 加载地图
*/
void loadMap()
{
try
{
mapImage1 = Image.createImage(128,160);
mapImage2 = Image.createImage(128,160);
Graphics g = mapImage1.getGraphics();
g.drawImage(com.siemens.mp.ui.Image.createImageWithoutScaling("/res/image/map0bw.png"),0,0,20);
g = mapImage2.getGraphics();
g.drawImage(com.siemens.mp.ui.Image.createImageWithoutScaling("/res/image/map1bw.png"),0,0,20);
}
catch(Exception exception) { }
}
/**
* 加载图象
*/
void loadImage()
{
Image houseImage = null;
Graphics g = null;
try
{
houseImage = Image.createImage("/res/image/housebw.png");
emptyGround = Image.createImage("/res/image/ground.png");
gamePanelImage = com.siemens.mp.ui.Image.createImageWithoutScaling("/res/image/gamepanelbw.png");
for(int i = 0; i < 3; i++)
player_faceImage[i] = Image.createImage(String.valueOf(new StringBuffer("/res/image/h").append(i).append(".png")));
}
catch(Exception exception) {
System.out.println("Err on loading Images");
}
// 把地皮和房子的图象分割成一个一个小块
player_houseImage = new Image[3][4];
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 4; j++)
{
Image image = Image.createImage(16, 16);
g = image.getGraphics();
g.drawImage(houseImage, -16 * j, -16 * i, 20);
player_houseImage[i][j] = image;
}
}
houseImage = null;
g = null;
}
/**
* 排列角色的次序
* @param selectedPlayerID 玩家选择的角色ID
*/
void arragePlayerSecquence(int selectedPlayerID)
{
player_sequence[0] = selectedPlayerID;
int player2 = fetchRandom(2);
int player3 = fetchRandom(2);
for(; player2 == selectedPlayerID; player2 = fetchRandom(2));
player_sequence[1] = player2;
for(; player3 == selectedPlayerID || player3 == player2; player3 = fetchRandom(2));
player_sequence[2] = player3;
}
/**
* 转到下一个玩家
* @param delay 延迟时间
*/
public void nextPlay(int deplay)
{
timer.schedule(new Controlor(this), deplay);
}
/**
* 电脑玩家开始游戏
* @param delay 延迟时间
* @param Num_ComputerActor_or_HunmanActor 是电脑还是玩家 (1-电脑 0-玩家)
*/
public void play_computerActor(int delay, int Num_ComputerActor_or_HumanActor)
{
timer.schedule(new Controlor(this, Num_ComputerActor_or_HumanActor), delay);
}
/**
* 开始游戏
* @param isLoadGameRestart 是否是进行的存储的游戏(继续上次游戏)
*/
public void play(boolean isLoadGameRestart)
{
// siemens special call
if (this.isIsLightOn())
com.siemens.mp.game.Light.setLightOn(); //开灯
else
com.siemens.mp.game.Light.setLightOff();//关灯
//siemens special call
choiceIndex = 0;
status_Park10_Prinson20_Sleep30 = 0;
if(isLoadGameRestart)
{
nowPlayerID = 2; // 让玩家先开始
} else {
repaint();
serviceRepaints();
try
{
Thread.sleep(600L);
}
catch(Exception exc
没有合适的资源?快使用搜索试试~ 我知道了~
JAVA游戏――(源代码+详细注释)大富翁.rar
共88个文件
png:31个
html:26个
java:16个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 15 浏览量
2023-07-19
19:22:13
上传
评论
收藏 266KB RAR 举报
温馨提示
JAVA游戏――(源代码+详细注释)大富翁.rar
资源推荐
资源详情
资源评论
收起资源包目录
JAVA游戏――(源代码+详细注释)大富翁.rar (88个子文件)
大富翁源码+注释
Game
rich.jar 45KB
rich.jad 158B
storage
music2.msc 186B
music6.msc 202B
RMS_RC.db 136B
music7.msc 126B
music1.msc 234B
music3.msc 290B
music4.msc 256B
RS@1.db 918B
music5.msc 174B
SourceCode
HighScoreCanvas.java 2KB
PlayCanvas.java 68KB
StockList.java 1015B
PlayCanvas.java.bak 68KB
SystemList.java 3KB
CardCanvas.java 5KB
OpenCanvas.java 6KB
OptionList.java 2KB
HelpForm.java 936B
GameMenu.java 2KB
res
image
h1.png 145B
sbback.png 109B
logobw.png 675B
card3.png 246B
ground.png 142B
h0.png 142B
card0.png 214B
Thumbs.db 137KB
h2.png 150B
card8.png 264B
card1.png 273B
map0bw.png 1KB
card7.png 219B
ph0.png 133B
map1bw.png 1KB
card6.png 250B
housebw.png 269B
barbw.png 216B
logobw2.png 790B
dice.png 194B
win.png 272B
h4.png 141B
ph2.png 137B
ph1.png 132B
card9.png 264B
gamepanelbw.png 504B
card2.png 248B
h3.png 141B
card4.png 258B
card5.png 258B
lost.png 282B
start00bw.png 359B
PlayMessageForm.java 3KB
OpenCanvasTimerTask.java 588B
PlayerStatusForm.java 767B
KMRichMan.java 23KB
DiceCanvas.java 3KB
Controlor.java 2KB
StockForm.java 4KB
Document
HelpForm.html 10KB
StockList.html 10KB
deprecated-list.html 4KB
PlayMessageForm.html 14KB
KMRichMan.html 36KB
Controlor.html 13KB
DiceCanvas.html 15KB
allclasses-noframe.html 2KB
package-list 2B
serialized-form.html 9KB
constant-values.html 4KB
OpenCanvasTimerTask.html 11KB
CardCanvas.html 16KB
SystemList.html 13KB
OptionList.html 10KB
StockForm.html 13KB
点这里啊.html 741B
stylesheet.css 1KB
OpenCanvas.html 13KB
PlayCanvas.html 70KB
GameMenu.html 12KB
PlayerStatusForm.html 10KB
help-doc.html 7KB
packages.html 733B
HighScoreCanvas.html 12KB
overview-tree.html 6KB
index-all.html 50KB
allclasses-frame.html 2KB
共 88 条
- 1
资源评论
N201871643
- 粉丝: 628
- 资源: 2243
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JSP-JTBC-CMS(SQLITE).rar
- MC3362和MC145151调频无线接收器的设计.pdf
- MiniRenamer-v100.0一款简单易用的批量文件重命名工具(已注册PRO版本).rar
- 小狐狸Ai系统 小狐狸ai付费创作系统V2.8.0 ChatGPT智能机器人
- 公孙离-内衣-肚兜.zipgsl
- 快慢指针判断链表是否有环-go 语言实现
- 学生成绩管理系统的设计与实现-收藏备用.pdf
- JSP+SQL网站流量统计管理系统(源代码+论文).rar
- IBM-PC-XT微机过程...道中模拟量数据的采集和处理.pdf
- JSP+SQL网上选课系统(源代码+论文+答辩PPT).rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功