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

首頁 > 學院 > 開發設計 > 正文

MIDP1.0小游戲入門-五子棋1.0

2019-11-18 14:54:17
字體:
來源:轉載
供稿:網友

作者:yinowl
2005年1月

介紹
這是我學習j2me入門后的第一個作品,當然這也是一個極其簡單的作品(沒有電腦AI,只能是兩個人對戰),現在我把當時的設計思路寫成這篇文檔,希望對想入門j2me的朋友在j2me的流程,按鍵響應繪圖等方面有所幫助,同時也希望大家指出錯誤和改進程序。

注重
代碼列出解釋的形式仿照《J2ME Game PRogramming》一書,按照程序功能思路給出相關代碼,一個文件的代碼會根據功能在不同的小節給出,文章結束了,代碼也就完整了。這不同于通常書中的代碼以文件為單位一次全部給出,我認為這樣更有助于讓大家了解一個程序從設計到最后完成的思路。

設計
數據結構:
由于五子棋是一個二維棋類游戲,所有首先想到的是定義一個Chesses類來表示棋子,Chesses有一個boolean型的變量isPlayer1來區分該棋子是哪玩家下的,然后用一個Chess類型的二維數組來包含棋盤上的所有棋子。考慮到移動設備的資源有限,盡可能減少系統資源占用,我考慮不在數組建立后直接生成數組的每一個對象,而是把每一個棋子對象(Chesses)放在游戲的進行中生成,也就是說在游戲進行時,玩家每下一步棋,在數組相應位置生成該棋子的對象,這樣可以避免還沒有下的棋子在一開始就占用了系統內存
流程:游戲按照棋子的二維數組進行繪制棋子,玩家下棋后,程序修改數組相應位置,設置isPlayer1值,然后重新繪制(repaint),就更新了棋盤界面。由于游戲的功能簡單,也為了使游戲的操作盡可能的簡便,我不在游戲進入時設計菜單,而是直接開始對戰,在對戰界面,設置了重新開始和退出的按鈕。即運行即玩,一鍵開始,一鍵重來,一鍵退出。
玩家切換:棋類游戲有一個問題需要注重,就是提示當前由哪方下棋,為了節省界面空間,簡化游戲界面,我在棋盤外圍加了一個3個像素寬的框,框的顏色就是當前下棋方的顏色,如圖:
MIDP1.0小游戲入門-五子棋1.0(圖一)MIDP1.0小游戲入門-五子棋1.0(圖二)

 

 

 

 

 

 

應用程序類:Gobang.java
接下來就開始完成游戲中的每一個類,首先就是一個MIDlet類。Gobang類繼續自MIDlet類,用于連接設備的應用程序治理器(application Manager),通過方法startApp,pauseApp,destroyApp來通知游戲的開始,暫停和銷毀結束。源代碼如下:

package com.occo.j2me.game.gobang;
import javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;
public class Gobang extends MIDlet {
    GobangCanvas gobang;//定義游戲界面的Canvas類GobangCanvas的對象gobang
    public Gobang() {        super();        gobang=new GobangCanvas(this);//生成GobangCanvas類的對象gobang    }
    protected void startApp(){        Display.getDisplay(this).setCurrent(gobang);          //在屏幕上繪出游戲見面gobang    }
    protected void pauseApp(){

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 柘城县| 潼关县| 丰宁| 太仆寺旗| 安宁市| 武汉市| 东莞市| 南平市| 彩票| 万宁市| 额济纳旗| 兴山县| 静乐县| 林甸县| 东安县| 越西县| 聂拉木县| 岑巩县| 乐业县| 社会| 洪泽县| 汝州市| 永吉县| 岐山县| 西丰县| 中山市| 嘉黎县| 莱州市| 新邵县| 家居| 广宗县| 绥江县| 玉树县| 道真| 沙湾县| 宜君县| 岚皋县| 博爱县| 忻城县| 隆安县| 马边|