freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

j2me設(shè)計(jì)論文--坦克大戰(zhàn)游戲-在線瀏覽

2025-01-09 09:20本頁(yè)面
  

【正文】 本科課程設(shè)計(jì)論文 3 ( 2) 游戲運(yùn)行 界面(如圖 3 所示) 進(jìn)入主程序界面后 就可以控制按鍵進(jìn)行游戲了 ,它是由 MainCanvas 等 類(lèi)實(shí)現(xiàn) 的 ,它包含了用戶 可 操作的基本功能 ,如 控制坦克的行走 , 發(fā)射炮彈等。 圖 3 游戲結(jié)束界面 本科課程設(shè)計(jì)論文 4 代碼實(shí)現(xiàn) 針對(duì) 游戲程序設(shè)計(jì)過(guò)程中考慮到 己方坦克的 鍵盤(pán) 控制、 敵 方坦克達(dá)到智能運(yùn)行,子彈也需要處在獨(dú)立的線程中等情況,在各個(gè)類(lèi)里作了詳細(xì)的區(qū)分與注釋?zhuān)旅媸遣糠种饕绦驅(qū)崿F(xiàn)過(guò)程: ①敵方坦克的智能運(yùn)行實(shí)現(xiàn): public class EnemyTank extends TankSprite { private Random m_Random。 m_Random = new Random()。 if( !isVisible() ) return。 break。 break。 break。 開(kāi)始 是否剛出現(xiàn) 前進(jìn) Y 可否開(kāi)炮 開(kāi)炮 可否前進(jìn) 換向、取隨機(jī)移動(dòng)步數(shù)、隨機(jī)開(kāi)炮倒數(shù)記步數(shù) 結(jié)束 是否已死亡 是否碰撞 N Y N Y N Y N N 圖 敵方坦克運(yùn)行流程圖 本科課程設(shè)計(jì)論文 5 break。 if( (nRs) == 0 ) CreateBullet()。 RandomDir()。 int nHalfCellWidth = 15 / 2。 int nY = getRefPixelY()。 if( nY % 15 != nHalfCellHeight ) return。 if( (nRs) != 0 ) return。 SetDir( nDir )。 //爆炸聲音對(duì)象 ExplosionSprite(Image image, int frameWidth, int frameHeight) { super(image, frameWidth, frameHeight)。 setVisible( false )。 m_Player = (is,audio/xwav)。 setVisible(true)。 try { ()。 int nFrame = getFrame()。 if( nFrame = getFrameSequenceLength() ){ setVisible( false )。 } setFrame( nFrame )。 } //處理按鍵的操作,參數(shù) keyStates 為按鍵狀態(tài) public void Input( int keyStates ) { if ((keyStates amp。 setTransform(TRANS_NONE)。 } if ((keyStates amp。 setTransform(TRANS_ROT90)。 } if ((keyStates amp。 setTransform(TRANS_ROT180)。 } if ((keyStates amp。 setTransform(TRANS_MIRROR_ROT270)。 } if ((keyStates amp。 } } 本科課程設(shè)計(jì)論文 8 } 以上是幾個(gè)重要程序代碼部分實(shí)現(xiàn),其他的源程序代碼見(jiàn)目錄所示。因?yàn)槠涓鱾€(gè)模塊間的聯(lián)系十分緊密,代碼重復(fù)執(zhí)行率高,當(dāng)經(jīng)過(guò)無(wú)數(shù)次的調(diào)試、修改后,能最終看到成品, 有著無(wú)比激動(dòng)的心情。 而且以前的很多課程設(shè)計(jì)沒(méi)有太多自己發(fā)揮的余地, 思想大致相似,變化范圍有限,相比一些數(shù)據(jù)庫(kù)軟件,游戲的設(shè)計(jì)有很多人情色彩和藝術(shù)思想的發(fā)揮, 這樣的課程設(shè)計(jì)就 可以 有 很多的 自己發(fā)揮的余地。 參考 文獻(xiàn) [1] 循序漸進(jìn) Java2 教程(第三版) Rogers Cadenhead 著,淡文剛 于紅梅 人民郵電出版社, 2020 [2] J2ME in a Nutshell, Kim Topley, O39。 import 。 本科課程設(shè)計(jì)論文 9 import 。 import 。 import 。 public class MainCanvas extends GameCanvas implements Runnable, CommandListener{ public static final int GAME_UI = 0。 //進(jìn)行游戲 public static final int GAME_BUTTON = 2。 //游戲結(jié)束 public static final int GAME_STATE_NUM = 4。 //存儲(chǔ)當(dāng)前的游戲狀態(tài) private boolean m_bRunning。 //界面對(duì)象 private Sprite m_TextSp。 //玩家坦克對(duì)象 private int m_nTotalETank。 //目前消滅的敵方坦克數(shù) private EnemyTank m_eTank[]。 //場(chǎng)景對(duì)象 private ExplosionSprite m_aExplosion[]。 //隨機(jī)數(shù)對(duì)象 private LayerManager m_LayerManager。 //高級(jí)按鈕對(duì)象 public MainCanvas( ){ super(true)。 m_UI = new MyUI(button)。 Start()。 if( m_Tank == null ) { m_eTank = new EnemyTank[2]。 try{ //創(chuàng)建坦克對(duì)象 Image image = (/demo/)。 image = (/demo/)。 n 。 } //創(chuàng) 建爆炸對(duì)象 image = (/demo/)。 m 。 } } catch(Exception e){} } //創(chuàng)建場(chǎng)景對(duì)象 if( m_Scene == null ) m_Scene = new Scene()。 for( int m = 0。 m ++ ) { (m_aExplosion[m])。 ( m_Tank )。 for( int n = 0。 n ++ ) {(m_eTank[n])。 } ()。 ()。 } //敵方坦克總共 20 輛 m_nTotalETank = 20。 //讀取場(chǎng)景地圖 ()。 //設(shè)置游戲畫(huà)面的顯示區(qū)域 SetViewWindow()。 addCommand(MenuCommand)。 } if( m_TextSp == null ){ //創(chuàng)建圖形文字對(duì)象 try{ Image img = (/demo/)。 本科課程設(shè)計(jì)論文 11 (41, 23)。 int y = getHeight()/2 10。 } catch(Exception exception){} } } //設(shè)置游戲畫(huà)面的顯示區(qū)域 private void SetViewWindow(){ if( m_LayerManager == null ) return。 int nY = () getHeight()/2。 else if( nX 15 * 13 getWidth() ) nX = 15 * 13 getWidth()。 else if( nY 15 * 12 getHeight() ) nY = 15 * 12 getHeight()。} private void setState( int state ){ //設(shè)置游戲狀態(tài) if( state 0 || state = GAME_STATE_NUM ) return。 switch( m_nState ){ case GAME_UI: //進(jìn)入用戶界面 ()。 break。 //游戲中途,顯示復(fù)位與退出按鈕 ().setShow(false, true, false, false, false, true )。 case GAME_GAMING: //正在游戲 ()。 case GAME_END: //游戲結(jié)束 ()。 } } public void Start(){ m_bRunning = true。 //分配新線程 ()。 long T2 = T1。 if( T2 T1 50 ){ //間隔 50 毫秒 T1 = T2。 Logic()。 } } } public void Stop(){ m_bRunning = false。 switch( m_nState ){ case GAME_UI: { switch( ( keyStates ) ){ case : //按下開(kāi)始鍵 Reset()。 break。 break。 case GAME_GAMING: //游戲中 ( keyStates )。 break。 setState(GAME_GAMING)。 case : //按下退出鍵 ()。 } } break。 ) != 0 ){ Reset()。 } break。 m 。 } //坦克邏輯 ()。 n 。 } //碰撞檢測(cè) CheckCollision()。 break。 //用黑色清屏 (0)。 (0xFFFF0000)。 break。 if( m_nState == GAME_END ) (g)。 break。 } //碰撞檢測(cè) private void CheckCollision() { BulletSprite mB = 。 for( int n = 0。 n ++ ){ mEB = m_eTank[n].m_Bullet。 //游戲失敗 本科課程設(shè)計(jì)論文 14 (1)。 break。 ( false )。 m_nDestroyETank ++。 setState(GAME_END)。 } } //我方坦克和敵人碰撞 if( ( m_eTank[n], false ) ){ //都向后退 ()。 } //敵人和地圖碰撞,敵人向后退 if( m_eTank[n].collidesWith( , false ) ){ m_eTank[n].MoveBack()。 } else if( m_eTank[n].collidesWith( , false ) ){ m_eTank[n].MoveBack()。 int nECol = ()。 continue。 CreateExplosion((), ())。 //游戲失敗 (1)。 return。 CreateExplosion((), ())。 } else if( ( , false ) ) {//子彈打到不可摧毀的區(qū)域 CreateExplosion((), ())。 } } //我方坦克和地圖碰撞,則向后退
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1