⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gameview.java

📁 关于j2me的宠物游戏!!!!!!!!!!! 希望打架提出意见
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * 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 + -