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

📄 textscreen.java

📁 J2ME的游戏原代码!希望能帮助有需要帮助的师兄弟们!
💻 JAVA
字号:
package com.centerscore.game;

import javax.microedition.lcdui.*;

class TextScreen extends Canvas implements Runnable {

    final static int TEXT_HELP = 0;
    final static int TEXT_CREDITS = 1;
    final static int MAX_TEXT_LINES = 14;
    boolean stopped;

    private int yOffset, yDelta;
    private boolean partialDraw, manualScroll;
    /* Start	Addition	21-03-2003		for external events	*/
    private boolean inActive;
    /* End	Addition		21-03-2003	*/
    private int messageId;
    private Image img;
    private GameMidlet m_pMidlet;

    /* Start	Commented	23-04-2003		for chinese support	*/
/*
    private String[][] text = {
        {
            "1 up-left",
            "3 up-right",
            "7 down-left",
            "9 down-right",
            "jump on squares to",
            "change them to",
            "target color.",
            "jumping off the",
            "playfield results",
            "in a fatal plummet",
            "unless disc is",
            "there.",
            "avoid all objects",
            "that are not green."
        },
        {
            "copyright 2002",
            "columbia pictures",
            "   industries inc.",
            "all rights reserved",
            " ",
            "published by",
            "sony pictures",
            "   digital",
            " ",
            "developed by",
            "centerscore inc.",
            " ",
            "original game",
            "d. gottlieb and co."
        }
    };
*/
	/* End		Modified	23-04-2003	*/


    private int TEXT_W = 118;
	/*	Start	Modified		25-04-2003		for chinese support	*/
    private int TEXT_H = 93;
    //private int TEXT_H = 99;
    /* End		Modified		25-04-2003	*/
    private int Y_OFFSET_MAX = - MAX_TEXT_LINES * 9 + TEXT_H;

    TextScreen(GameMidlet midlet) {
        setCommandListener(midlet);
        addCommand(midlet.m_cmdBack);
        m_pMidlet = midlet;
    }


    void init(int messageId) {
        this.messageId = messageId;
        stopped = false;
        yOffset = 0;
        yDelta = -1;

        partialDraw = false;
        manualScroll = false;

        img = Sprite.imgOffscreen;
        Graphics g = Sprite.gOffscreen;
        g.setColor(Sprite.BG_COLOR);
        /* Start	Modified	23-04-2003		for chinese support	*/
        g.fillRect(0, 0, TEXT_W, MAX_TEXT_LINES * 15);
        int y = 0;
        g.setColor(250,250,4);
		g.setFont(Globals.font);
        if(messageId == 0){
        	for (int i = 0; i < 8; i++) {
       	    	g.drawString(Globals.chineseString[Globals.HELP_TXT_OFFSET+i],
       	    		0, y, g.TOP | g.LEFT);
        	    y += 15;
			}
		}else {
			char ch;
        	for (int i = 0; i < 9; i++) {
				ch = Globals.chineseString[Globals.CREDITS_TXT_OFFSET+i].charAt(0);
       	    	g.drawString(Globals.chineseString[Globals.CREDITS_TXT_OFFSET+i],
	       	    		0, y, g.TOP | g.LEFT);
				if((ch >= 63 && ch <= 94) || (ch == 32)){
					y += 13;
				}else {
	        	    y += 15;
				}
        	}
		}
        /* End		Modified	23-04-2003	*/

        new Thread(this).start();
    }


    protected void paint(Graphics g) {
        if (!partialDraw) {
            g.setColor(Sprite.BG_COLOR);
            g.fillRect(0, 0, Globals.SCREEN_W, Globals.SCREEN_H);
			/* Start	Modified	25-04-2003		for chinese support	*/
			g.setColor(255,255,4);
			g.setFont(Globals.font);
            if (messageId == TEXT_CREDITS) {
				//VALLI MR2 x 40 - 33
				g.drawString(Globals.chineseString[Globals.MENU_TXT_OFFSET+2],
						33,13,g.TOP|g.LEFT);
                //Sprite.drawWord(g, 40, 13, "credits");
            } else {
				g.drawString(Globals.chineseString[Globals.MENU_TXT_OFFSET+3],
						40,13,g.TOP|g.LEFT);
                //Sprite.drawWord(g, 40, 13, " help ");
            }
            Sprite.drawClipped(g, Sprite.IMG_ALL, 0, 0, Sprite.g_arr2ClipInfoStuff, 4, 1); // header+TM
            Sprite.drawClipped(g, Sprite.IMG_ALL, 17, 16, Sprite.g_arr2ClipInfoStuff, 0, 1); // large qbert left
            Sprite.drawClipped(g, Sprite.IMG_ALL, 95, 16, Sprite.g_arr2ClipInfoStuff, 5, 1); // large qbert right
            g.setColor(0xf69435);
            g.drawRect(3, 26, 121, 97);
            g.setColor(Sprite.BG_COLOR);
            g.drawLine(15, 26, 15 + 14, 26);
            g.drawLine(92, 26, 92 + 14, 26);
            partialDraw = true;
        }
        g.setClip(5, 29, TEXT_W, TEXT_H);
        g.drawImage(img, 5, 29 + yOffset, Globals.GFX_TOPLEFT);
		/* End	Modified	25-04-2003		*/
        g.setClip(0, 0, Globals.SCREEN_W, Globals.SCREEN_H);
    }


    protected void keyPressed(int key) {
        switch (getGameAction(key)) {
            case Canvas.FIRE:
                m_pMidlet.commandAction(m_pMidlet.m_cmdBack, this);
            break;
            case Canvas.UP:
                yDelta = 1;
                manualScroll = true;
            break;
            case Canvas.DOWN:
                manualScroll = true;
                yDelta = -1;
            break;
        }
    }

    protected void keyReleased(int key) {
        switch (getGameAction(key)) {
            case Canvas.UP:
                yDelta = 0;
                repaint();
            break;
            case Canvas.DOWN:
                yDelta = 0;
                repaint();
            break;
        }
    }

    public void run() {
        while (!stopped) {
			/* Start	Addition		21-03-2003	for external events	*/
			if(!inActive){
			/* End		Addition		21-03-2003	*/
        	    yOffset += yDelta;
        	    if (yOffset > 0) {
        	        yOffset = 0;
        	        if (manualScroll) {
        	            yDelta = 0;
        	        } else {
        	            yDelta = -1;
        	        }
        	    }
        	    if (yOffset < Y_OFFSET_MAX) {
        	        yOffset = Y_OFFSET_MAX;
        	        if (manualScroll) {
        	            yDelta = 0;
        	        } else {
        	            yDelta = 1;
        	        }
        	    }
        	    repaint();
			}
            try {
                Thread.sleep(100);
            } catch (Exception ex) {}
        }
    }

    protected void showNotify() {
        partialDraw = false;
	    /* Start	Addition		21-03-2003		for external events	*/
		inActive = false;
	    /* End		Addition	21-03-2003	*/

    }

    /* Start	Addition		21-03-2003		for external events	*/
    protected void hideNotify(){
		inActive = true;
	}
    /* End		Addition	21-03-2003	*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -