国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

實現(xiàn)游戲中的簡單打字功能

2019-11-18 14:50:36
字體:
供稿:網(wǎng)友

    本文講述如何在游戲開發(fā)中實現(xiàn)類似于打字的功能,其實原理和前面講述的文字滾屏差別不大,主要還是利用Timer和Canvas提供的函數(shù)。

    我們的目的是把幾個字按照順序和一定的時間間隔打印在屏幕上,這就要求我們計算好文字的寬度和具體打印的位置。例如這樣一個數(shù)組
    PRivate final String[] content = { "hello ", "world ", "who ", "are ","you ", "?" };
我使用的辦法是計算它們的相對距離,這樣我用一個int類型的數(shù)組來存儲這些數(shù)值。
    private int[] slen = new int[content.length];
slen[0]存儲字開始打印的位置,這里我設(shè)置為10,slen[1]則存儲開始位置與hello這個字的長度之和作為下個單詞world的開始位置,依次類推。
    private void initSlen()
    {

        int temp = 10;

        for (int i = 0; i < content.length; i++)
        {
            slen[i] = temp;
            temp = temp + font.stringWidth(content[i]);

        }
    }
注重這里并沒有考慮屏幕寬度的因素,假如你要顯示多行的話應(yīng)該考慮到屏幕的寬度,調(diào)整你的算法。

    在paint()方法里面我們就按照得到的坐標(biāo)位置進(jìn)行繪畫
    protected void paint(Graphics arg0)
    {
        if (first)
        {
            arg0.setColor(128, 0, 128);
            arg0.fillRect(0, 0, getWidth(), height);
            first = false;

        }
        arg0.setColor(255, 255, 255);

        arg0.setFont(font);
        arg0.drawString(content[i], slen[i], height / 2, Graphics.LEFT
                Graphics.TOP);
    }
程序并不復(fù)雜,下面給出圖例和源代碼。
實現(xiàn)游戲中的簡單打字功能

 

 

 

 

 

 

 

 


import javax.microedition.lcdui.Display;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;

public class TypeMIDlet extends MIDlet
{

    private Display display;
    private TypeCanvas typeCanvas;



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 安徽省| 灵石县| 黔江区| 蒲江县| 蓬安县| 武清区| 二手房| 淮北市| 嘉荫县| 衡东县| 开平市| 独山县| 商丘市| 珲春市| 淄博市| 沁源县| 方山县| 岳池县| 齐齐哈尔市| 乐陵市| 太原市| 馆陶县| 敦煌市| 祁门县| 萨嘎县| 呼伦贝尔市| 彝良县| 城固县| 四平市| 祁门县| 庆安县| 东乡县| 奉节县| 华阴市| 弥渡县| 华宁县| 盱眙县| 克山县| 平昌县| 平潭县| 香港 |