📄 gameview.java
字号:
/*
* GameView.java
*
* Created on 2006年5月5日, 上午11:22
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package DogPet;
import java.util.*;
import javax.microedition.lcdui.*;
// SaveGame, GameData, Game_control, AngerEvent,
// SickEvent, FoolEvent, HungerEvent, HappyEvent,
// WaitEvent, ShakeEvent, EatEvent, EatFruitEvent,
// PlayEvent, HospitalEvent, WalkEvent, TVEvent,
// DrinkEvent, WashEvent, SleepEvent, BroomEvent,
// MyRandom
public class GameView extends FullCanvas
{
private Timer timer;
private int flashDuration;
private AngerEvent anger;
private PlayEvent play;
private TVEvent tv;
private FoolEvent fool;
private EatEvent eats;
private HospitalEvent hospital;
private ShakeEvent shake;
private WalkEvent walk;
private HappyEvent happy;
Game_control game_control;
private Image image_bg;
private int sel;
private SickEvent sick;
private DrinkEvent drink;
private EatFruitEvent eatfruit;
private WaitEvent waiting;
private WashEvent watsh;
private HungerEvent hungers;
private SleepEvent sleep;
private int box1;
private SaveGame save;
private BroomEvent broom;
private Date ds;
private int box;
public static int events = -1;
private Calendar rightNow;
private Image event[];
class Task7 extends TimerTask
{
public final void run()
{
GameData.Capacity--; //Capacity的初始值为50-----其代表智能,容量
GameData.Health--; //初始值为50------代表健康状况
GameData.Intelligence--; //初始值为50--代表智能,智力
GameData.Mood--; //初始值为50----代表心情
GameData.Weight--; //初始值为50----代表体重
int d = MyRandom.randomize(100);//?????????对随机数的处理????????
if(d == 50)
{
if(GameData.Capacity > 60)
GameData.Capacity = 60;
if(GameData.Health > 40)
GameData.Health = 40;
if(GameData.Mood > 60)
GameData.Mood = 60;
GameData.Intelligence -= 10;
if(GameData.Intelligence <= 0)
GameData.Intelligence = 0;
if(GameData.Weight <= 10)
GameData.Weight = 10;
}
repaint();
}
Task7()
{
}
}
public GameView(Game_control gc)
{
timer = new Timer(); //创建一个定时器
flashDuration = 0x186a0; //为动画持续时间-----整型
anger = null;
play = null;
tv = null;
fool = null;
eats = null;
hospital = null;
shake = null;
walk = null;
happy = null;
image_bg = null;
sel = 0;
sick = null;
drink = null;
eatfruit = null;
waiting = null;
watsh = null;
hungers = null;
sleep = null;
box1 = 0;
broom = null;
box = 0;
rightNow = Calendar.getInstance();//Calendar 是一个抽象的基类,用于在一个 Date 对象和一个诸如 YEAR、MONTH、 DAY、HOUR 等整数字段集合之间转换
//*************该方法获得使用缺省时区和语言环境的日历************
event = new Image[11];//**********创建各种事件触发的图像来作触发源***********
game_control = gc;//引用当前传入的用于控制游戏的类的对象
events = -1;
save = new SaveGame(this);//******保存相关数据******
timer.scheduleAtFixedRate(new Task7(), 0L, flashDuration);//第一个参数,为列表中的任务,第二个参数为任务开始执行之前的延迟;第三个参数为接下来将要执行的任务中间的延迟.都以毫秒为单位
try
{
if(image_bg == null)
image_bg = Image.createImage("/insite.png");//加载房子内的图片------壁炉等等
}
catch(Exception ex) {
System.out.println("加载房子内背景图片失败!");
}
try
{
if(event[0] == null)
{
event[0] = Image.createImage("/botton_eat.png");
event[1] = Image.createImage("/botton_eatfruit.png");
event[2] = Image.createImage("/botton_playing.png");
event[3] = Image.createImage("/botton_seedoctor.png");
event[4] = Image.createImage("/botton_walking.png");
event[5] = Image.createImage("/botton_watchingtv.png");
event[6] = Image.createImage("/botton_drinkwater.png");
event[7] = Image.createImage("/botton_washing.png");
event[8] = Image.createImage("/botton_sleep.png");
event[9] = Image.createImage("/botton_broom.png");
event[10] = Image.createImage("/i_leave.png");
}
}
catch(Exception ex) { }
repaint();
}
public void paint(Graphics g)
{
GameData.Years = (int)Diffdate(Calendar.getInstance(), GameData.Birthday, 3) + 1;//????年龄的增长?????????????????
if(GameData.Years >= 30)
game_control.overgame();//彻底结束游戏
int start = 0;
switch(events) //events初始值为-1
{
default:
break;
case -1:
if(GameData.Mood < 25)//判断心情
{
if(anger == null)
anger = new AngerEvent(this);//生成饥饿事件
anger.paint(g);//绘制与饿相关的图像
break;
}
if(GameData.Health < 40)
{
if(sick == null)
sick = new SickEvent(this);
sick.paint(g);
break;
}
if(GameData.Intelligence < 40)
{
if(fool == null)
fool = new FoolEvent(this);
fool.paint(g);
break;
}
if(GameData.Capacity < 50)
{
if(hungers == null)
hungers = new HungerEvent(this);
hungers.paint(g);
break;
}
if(GameData.Mood > 80)
{
if(happy == null)
happy = new HappyEvent(this);
happy.paint(g);
break;
}
if(waiting == null)
waiting = new WaitEvent(this);
waiting.paint(g);
break;
case 0:
if(GameData.Capacity >= 80)
{
if(shake == null)
shake = new ShakeEvent(this);
shake.runable(1);//?????传入1值?????
shake.paint(g);
} else
{
eats.paint(g);
}
break;
case 1: // '\001'
if(GameData.Capacity >= 80)
{
if(shake == null)
shake = new ShakeEvent(this);
shake.runable(1);
shake.paint(g);
} else
{
eatfruit.paint(g);
}
break;
case 2: // '\002'
play.paint(g);
break;
case 3: // '\003'
hospital.paint(g);
break;
case 4: // '\004'
walk.paint(g);
break;
case 5: // '\005'
tv.paint(g);
break;
case 6: // '\006'
if(GameData.Capacity >= 80)
{
if(shake == null)
shake = new ShakeEvent(this);
shake.runable(1);//将1值传入
shake.paint(g);
} else
{
drink.paint(g);
}
break;
case 7: // '\007'
watsh.paint(g);
break;
case 8: // '\b'
sleep.paint(g);
break;
case 9: // '\t'
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -