怎么用java做游戲?
主要是用Java分支中的J2ME來(lái)寫,但是J2ME中需要Java的基礎(chǔ)知識(shí)。
現(xiàn)在有大部分人,都是從零開始學(xué)J2ME的,學(xué)習(xí)J2ME的時(shí)候,總是從Java基礎(chǔ)開始學(xué)習(xí),而且現(xiàn)在講Java基礎(chǔ)的書籍中都是以J2SE來(lái)講基礎(chǔ),這就給學(xué)習(xí)造成了一些不必要的麻煩,下面將J2ME中用到的和不需要的Java基礎(chǔ)知識(shí)做一個(gè)簡(jiǎn)單的說(shuō)明。
J2ME中使用到的Java基礎(chǔ)知識(shí):
1、Java語(yǔ)法基礎(chǔ):包括基本數(shù)據(jù)類型、關(guān)鍵字、運(yùn)算符等等
2、面向?qū)ο蟮乃枷耄侯惡蛯?duì)象的概念,繼承和多態(tài)等等。
3、異常處理
4、多線程
J2ME中沒(méi)有用到的Java基礎(chǔ)知識(shí):
1、JDK中javac和java命令的使用
2、Java基礎(chǔ)中的很多類在J2ME中沒(méi)有,或者類中的方法做了大量的精簡(jiǎn)。所以建議在J2ME中熟悉類庫(kù)。
3、Applet、AWT、Swing這些知識(shí)在J2ME中根本使用不到。
簡(jiǎn)單說(shuō)這么多,希望學(xué)J2ME的朋友們能少走一些彎路,不足之處希望大家積極指正和補(bǔ)充
1
相關(guān)問(wèn)題全部
.,,,,..
我來(lái)了。
1.設(shè)計(jì)游戲,首先就要設(shè)計(jì)界面。首先看一下我設(shè)計(jì)的一個(gè)界面。界面分為左邊的游戲區(qū)與右邊的控制區(qū)。游戲區(qū)包含“得分信息”和貪吃蛇的游戲區(qū),右邊控制區(qū)有“開始”“暫?!薄巴V埂卑粹o,等級(jí)選擇單選框以及游戲排行榜。
2.所以我們需要定義swing組件,并在類初始化時(shí)初始化這些組件,添加組件。因?yàn)楹竺嬖O(shè)計(jì)游戲的時(shí)候,我們要確切知道游戲區(qū)的大小,所以這里設(shè)置游戲區(qū)固定大小值。本來(lái)想用布局來(lái)更好的管理,但作者對(duì)布局也掌握不夠,所以就先設(shè)置固定大小吧。
3.定義我們的游戲。貪吃蛇游戲其實(shí)就是包含很多細(xì)小網(wǎng)格,然后蛇在網(wǎng)格中移動(dòng)。蛇由一連串的網(wǎng)格組成,為了視覺(jué)效果,蛇身用藍(lán)色標(biāo)記,食物用紅色標(biāo)記,背景白色。如第一張圖片所示。所以,我們需要定義二維數(shù)組,保存網(wǎng)格信息,保存蛇身和食物的位置信息等。初始化時(shí),還需要添加鍵盤事件控制上下左右移動(dòng)。
4.豆豆的位置信息是二維的,所以我簡(jiǎn)單定義了一個(gè)類用來(lái)保存二維信息。
5.接著就是實(shí)現(xiàn)游戲的功能了。開始,暫停,停止按鈕添加事件控制游戲開始。等級(jí)按鈕定義游戲難度等。
6.開始游戲后,我們定義一個(gè)定時(shí)器。蛇身按照指定的方向移動(dòng),方向是通過(guò)初始化時(shí)添加的鍵盤事件,鍵盤的上下左右按鈕來(lái)控制。蛇身是連續(xù)的位置信息,保存到隊(duì)列中,所以蛇身的移動(dòng)就是隊(duì)首增加一個(gè)位置,隊(duì)尾減少位置,然后重新繪畫游戲區(qū)就可以了。
在蛇身移動(dòng)時(shí)進(jìn)一步做吃掉食物、撞墻、撞到自己的處理。這是游戲的主要邏輯。
7.最后,游戲結(jié)束我們彈出一個(gè)對(duì)話框提示是否保存游戲得分。我們制作了排行榜信息,只保留名的游戲得分。首先定義了一個(gè)實(shí)現(xiàn)接口的游戲得分類,按得分高,時(shí)間最早來(lái)排序。
8.游戲結(jié)束時(shí)保存得分信息,看是否進(jìn)入到排行榜中。而之前在初始化排行榜組件時(shí)就會(huì)加載游戲排行榜信息。
通過(guò)保存和讀取排行榜信息,我們也熟悉一下文件讀取操作,還有集合、排序算法的功能。
9.我是傳播愛(ài)與正義的小蕪?fù)瑢W(xué),我的回答結(jié)束。
啊,不止一次的被問(wèn)過(guò)這個(gè)問(wèn)題。
作為世界上最強(qiáng)大的開源語(yǔ)言之一,Java能做任何事,寫個(gè)框架?寫個(gè)程序?或者說(shuō)——做個(gè)游戲?
但首先你得會(huì)使用引擎——unity、虛幻,哪怕是寒霜都成,但你得會(huì)一個(gè)。
然后是最難的部分之一——模型,和貼圖。一般來(lái)說(shuō),3DSMAX較多的用作游戲開發(fā),但如果是虛幻,MAYA更方便一些。建好模型,再繪制貼圖,把它扔到引擎里,第一步就算完成了。
然后,繪制場(chǎng)景——這需要你擁有高超的關(guān)卡設(shè)計(jì)能力,這步通常需要很長(zhǎng)時(shí)間的學(xué)習(xí)。
然后你就可以進(jìn)行程序開發(fā)了,使用Java,制作主程序,再在主程序的基礎(chǔ)上,制作條件、精靈,和任務(wù)等等。
最后,再用你那高超的UI設(shè)計(jì)能力,做一個(gè)UI,除錯(cuò)后打包,你的游戲就算是完成了!
題主加油,等著你的游戲。
Java可以做3D游戲,可以做非常酷炫的3D游戲,性能并不比那些C++的引擎差!而開發(fā)效率又要高處好幾個(gè)數(shù)量級(jí)!
為什么呢?因?yàn)橛螒虻讓拥膱D形渲染實(shí)質(zhì)上都是OpenGL或者Direct3D,現(xiàn)代游戲引擎不大可能讓你手動(dòng)去做圖形運(yùn)算,復(fù)雜的東西都是交給底層的dll/so靜態(tài)庫(kù)文件以及GPU執(zhí)行的,上層代碼主要做好場(chǎng)景管理和邏輯控制。這也是為什么Unity3D這個(gè)引擎居然可以使用C#和作為它的游戲腳本,而從來(lái)沒(méi)有人說(shuō)Unity3D引擎的游戲性能差。
另外,游戲的畫面,不管3D還是2D游戲,影響畫面效果的主要因素是游戲素材,而不是編程語(yǔ)言。3D游戲又有獨(dú)特的著色器語(yǔ)言專門負(fù)責(zé)圖形特效。什么HDR、PBR、SSAO、動(dòng)態(tài)模糊、次世代法線貼圖,通通都是靠Shader搞定的,跟你用什么語(yǔ)言來(lái)寫游戲邏輯沒(méi)有半毛錢關(guān)系。
反觀Java本身的性能,現(xiàn)代編程語(yǔ)言除了C/C++,真沒(méi)有哪個(gè)敢在Java面前夸自己性能的。而且Java有眾多的開源類庫(kù),憑什么我們不能用Java來(lái)做游戲呢?
誠(chéng)然,Unity3D、CryEngine、Unreal這樣的商業(yè)引擎不僅僅是個(gè)游戲引擎,它們還有很多成熟的配套工具和資源工廠,這是Java游戲引擎所不具備的。
JAVA小游戲設(shè)計(jì),求思路
建一個(gè)數(shù)組int[][] arr = new int[4][5] 放20張卡片 設(shè)置每個(gè)數(shù)組的值 比
如0 為沒(méi)有 1 為looser piece
然后判斷如果選擇0就改該位置為2,表示已被選擇,如果選擇1就輸了 使用隨機(jī)分布
設(shè)置一個(gè)參數(shù)比如isPlay=1;玩家1選擇,isPlay=2,玩家2選擇,因?yàn)榭梢赃x擇一次或者兩次 需要判斷
設(shè)置一個(gè)按鈕判斷是否放棄
設(shè)置一個(gè)參數(shù) var = 0;
按鈕:點(diǎn)擊 意思為玩家選擇一次之后放棄第二次選擇讓給玩家2選擇
if(var = 1){
結(jié)束 輪到玩家2
}
如果var = 0 表示為選擇 1 表示選擇一次 2表示選擇兩次
板面上自動(dòng)判定的:
if(var = 0){
選擇
}
if(var = 1){
繼續(xù)選擇
或者按鈕結(jié)束
}
if(var = 2){
結(jié)束
輪到玩家2選擇
}
java游戲開發(fā),數(shù)據(jù)類設(shè)計(jì)有哪些思路和工具
java開發(fā)游戲和需要掌握的java內(nèi)容包括:
java基礎(chǔ):變量、數(shù)據(jù)類型和運(yùn)算符,循環(huán)結(jié)構(gòu),數(shù)組,類和對(duì)象,類的方法,字符串等
java面向?qū)ο蠡A(chǔ):抽象和封裝,繼承,多態(tài),接口,異常,集合,JDBC,XML,JSON和文件I/O
java圖形知識(shí):字體類Font,繪圖類Graphics和圖像類Image等
開源的游戲引擎:AndEngine,Angle
目前的android流行的框架還包括:cocos2d,unity3d等都是開發(fā)游戲相關(guān)的內(nèi)容
如果是java的話,還需盡可能的了解javaee 的相關(guān)內(nèi)容
同時(shí)需要了解數(shù)據(jù)庫(kù)的學(xué)習(xí),比如sqlite等嵌入式數(shù)據(jù)庫(kù)
java做一些小游戲需要學(xué)什么
Java做這些小游戲, 可以使用下面幾種Java自帶的圖形界面框架
Awt 適合內(nèi)存較小, 配置較低的嵌入式系統(tǒng)等,組件較少, 性能好,資源消耗低.
Swing 適合PC等, 組件較豐富, 內(nèi)存占用較大, 但是跨平臺(tái)性優(yōu)越
JavaFX 這個(gè)是比較強(qiáng)大的框架了,組件比Swing更豐富,比如添加了 日期選擇組件, WebView組件, 還支持3D和 動(dòng)畫. 并且多多媒體支持良好. 但是相關(guān)資料比Swing等少
既然學(xué)過(guò)Java Web 那么對(duì)網(wǎng)頁(yè)編程還是有了解吧,? HTML+CSS+JS 也可以開發(fā)出小游戲,瀏覽器可以顯示, ?放入JavaFX的WebView組件也可以顯示出來(lái)
推薦使用JavaFX 或者 Web ,因?yàn)檫@兩者都很好做到了分離. JavaFX也可以分離出FXML文件,CSS文件,Java文件. 當(dāng)然也可以采用最穩(wěn)妥的Swing來(lái)開發(fā),畢竟Swing的圖書教程很多.
推薦書籍
<Java 2D游戲編程入門> ?<Java游戲編程原理與實(shí)踐教程>
<JavaFX 游戲程式設(shè)計(jì) 第三版>
其實(shí)游戲算法都一樣, 在Swing上好了弄透徹了, 也可以輕松移植到JavaFX或者網(wǎng)頁(yè)上
怎么設(shè)計(jì)一個(gè)手機(jī)游戲?
如何設(shè)計(jì)一個(gè)好的手游主界面及其交互?
沒(méi)有什么思路的話,建議你去玩玩這5個(gè)游戲,里面的交互和設(shè)計(jì)風(fēng)格都值得思考。
TOP 1 —— 紀(jì)念碑谷
Ustwo games開發(fā)的一款解謎類手機(jī)游戲,于2014年正式發(fā)行。 游戲通過(guò)探索隱藏小路、發(fā)現(xiàn)視力錯(cuò)覺(jué)以及擊敗神秘的烏鴉人來(lái)幫助沉默公主艾達(dá)走出紀(jì)念碑迷陣。游戲一共有18關(guān),包括“被遺忘的海岸”和原作,還有一關(guān)艾滋病援助版本:艾達(dá)的夢(mèng)。本游戲獲得2014年度App Store精選榜單中國(guó)區(qū)iPad年度最佳游戲。同時(shí),也是GDC2015(全球游戲開發(fā)者大會(huì))移動(dòng)游戲方面,《紀(jì)念碑谷》成為了最大贏家,成功拿下“最佳創(chuàng)意”、“最佳移動(dòng)游戲”和“最佳視覺(jué)藝術(shù)”三項(xiàng)大獎(jiǎng)。這樣的游戲如果不玩真的是人生一大遺憾。
這款游戲最棒的地方不只是其游戲性,更加值得把玩的是空間的設(shè)計(jì),這種視覺(jué)錯(cuò)位空間讓你腦洞大開才能通關(guān),并且從配色到建筑物的設(shè)計(jì)上都表現(xiàn)出非常棒的藝術(shù)性。玩過(guò)的用戶都會(huì)有這樣的感覺(jué):隨便截屏一下,都能當(dāng)做手機(jī)壁紙。
TOP 2 —— 收割者:蒼白劍客
由英國(guó)的傳奇游戲工作室Hexage獨(dú)立開發(fā)的一款橫版ARPG游戲,風(fēng)格獨(dú)特,玩法新奇。之所以說(shuō)Hexage是個(gè)傳奇的工作室,那是因?yàn)樵摴ぷ魇业墓ぷ魅藛T少的離譜從以前的2人到現(xiàn)在的5人,開發(fā)的游戲風(fēng)格奇異,口碑奇佳,在國(guó)外知名度很高。該工作室在沉寂了兩年之久,終于又推出了這款游戲。
游戲從人設(shè)到場(chǎng)景到操作性都可以說(shuō)非常值得一玩,暢快淋漓并且風(fēng)格獨(dú)特,相比較現(xiàn)在大量的3D酷炫技能 *** 炸天的游戲來(lái)說(shuō),絕對(duì)是一個(gè)特異的存在,也讓人忍俊不住這種愛(ài)。游戲中的小怪物造型也是各有特色,從小道具到服裝配色都是頂級(jí)的棒。
TOP 3 —— 地獄邊境
又名LIMBO,由Playdead Studios開發(fā)的一款2D冒險(xiǎn)游戲,PC版于2011年8月3日發(fā)行,XBOX 360版于2010年7月21日發(fā)行。 玩家在游戲里扮演一名小男孩,在地獄的邊緣尋求希望。不要小看這個(gè)類似剪影的小游戲,絕對(duì)讓你愛(ài)不釋手,它所獲得獎(jiǎng)項(xiàng)足夠擺的滿滿的……超過(guò)100個(gè)游戲獎(jiǎng)項(xiàng),包括最佳下載游戲、GameSpot最佳解密游戲、Kotaku最佳另類游戲、年度最佳數(shù)字下載游戲、Spike TV最佳獨(dú)立開發(fā)游戲、X-Play最佳下載游戲、IGN最佳恐怖游戲等等。
游戲看似沒(méi)什么設(shè)計(jì),然而這樣覺(jué)得你就錯(cuò)了,舍掉了顏色,但是加入了光影、運(yùn)動(dòng)模糊、快慢延時(shí)等特效,讓玩家在玩的時(shí)候?qū)W⒛愕挠螒蚪巧?,你只?huì)有一個(gè)感覺(jué):為什么沒(méi)有顏色的游戲也能做的這么棒!!之所以排在第三位,只能怪我阿B比較偏心,設(shè)計(jì)師們?cè)谕娴臅r(shí)候不能學(xué)到配色相關(guān)。
TOP 4 —— 阿爾托的冒險(xiǎn)
獨(dú)立游戲開發(fā)團(tuán)隊(duì)Snowman。打造的滑雪游戲《阿爾托的冒險(xiǎn) Alto’s Adventure》令無(wú)數(shù)玩家沉浸在如癡如醉的美妙世界之中。如果要評(píng)價(jià)這款游戲,那么可以簡(jiǎn)單粗暴的一句話概括:玩法無(wú)亮點(diǎn),勝在畫面贊。是的,游戲性相對(duì)一般,但是畫面真的很贊,如果不喜歡常見(jiàn)鉆研或者費(fèi)腦子,那么可以輕松的玩玩這款滑雪小游戲,因?yàn)楫嬅嬲娴暮苜?,并且搭配悅耳的音?lè),不失為手機(jī)上必留小游戲之一。
TOP 5 —— 瘋狂來(lái)往
一款國(guó)內(nèi)公司開發(fā)的游戲,同樣也是為聚會(huì)打造的游戲。之所以能上榜并不是因?yàn)樗慕换ズ驮O(shè)計(jì)做的多么極致,重要的是它能啟動(dòng)設(shè)計(jì)師們的腦洞大開!游戲不僅僅是手柄上、手機(jī)上的產(chǎn)物,更重要的也是腦洞和行為表演上的“玩”,所以如果還沒(méi)有下載這個(gè)小游戲的話,強(qiáng)烈推薦,幾個(gè)人一起玩真的能感受到設(shè)計(jì)師們的無(wú)底線無(wú)節(jié)操深腦洞的……節(jié)奏。
......
怎么做一個(gè)手機(jī)游戲
做手機(jī)游戲還是很難的呢
首先你得熟悉Java編程語(yǔ)言
還有一些經(jīng)常用的安卓系統(tǒng)的API接口
而且游戲的話還得有一定的美術(shù)功底才可以的
所以一般游戲開發(fā)都是一個(gè)團(tuán)隊(duì)在做
個(gè)人想做好還是有很大難度的呢
如果你想要學(xué)習(xí)安卓開發(fā)的話
你可以先去應(yīng)用寶這些地方下載一些Java學(xué)習(xí)手冊(cè)的軟件
平時(shí)閑著的時(shí)候拿出來(lái)看一看,對(duì)學(xué)習(xí)編程有很大幫助的
Java語(yǔ)言是基礎(chǔ),也是游戲開發(fā)里邊最重要的東西
希望可以對(duì)你有幫助哦
手機(jī)上的游戲是怎么制作出來(lái)的
在制作游戲之前,必須有一套經(jīng)過(guò)長(zhǎng)期測(cè)試并且適用的游戲引擎。
數(shù)位紅用了兩年的時(shí)間總結(jié)開發(fā)出一套基于移動(dòng)設(shè)備的游戲引擎:dragon bone game engine for mobile phone(龍骨),他可以支持目前大部分的高端移動(dòng)設(shè)備,它不僅可以使程序開發(fā)人員及游戲項(xiàng)目節(jié)省了大量的時(shí)間,另外還可以讓美術(shù)人員最直觀的看到其設(shè)計(jì)效果。它最大的價(jià)值就是可以使開發(fā)人員的一套代碼在不需要改動(dòng)程序的情況下編譯運(yùn)行在不同設(shè)備平臺(tái)上(改動(dòng)不超過(guò)20%)。目前數(shù)位紅及其他公司已經(jīng)使用它開發(fā)游戲超過(guò)了30款。
引擎提供了非常完善的9個(gè)模塊與3個(gè)增強(qiáng)模塊,可以完全滿足各類游戲開發(fā)的需要。游戲引擎可以直接嵌入到開發(fā)者的程序中,不需要額外的支持程序即可使所開發(fā)的游戲獨(dú)立運(yùn)行。游戲引擎簡(jiǎn)單、易用,編譯后體積很小,占用內(nèi)存也很小,可以節(jié)省玩家的內(nèi)存空間及無(wú)線下載費(fèi)用?;疽姘?個(gè)模塊,引擎函數(shù)界面提供了類似windows的使用模式:
1、 文件操作模塊:提供類似標(biāo)準(zhǔn)c的fopen,fclose等函數(shù)。
2、 內(nèi)存管理模塊
3、 2d圖形圖象模塊
4、 對(duì)話框模塊
5、 *** s操作模塊:可以在程序內(nèi)部對(duì) *** s的收發(fā)進(jìn)行截獲處理。
6、 加密模塊:提供識(shí)別使用設(shè)備的imei功能,用于軟件的加密目的。
7、 聲音模塊
8、 資源打包及壓縮模塊:可是使最后發(fā)售的軟件包體積變小,盡量少的占用用戶的內(nèi)存空間。
9、 常用函數(shù):如字符串操作等函數(shù)。
10、例子:提供一套完整游戲magicline的源程序。 引擎增強(qiáng)模塊構(gòu)成 其增強(qiáng)部分,包含三個(gè)模塊: 1、 實(shí)時(shí)3d增強(qiáng)模塊 2、 聲音增強(qiáng)模塊 3、 圖形文件增強(qiáng)模塊
ii. 正式開發(fā)的前期工作 a. 開發(fā)工具的準(zhǔn)備 在很多人看來(lái),手機(jī)游戲還是一種很新鮮時(shí)尚的玩意兒,所以,談起手機(jī)游戲的時(shí)候難免有種莫測(cè)高深的感覺(jué)。其實(shí),手機(jī)游戲的整個(gè)制作過(guò)程十分簡(jiǎn)單。從某種角度而言,它是一種傳統(tǒng)的回歸,同時(shí)也是新舊技術(shù)的相互融合。最常用的開發(fā)工具有vc++,j builder及,在設(shè)計(jì)工具上則更是和普通的pc游戲制作軟件沒(méi)有大的區(qū)別。有的設(shè)計(jì)人員更愿意使用“骨灰級(jí)”的二維設(shè)計(jì)工具dp,也有人愿意用3dmax、maya建模之后再進(jìn)行二維修改,當(dāng)然所有這些方法都要根據(jù)游戲的最終設(shè)定來(lái)決定。我們?cè)谧鰆ava游戲的時(shí),一般都是采用像素級(jí)的二維繪制完成圖片,即逐個(gè)像素點(diǎn)的完成。但在制作pda等類似設(shè)備的游戲時(shí),就會(huì)采用3dmax或者maya建立模型,渲染后再修整。在設(shè)計(jì)過(guò)程中,我們也與大多數(shù)游戲公司一樣使用了maya、3dmax、photoshop、painter等工具。 b. 確定游戲的各項(xiàng)參數(shù)及目標(biāo)設(shè)備
自己怎么做一個(gè)手游
算了吧,別人都是一個(gè)公司,一個(gè)團(tuán)隊(duì)
有誰(shuí)知道一個(gè)游戲可以在手機(jī)上自己設(shè)計(jì)房子
《minecraft》 中文譯 《我的世界》這款游戲原在電腦上的 移植到了手機(jī)
怎么制作一款手機(jī)游戲
樓主你好:
從題目看,你是想制作一款 游戲,但是我要告訴你的是,一個(gè)人完成一款游戲的概率是0.0000001%(哈哈,夸張了一點(diǎn)),游戲不是一個(gè)人能完成的。任何一款游戲制作軟件要想很好的應(yīng)用它,都是需要專業(yè)的指導(dǎo)和不斷的針對(duì)練習(xí)的。
好了,讓我來(lái)介紹下游戲制作里會(huì)用到哪些制作軟件吧。
游戲制作至少要有,游戲建模和游戲程序編寫。
3D游戲建模:要會(huì)3d *** ax或maya
游戲編程的話你要會(huì)一門編程語(yǔ)言,一般是C++,C++有學(xué),但不教怎么做游戲。培訓(xùn)學(xué)校有教游戲編程的專業(yè)。當(dāng)然有興趣,可以看看這幾本書:《C++Primer》,《windows游戲編程大師技巧》,《3D游戲編程大師技巧》,還有數(shù)據(jù)結(jié)構(gòu),算法,DirectX 和OpenGL。
最后說(shuō)一句,游戲不是一個(gè)人做的。
如果你對(duì)游戲制作有興趣,又不知道怎么涉足的話,可以點(diǎn)閱博思游戲教育的官方網(wǎng)站,也可以關(guān)注我們的新浪微博,微博ID:博思游戲教育基地”,相信你會(huì)有更多的收獲。
如何制作手機(jī)游戲???
Java學(xué)到什么程度 C++學(xué)到什么程度?軟件制作這些都不會(huì)別談什么開發(fā)安卓游戲 android開發(fā)建議你先從java學(xué)起,java的好書有很多,但是我建議您先專注研究一本,等把這本吃透了再看其他的就容易的多了
Java類的推薦書籍:
HeadFirst java、 Java編程思想、Java2核心技術(shù)、Java程序設(shè)計(jì)經(jīng)典教程
Android類的推薦書籍:
Android應(yīng)用開發(fā)詳解、 Android應(yīng)用開發(fā)揭秘、 Android游戲開發(fā)詳解
Java類的書我建議您先看HeadFirst Java,這本書是美國(guó)人寫的有中文版,文風(fēng)詼諧幽默又不失專業(yè),有助于培養(yǎng)學(xué)習(xí)的興趣
Android類的書我建議您先看 Android應(yīng)用開發(fā)詳解,內(nèi)容很細(xì)代碼也全,注釋很多,可讀性強(qiáng)
所有人在學(xué)習(xí)任何新知識(shí)時(shí)都是從零開始,head first java這本書有很多例子,至少可以通過(guò)復(fù)制書上代碼編寫一兩個(gè)小程序,這就是很好的開始啊。 你先看看這些把 開發(fā)安卓軟件以及游戲沒(méi)點(diǎn)基礎(chǔ)不行的 再說(shuō)要人人都能開發(fā)安卓軟件 為什么有那么多科技公司 招聘安卓軟件開發(fā) 安卓工程師 月薪有那么的高
如何做一個(gè)手機(jī)游戲?一個(gè)人做可能嗎?
至少要一個(gè)團(tuán)隊(duì)
做一個(gè)手機(jī)游戲需要什么東西大概
做手機(jī)游戲,首先你有編程基礎(chǔ)是再好不過(guò)的了。手機(jī)游戲開發(fā)的平臺(tái)是JME,一般不會(huì)用到C++。當(dāng)然學(xué)過(guò)C++的更好。
做手機(jī)游戲,首先你有編程基礎(chǔ)是再好不過(guò)的了。手機(jī)游戲開發(fā)的平臺(tái)是JME,一般不會(huì)用到C++。當(dāng)然學(xué)過(guò)C++的更好。
你學(xué)的可能是JEE,所以你一定要把JME好好學(xué)一下,重點(diǎn)是MIDlet,CANVAS,。此外MIDP1.0和2.0的特性要搞清楚,如果做和網(wǎng)絡(luò)有關(guān)的還要學(xué)習(xí)MIDP網(wǎng)絡(luò)編程。掌握這些就基本上門什么問(wèn)題了,學(xué)的不多,對(duì)于一個(gè)會(huì)C++/JEE的人來(lái)說(shuō),應(yīng)該可以在1個(gè)月左右學(xué)完。和其他語(yǔ)言一樣,JME關(guān)鍵是要多練,自己試著開發(fā)幾個(gè)小游戲出來(lái)是不錯(cuò)的練習(xí)辦法,可以找出你學(xué)習(xí)上的不足點(diǎn)。有條件的話,做出來(lái)的游戲應(yīng)該拿到真機(jī)上運(yùn)行,因?yàn)樵谀M器上運(yùn)行和真機(jī)有區(qū)別。
如果是獨(dú)立開發(fā)手游,那么還要掌握一些基本的軟件,如PhotoShop,Mappy,和簡(jiǎn)單的聲效處理。另外有需求的話可以學(xué)學(xué)JTWI,特別是Mobile 3D Graphics(M3G)技術(shù),這是以后發(fā)展的趨勢(shì),總之,你就再需要學(xué)JME和多練習(xí),就夠了。PS.一般來(lái)說(shuō)JME工程師比JSE和JEE的待遇要好一些。
怎樣制作手機(jī)游戲
手機(jī)游戲的整個(gè)制作過(guò)程十分簡(jiǎn)單。從某種角度而言,它是一種傳統(tǒng)的回歸,同時(shí)也是新舊技術(shù)的相互融合。最常用的開發(fā)工具有vc++,j builder及,在設(shè)計(jì)工具上則更是和普通的pc游戲制作軟件沒(méi)有大的區(qū)別。有的設(shè)計(jì)人員更愿意使用“骨灰級(jí)”的二維設(shè)計(jì)工具dp,也有人愿意用3dmax、maya建模之后再進(jìn)行二維修改,當(dāng)然所有這些方法都要根據(jù)游戲的最終設(shè)定來(lái)決定。我們?cè)谧鰆ava游戲的時(shí),一般都是采用像素級(jí)的二維繪制完成圖片,即逐個(gè)像素點(diǎn)的完成。但在制作pda等類似設(shè)備的游戲時(shí),就會(huì)采用3dmax或者maya建立模型,渲染后再修整。在設(shè)計(jì)過(guò)程使用了maya、3dmax、photoshop、painter等工具。
java游戲開發(fā)設(shè)計(jì)概念
(1)Easy:Java的語(yǔ)法比C++的相對(duì)簡(jiǎn)單,另一個(gè)方面就是Java能使軟件在很小的機(jī)器上運(yùn)行,基礎(chǔ)解釋其和類庫(kù)的支持的大小約為40kb,增加基本的標(biāo)準(zhǔn)庫(kù)和線程支持的內(nèi)存需要增加125kb。
(2)分布式:Java帶有很強(qiáng)大的TCP/IP協(xié)議族的例程庫(kù),Java應(yīng)用程序能夠通過(guò)URL來(lái)穿過(guò)網(wǎng)絡(luò)來(lái)訪問(wèn)遠(yuǎn)程對(duì)象,由于servlet機(jī)制的出現(xiàn),使Java編程非常的高效,現(xiàn)在許多的大的web server都支持servlet。
(3)OO:面向?qū)ο笤O(shè)計(jì)是把重點(diǎn)放在對(duì)象及對(duì)象的接口上的一個(gè)編程技術(shù).其面向?qū)ο蠛虲++有很多不同,在與多重繼承的處理及Java的原類模型。
(4)健壯特性:Java采取了一個(gè)安全指針模型,能減小重寫內(nèi)存和數(shù)據(jù)崩潰的可能型。
(5)安全:Java用來(lái)設(shè)計(jì)網(wǎng)路和分布系統(tǒng),這帶來(lái)了新的安全問(wèn)題,Java可以用來(lái)構(gòu)建防病毒和防攻擊的System.事實(shí)證明Java在防毒這一方面做的比較好。
(6)中立體系結(jié)構(gòu):Java編譯其生成體系結(jié)構(gòu)中立的目標(biāo)文件格式可以在很多處理器上執(zhí)行,編譯器產(chǎn)生的指令字節(jié)碼()實(shí)現(xiàn)此特性,此字節(jié)碼可以在任何機(jī)器上解釋執(zhí)行。
(7)可移植性:Java中對(duì)基本數(shù)據(jù)結(jié)構(gòu)類型的大小和算法都有嚴(yán)格的規(guī)定所以可移植性很好。
(8)多線程:Java處理多線程的過(guò)程很簡(jiǎn)單,Java把多線程實(shí)現(xiàn)交給底下操作系統(tǒng)或線程程序完成.所以多線程是Java作為服務(wù)器端開發(fā)語(yǔ)言的流行原因之一。
(9)Applet和servlet:能夠在網(wǎng)頁(yè)上執(zhí)行的程序叫Applet,需要支持Java的瀏覽器很多,而applet支持動(dòng)態(tài)的網(wǎng)頁(yè),這是很多其他語(yǔ)言所不能做到的。
基本概念
1.OOP中唯一關(guān)系的是對(duì)象的接口是什么,就像計(jì)算機(jī)的銷售商她不管電源內(nèi)部結(jié)構(gòu)是怎樣的,他只關(guān)系能否給你提供電就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的屬性和行為對(duì)象組成的,不同的對(duì)象的訪問(wèn)通過(guò)函數(shù)調(diào)用來(lái)完成,對(duì)象間所有的交流都是通過(guò)方法調(diào)用,通過(guò)對(duì)封裝對(duì)象數(shù)據(jù),很大限度上提高復(fù)用率。
2.OOP中最重要的思想是類,類是模板是藍(lán)圖,從類中構(gòu)造一個(gè)對(duì)象,即創(chuàng)建了這個(gè)類的一個(gè)實(shí)例(instance)。
3.封裝:就是把數(shù)據(jù)和行為結(jié)合起在一個(gè)包中)并對(duì)對(duì)象使用者隱藏?cái)?shù)據(jù)的實(shí)現(xiàn)過(guò)程,一個(gè)對(duì)象中的數(shù)據(jù)叫他的實(shí)例字段(instance field)。
4.通過(guò)擴(kuò)展一個(gè)類來(lái)獲得一個(gè)新類叫繼承(),而所有的類都是由Object根超類擴(kuò)展而得,根超類下文會(huì)做介紹。
5.對(duì)象的3個(gè)主要特性
behavior---說(shuō)明這個(gè)對(duì)象能做什么.
state---當(dāng)對(duì)象施加方法時(shí)對(duì)象的反映.
identity---與其他相似行為對(duì)象的區(qū)分標(biāo)志.
每個(gè)對(duì)象有唯一的indentity 而這3者之間相互影響.
6.類之間的關(guān)系:
use-a :依賴關(guān)系
has-a :聚合關(guān)系
is-a :繼承關(guān)系--例:A類繼承了B類,此時(shí)A類不僅有了B類的方法,還有其自己的方法.(個(gè)性存在于共性中)
7.構(gòu)造對(duì)象使用構(gòu)造器:構(gòu)造器的提出,構(gòu)造器是一種特殊的方法,構(gòu)造對(duì)象并對(duì)其初始化。
例:Data類的構(gòu)造器叫Data
new Data()---構(gòu)造一個(gè)新對(duì)象,且初始化當(dāng)前時(shí)間.
Data happyday=new Data()---把一個(gè)對(duì)象賦值給一個(gè)變量happyday,從而使該對(duì)象能夠多次使用,此處要聲明的使變量與對(duì)象變量二者是不同的.new返回的值是一個(gè)引用。
構(gòu)造器特點(diǎn):構(gòu)造器可以有0個(gè),一個(gè)或多個(gè)參數(shù)
構(gòu)造器和類有相同的名字
一個(gè)類可以有多個(gè)構(gòu)造器
構(gòu)造器沒(méi)有返回值
構(gòu)造器總是和new運(yùn)算符一起使用. 8.重載:當(dāng)多個(gè)方法具有相同的名字而含有不同的參數(shù)時(shí),便發(fā)生重載.編譯器必須挑選出調(diào)用哪個(gè)方法。
9.包(package)Java允許把一個(gè)或多個(gè)類收集在一起成為一組,稱作包,以便于組織任務(wù),標(biāo)準(zhǔn)Java庫(kù)分為許多包.java.lang java.util java,net等,包是分層次的所有的java包都在java和javax包層次內(nèi)。
10.繼承思想:允許在已經(jīng)存在的類的基礎(chǔ)上構(gòu)建新的類,當(dāng)你繼承一個(gè)已經(jīng)存在的類時(shí),那么你就復(fù)用了這個(gè)類的方法和字段,同時(shí)你可以在新類中添加新的方法和字段。
11.擴(kuò)展類:擴(kuò)展類充分體現(xiàn)了is-a的繼承關(guān)系. 形式為:class (子類) extends (基類)。
12.多態(tài):在java中,對(duì)象變量是多態(tài)的.而java中不支持多重繼承。
13.動(dòng)態(tài)綁定:調(diào)用對(duì)象方法的機(jī)制。
(1)編譯器檢查對(duì)象聲明的類型和方法名。
(2)編譯器檢查方法調(diào)用的參數(shù)類型。
(3)靜態(tài)綁定:若方法類型為priavte static final 編譯器會(huì)準(zhǔn)確知道該調(diào)用哪個(gè)方法。
(4)當(dāng)程序運(yùn)行并且使用動(dòng)態(tài)綁定來(lái)調(diào)用一個(gè)方法時(shí),那么虛擬機(jī)必須調(diào)用x所指向的對(duì)象的實(shí)際類型相匹配的方法版本。
(5)動(dòng)態(tài)綁定:是很重要的特性,它能使程序變得可擴(kuò)展而不需要重編譯已存代碼。
14.final類:為防止他人從你的類上派生新類,此類是不可擴(kuò)展的。
15.動(dòng)態(tài)調(diào)用比靜態(tài)調(diào)用花費(fèi)的時(shí)間要長(zhǎng)。
16.抽象類:規(guī)定一個(gè)或多個(gè)抽象方法的類本身必須定義為abstract。
例: public abstract string
17.Java中的每一個(gè)類都是從Object類擴(kuò)展而來(lái)的。
18.object類中的equal和toString方法。
equal用于測(cè)試一個(gè)對(duì)象是否同另一個(gè)對(duì)象相等。
toString返回一個(gè)代表該對(duì)象的字符串,幾乎每一個(gè)類都會(huì)重載該方法,以便返回當(dāng)前狀態(tài)的正確表示.
(toString 方法是一個(gè)很重要的方法)
19.通用編程:任何類類型的所有值都可以同object類性的變量來(lái)代替。
20.數(shù)組列表:ArrayList動(dòng)態(tài)數(shù)組列表,是一個(gè)類庫(kù),定義在java.uitl包中,可自動(dòng)調(diào)節(jié)數(shù)組的大小。
21.class類 object類中的getclass方法返回ckass類型的一個(gè)實(shí)例,程序啟動(dòng)時(shí)包含在main方法的類會(huì)被加載,虛擬機(jī)要加載他需要的所有類,每一個(gè)加載的類都要加載它需要的類。
22.class類為編寫可動(dòng)態(tài)操縱java代碼的程序提供了強(qiáng)大的功能反射,這項(xiàng)功能為JavaBeans特別有用,使用反射Java能支持VB程序員習(xí)慣使用的工具。
能夠分析類能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射機(jī)制十分強(qiáng)大.
1.在運(yùn)行時(shí)分析類的能力。
2.在運(yùn)行時(shí)探察類的對(duì)象。
3.實(shí)現(xiàn)通用數(shù)組操縱代碼。
4.提供方法對(duì)象。 而此機(jī)制主要針對(duì)是工具者而不是應(yīng)用及程序。
反射機(jī)制中的最重要的部分是允許你檢查類的結(jié)構(gòu).用到的API有:
java.lang.reflect.Field 返回字段.
java.reflect.Method 返回方法.
java.lang.reflect. 返回參數(shù).
方法指針:java沒(méi)有方法指針,把一個(gè)方法的地址傳給另一個(gè)方法,可以在后面調(diào)用它,而接口是更好的解決方案。
23.接口(Interface)說(shuō)明類該做什么而不指定如何去做,一個(gè)類可以實(shí)現(xiàn)一個(gè)或多個(gè)interface。
24.接口不是一個(gè)類,而是對(duì)符合接口要求的類的一套規(guī)范。
若實(shí)現(xiàn)一個(gè)接口需要2個(gè)步驟:
1.聲明類需要實(shí)現(xiàn)的指定接口。
2.提供接口中的所有方法的定義。
聲明一個(gè)類實(shí)現(xiàn)一個(gè)接口需要使用 關(guān)鍵字
class actionB 其actionb需要提供CompareTo方法,接口不是類,不能用new實(shí)例化一個(gè)接口.
25.一個(gè)類只有一個(gè)超類,但一個(gè)類能實(shí)現(xiàn)多個(gè)接口。Java中的一個(gè)重要接口:Cloneable
26.接口和回調(diào).編程一個(gè)常用的模式是回調(diào)模式,在這種模式中你可以指定當(dāng)一個(gè)特定時(shí)間發(fā)生時(shí)回調(diào)對(duì)象上的方法。
例: 接口監(jiān)聽(tīng).
類似的API有:java.swing.
java.swing.Timer
java.awt.Tookit
27.對(duì)象clone:clone方法是object一個(gè)保護(hù)方法,這意味著你的代碼不能簡(jiǎn)單的調(diào)用它。
28.內(nèi)部類:一個(gè)內(nèi)部類的定義是定義在另一個(gè)內(nèi)部的類。
原因是:
1.一個(gè)內(nèi)部類的對(duì)象能夠訪問(wèn)創(chuàng)建它的對(duì)象的實(shí)現(xiàn),包括私有數(shù)據(jù)。
2.對(duì)于同一個(gè)包中的其他類來(lái)說(shuō),內(nèi)部類能夠隱藏起來(lái)。
3.匿名內(nèi)部類可以很方便的定義回調(diào)。
4.使用內(nèi)部類可以非常方便的編寫事件驅(qū)動(dòng)程序。
29.代理類(proxy):
1.指定接口要求所有代碼
2.object類定義的所有的方法(toString equals)
30.數(shù)據(jù)類型:Java是強(qiáng)調(diào)類型的語(yǔ)言,每個(gè)變量都必須先申明它都類型,java中總共有8個(gè)基本類型.4種是整型,2種是浮點(diǎn)型,一種是字符型,被用于Unicode編碼中的字符,布爾型。
利用 Java Swing 實(shí)現(xiàn)游戲開發(fā)
Swing初體驗(yàn) 對(duì)于想學(xué)習(xí)Swing編程的朋友 我們特地為大家準(zhǔn)備了一些小竅門 首先 下載并閱讀代碼是極有必要的 由于這是一篇關(guān)于Swing的教程 所以 我們只是盡可能講解一些與Swing有關(guān)的內(nèi)容 與Swing無(wú)關(guān)的內(nèi)容一般不會(huì)涉及 例如算法部分 其次 受篇幅限制 也不可能在這里將每部分代碼都寫得完完整整的 所以 大家也需要對(duì)照完整代碼來(lái)看 最后 為了使大家更容易把精力集中在Swing學(xué)習(xí)上 我們也將游戲開發(fā)中所需資源放在下載文件中 大家下載后便能夠編譯運(yùn)行 看到執(zhí)行結(jié)果 (下載游戲源文件) 頂層容器 什么是頂層容器?當(dāng)我們使用Java進(jìn)行圖形編程的時(shí)候 圖在哪里繪制呢?我們需要一個(gè)能夠提供圖形繪制的容器 這個(gè)容器就被稱為頂層容器 你也可以把它想象成一個(gè)窗口 頂層容器是進(jìn)行圖形編程的基礎(chǔ) 一切圖形化的東西 都必然包括在頂層容器中 在Swing中 我們有三種可以使用的頂層容器 它們分別是:JFrame:用來(lái)設(shè)計(jì)類似于Windows系統(tǒng)中的窗口形式的應(yīng)用程序 JDialog:和JFrame類似 只不過(guò)JDialog是用來(lái)設(shè)計(jì)對(duì)話框 JApplet:用來(lái)設(shè)計(jì)可以在嵌入在網(wǎng)頁(yè)中的Java小程序 如果需要使用Swing制作一個(gè)窗口類程序 我們的代碼看起來(lái)應(yīng)該是這樣:import javax swing *;public class JFrame {……} 控件 控件是構(gòu)成應(yīng)用程序界面的基本元素 按鈕 文本框 進(jìn)度條等 這些都是控件 控件(這里我們只討論可視化控件)又可以分為容器控件和非容器控件 從字面意義上來(lái)理解 容器控件就是能包含其他控件的特殊控件 例如 Java中的JPanel控件就屬于容器型控件 我們可以在JPanel中放置按鈕 文本框等非容器控件 你甚至可以在JPanel中再放置若干個(gè)JPanel控件(值得注意的是 頂層容器也是容器型控件 每一個(gè)窗口應(yīng)用程序中有且只能有一個(gè)頂層容器控件 換句話說(shuō) 頂層容器不能包括在其他的控件中) Java中的容器控件有很多 除剛才提到的JPanel外 還有 等 非容器控件有JButton JLabel 等 如果你需要向某個(gè)容器型的控件中添加控件 你可以使用 add(Component p) 方法來(lái)實(shí)現(xiàn) 如:JPanel panel = new JPanel();JButton button = new JButton();panel add(button); 布局 什么是布局?布局是Java中用來(lái)控制控件排列位置的一種界面管理系統(tǒng) 使用過(guò)其他可視化編程開發(fā)語(yǔ)言的人在初次接觸Java界面設(shè)計(jì)時(shí) 總會(huì)感覺(jué)到Java界面設(shè)計(jì)很別扭:居然沒(méi)有提供所見(jiàn)即所得的設(shè)置控件坐標(biāo)的方法!然而 事實(shí)證明 Java本身提供的布局管理系統(tǒng)也一樣能夠出色地完成我們的需要 而且在跨平臺(tái)時(shí)表現(xiàn)得更有優(yōu)勢(shì) 常用的布局有::將界面分割為上下左右以及中間一塊區(qū)域的管理系統(tǒng) 在布局中 最多你只能放 個(gè)控件 如果超過(guò) 個(gè)控件 建議還是選用其他的布局系統(tǒng)吧 :是將用戶界面切割為棋盤一樣的布局管理系統(tǒng) 如果我們要設(shè)計(jì)一個(gè)類似于Windows中自帶的計(jì)算器軟件 無(wú)疑是最佳選擇 :與上述兩類布局管理系統(tǒng)不太一樣 在中 你不必指定每個(gè)控件放在哪 你只需要把控件加入到中 就會(huì)根據(jù)你添加控件的順序依次放置控件 如果空間不夠 會(huì)自動(dòng)換行 在對(duì)這幾個(gè)布局管理系統(tǒng)有了基本認(rèn)識(shí)后 我們就一起來(lái)進(jìn)入界面設(shè)計(jì)吧 在仔細(xì)觀察了QQ游戲中 連連看 的設(shè)定后 我們可以發(fā)現(xiàn) 整個(gè)界面分為三個(gè)區(qū) 頂部是系統(tǒng)菜單區(qū) 占地面積最大的是用戶游戲區(qū) 另外還有一個(gè)用戶交互區(qū) 每個(gè)區(qū)域中都由若干控件組成 這么多控件 我們從哪開始入手呢?由于容器控件中可以放置其他控件 因此 我們只需要先確定放置的容器控件就可以了 既然已經(jīng)知道需要使用容器控件的個(gè)數(shù) 接下來(lái)讓我們就進(jìn)入布局管理系統(tǒng)的選擇 用?似乎有點(diǎn)勉強(qiáng) 用?還有更好的選擇嗎?對(duì)了 我想你一定想到了是吧 如下圖 所示 動(dòng)手之前 大家一定要注意的是 界面的設(shè)計(jì)要先考慮好尺寸 不管是主程序界面的大小還是每個(gè)區(qū)域的大小 如果沒(méi)有設(shè)計(jì)好合適的尺寸 將來(lái)改動(dòng)起來(lái)會(huì)十分痛苦 下面便是相應(yīng)的源程序:import java awt *;import javax swing *;public class KyodaiUI extends JFrame {public KyodaiUI() {this setSize( ); //將窗體的大小設(shè)定為 * this (JFrame EXIT_ON_CLOSE);this (false); //窗體不能改變大小this setTitle( 連連看 ); //設(shè)置標(biāo)題JPanel toolBar = new JPanel();toolBar (Color white);toolBar (new Dimension( ));JPanel = new JPanel(); //新建JPanel型的控件 (Color yellow); //設(shè)置背景色 (new Dimension( )); //設(shè)置大小JPanel = new JPanel(); (Color blue); (new Dimension( ));this () add(toolBar NORTH);this () add( EAST);this () add( CENTER);}public static void main(String[] args) throws {KyodaiUI kyodaiUI = new KyodaiUI();kyodaiUI show();}}讓我們來(lái)看看上面這段程序是如何運(yùn)行的 首先 extends JFrame表明了這是從JFrame中繼承過(guò)來(lái)的 JFrame是最基本的頂層容器控件 實(shí)際上 在JDK中 以字母J打頭的控件都是Swing控件 然后設(shè)置了容器的屬性 其中 (JFrame EXIT_ON_CLOSE)是用來(lái)告訴Java虛擬機(jī) 當(dāng)用戶點(diǎn)擊窗體右上角的 關(guān)閉 按鈕時(shí) 關(guān)閉該窗口進(jìn)程 如果不這么做的話 你會(huì)發(fā)現(xiàn)雖然你可以點(diǎn)將窗口關(guān)閉 然而程序卻沒(méi)有退出 在接下來(lái)的代碼中 我們?yōu)轫攲尤萜魈砑恿巳齻€(gè)Panel容器 要注意的是 在AWT中 我們可以直接寫為add(toolBar NORTH) 而在 Swing 中卻一定要寫成() add(toolBar NORTH) 否則程序就會(huì)出錯(cuò) 現(xiàn)在大家可以放在編譯運(yùn)行看看 是不是和我的運(yùn)行結(jié)果一樣(見(jiàn)圖 )? 邊框 雖然我們使用了不同前景色來(lái)區(qū)別不同的區(qū)域 然而卻沒(méi)有層次感 加上邊框一定會(huì)漂亮許多 在Java中 所有以J打頭的Swing控件都可以使用setBorder方法來(lái)為自己設(shè)置邊框 邊框有很多種 線型 凸起 凹下 空的 你甚至可以自由組合形成個(gè)人風(fēng)格 所有的Border都必須使用javax swing 中提供的靜態(tài)方法來(lái)創(chuàng)建 比如:Border border = ( LOWERED new Color( ) new Color( ) new Color( ) new Color( ));現(xiàn)在 我們將toolBar (Color white)改為toolBar setBorder(border) 立體效果是不是已經(jīng)出現(xiàn)了?實(shí)戰(zhàn)??寫上自己的大名現(xiàn)在我們已經(jīng)有了一個(gè)能夠運(yùn)行的界面了 雖然它什么也做不了 但是請(qǐng)你別慌 羅馬不是一天建成的 現(xiàn)在讓我們?cè)诓藛螀^(qū)提供一個(gè) 關(guān)于 菜單 用來(lái)顯示程序的信息 難道你不想讓別人知道你的大名嗎?Swing本身就提供了現(xiàn)成的按鈕控件JButton 我們只需要?jiǎng)?chuàng)建一個(gè)新的按鈕:JButton about = new JButton( 關(guān)于 );這個(gè)按鈕該怎么放到菜單區(qū)而不是別的地方呢?我們可以加入下面的代碼:toolBar add(about);咦 怎么點(diǎn)按鈕沒(méi)有反應(yīng)?這是因?yàn)槟氵€沒(méi)有告訴程序點(diǎn)擊按鈕時(shí)要做什么事情呢 要為按鈕添加事件響應(yīng) 首先需要使用about (this)來(lái)告訴程序監(jiān)聽(tīng)按鈕按下時(shí)的事件 由于是一個(gè)程序接口 因此 我們?cè)陬惖纳昝鞯牡胤揭驳米鲆稽c(diǎn)小小的修改:public class KyodaiUI extends JFrame { }實(shí)現(xiàn)接口是為了告訴程序我要進(jìn)行事件處理了 當(dāng)然 最后我們得添加響應(yīng)事件的代碼:public void ( e) {if (e getSource() == about) { (this 我的大名 關(guān)于 _MESSAGE);return ;}}其中 e getSource() 表示當(dāng)前觸發(fā)事件的控件 由于我們的程序中往往會(huì)有多個(gè)以上的控件 這些控件都有可能產(chǎn)生事件 所以我們必須使用這個(gè)方法來(lái)找到產(chǎn)生事情的控件 小結(jié) 讓我們一起來(lái)回顧一下今天所學(xué)的內(nèi)容:首先我們了解了頂層容器 也知道了控件分為容器控件和非容器控件 同時(shí)還知道使用邊框 最后 我們還小小的處理了一下按鈕的事件 學(xué)而時(shí)習(xí)之 不亦說(shuō)乎 就讓我留點(diǎn)小小的作業(yè) 幫助大家鞏固一下今天所學(xué)的內(nèi)容:上面我們添加的按鈕在菜單欄的中間 并不美觀 /Article/program/Java/hx/201311/25907
用java寫,游戲腳本,需要學(xué)習(xí)哪方面??
學(xué)習(xí)內(nèi)容大致可分為以下10點(diǎn),但也要跟上技術(shù)發(fā)展的步伐,實(shí)時(shí)更新。
1、Java語(yǔ)言
Java語(yǔ)言體系比較龐大,包括多個(gè)模塊。從WEB項(xiàng)目應(yīng)用角度講有JSP、Servlet、JDBC、JavaBean()四部分技術(shù)。
(1)、Java Database (JDBC)技術(shù)
在Java Web應(yīng)用開發(fā)中,數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)的使用是不可缺少的。JDBC(Java Database ) 是一種用于執(zhí)行SQL 語(yǔ)句的 Java API。它由一組用 Java 編程語(yǔ)言編寫的類和接口組成。JDBC 為工具/數(shù)據(jù)庫(kù)開發(fā)人員提供了一個(gè)標(biāo)準(zhǔn)的API,使他們能夠用純Java API 來(lái)編寫數(shù)據(jù)庫(kù)應(yīng)用程序。
簡(jiǎn)單地說(shuō),JDBC 可做三件事:
l 與數(shù)據(jù)庫(kù)建立連接,
l 發(fā)送SQL 語(yǔ)句,
l 處理結(jié)果。
(2)、Servlet技術(shù)
Servlet是運(yùn)行在服務(wù)器端的程序,可以被認(rèn)為是服務(wù)器端的applet。servlet被Web服務(wù)器(例如Tomcat)加載和執(zhí)行,就如同applet被瀏覽器加載和執(zhí)行一樣。servlet從客戶端(通過(guò)Web服務(wù)器)接收請(qǐng)求,執(zhí)行某種操作,然后返回結(jié)果。
Servlet的主要優(yōu)點(diǎn)包括
l Servlet是持久的。servlet只需Web服務(wù)器加載一次,而且可以在不同請(qǐng)求之間保持服務(wù)(例如一次數(shù)據(jù)庫(kù)連接)。
l Servlet是與平臺(tái)無(wú)關(guān)的。如前所述,servlet是用Java編寫的,它自然也繼承了Java的平臺(tái)無(wú)關(guān)性。
l Servlet是可擴(kuò)展的。由于servlet是用Java編寫的,它就具備了Java所能帶來(lái)的所有優(yōu)點(diǎn)。Java是健壯的、面向?qū)ο蟮木幊陶Z(yǔ)言,它很容易擴(kuò)展以適應(yīng)你的需求。servlet自然也具備了這些特征。
l Servlet是安全的。從外界調(diào)用一個(gè)servlet的惟一方法就是通過(guò)Web服務(wù)器。這提供了高水平的安全性保障,尤其是在你的Web服務(wù)器有防火墻保護(hù)的時(shí)候。
l Servlet可以在多種多樣的客戶機(jī)上使用。由于servlet是用Java編寫的,所以你可以很方便地在HTML中使用它們。
(3)、 Pages(JSP)技術(shù)
JSP是從Servlet上分離出來(lái)的一小部分,簡(jiǎn)化了開發(fā),加強(qiáng)了界面設(shè)計(jì)。JSP定位在交互網(wǎng)頁(yè)的開發(fā)。運(yùn)用Java語(yǔ)法,但功能較Servlet弱了很多,并且高級(jí)開發(fā)中只充當(dāng)用戶界面部分。JSP容器收到客戶端發(fā)出的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式響應(yīng)給客戶端。其中程序片段可以是:操作數(shù)據(jù)庫(kù)、重新定向網(wǎng)頁(yè)以及發(fā)送 E-Mail 等等,這些都是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,與客戶端的瀏覽器無(wú)關(guān),因此,JSP 稱為Server-Side Language。
Pages的主要優(yōu)點(diǎn)包括
●一次編寫,各處執(zhí)行(Write Once, Run Anywhere)特性
作為Java 平臺(tái)的一部分, Pages 技術(shù)擁有Java語(yǔ)言“一次編寫,各處執(zhí)行”的特點(diǎn)。隨著越來(lái)越多的供貨商將 Pages 技術(shù)添加到他們的產(chǎn)品中,您可以針對(duì)自己公司的需求,做出審慎評(píng)估后,選擇符合公司成本及規(guī)模的服務(wù)器,假若未來(lái)的需求有所變更時(shí),更換服務(wù)器平臺(tái)并不影響之前所投下的成本、人力所開發(fā)的應(yīng)用程序。
● 搭配可重復(fù)使用的組件
Pages技術(shù)可依賴于重復(fù)使用跨平臺(tái)的組件(如:JavaBean或 JavaBean組件)來(lái)執(zhí)行更復(fù)雜的運(yùn)算、數(shù)據(jù)處理。開發(fā)人員能夠共享開發(fā)完成的組件,或者能夠加強(qiáng)這些組件的功能,讓更多用戶或是客戶團(tuán)體使用?;谏萍永媒M件的方法,可以加快整體開發(fā)過(guò)程,也大大降低公司的開發(fā)成本和人力。
● 采用標(biāo)簽化頁(yè)面開發(fā)
Web 網(wǎng)頁(yè)開發(fā)人員不一定都是熟悉Java 語(yǔ)言的程序員。因此,JSP 技術(shù)能夠?qū)⒃S多功能封裝起來(lái),成為一個(gè)自定義的標(biāo)簽,這些功能是完全根據(jù)XML 的標(biāo)準(zhǔn)來(lái)制訂的,即JSP 技術(shù)中的標(biāo)簽庫(kù)(Tag Library)。因此,Web 頁(yè)面開發(fā)人員可以運(yùn)用自定義好的標(biāo)簽來(lái)達(dá)成工作需求,而無(wú)須再寫復(fù)雜的Java 語(yǔ)法,讓W(xué)eb 頁(yè)面開發(fā)人員亦能快速開發(fā)出一動(dòng)態(tài)內(nèi)容網(wǎng)頁(yè)。
今后,第三方開發(fā)人員和其他人員可以為常用功能建立自己的標(biāo)簽庫(kù),讓W(xué)eb 網(wǎng)頁(yè)開發(fā)人員能夠使用熟悉的開發(fā)工具,如同HTML 一樣的標(biāo)簽語(yǔ)法來(lái)執(zhí)行特定功能的工作。
● N-tier 企業(yè)應(yīng)用架構(gòu)的支持
有鑒于網(wǎng)際網(wǎng)絡(luò)的發(fā)展,為因應(yīng)未來(lái)服務(wù)越來(lái)越繁雜的要求,且不再受地域的限制,因此,
必須放棄以往Client-Server的Two-tier 架構(gòu),進(jìn)而轉(zhuǎn)向更具威力、彈性的分散性對(duì)象系統(tǒng)。由于 Page 技術(shù)是Java 2 Platform Edition (J2EE)集成中的一部分,它主要是負(fù)責(zé)前端顯示經(jīng)過(guò)復(fù)雜運(yùn)算后之結(jié)果內(nèi)容,而分散性的對(duì)象系統(tǒng)則是主要依賴EJB ( JavaBean )和JNDI ( Java Naming and Directory Interface )構(gòu)建而成。
(4)、JavaBean()應(yīng)用組件技術(shù)
是Java應(yīng)用程序,在WEB項(xiàng)目和一些開發(fā)中主要應(yīng)用JavaBean。它就是的一部分,邏輯運(yùn)算能力很強(qiáng),能極大的發(fā)揮Java語(yǔ)言的優(yōu)點(diǎn)。JavaBean 被稱為是Java 組件技術(shù)的核心。JavaBean 的結(jié)構(gòu)必須滿足一定的命名約定。JavaBean能提供常用功能并且可以重復(fù)使用,這使得開發(fā)人員可以把某些關(guān)鍵功能和核心算法提取出來(lái)封裝成為一個(gè)組件對(duì)象,這樣就增加了代碼的重用率和系統(tǒng)的安全性。
高級(jí)的WEB項(xiàng)目會(huì)應(yīng)用到以上所有技術(shù),它們之間聯(lián)合使用和協(xié)作開發(fā)會(huì)提高開發(fā)的效率和系統(tǒng)的性能。
2、面向?qū)ο蠓治鲈O(shè)計(jì)思想
Java語(yǔ)言是完全面向?qū)ο蟮恼Z(yǔ)言,所以在項(xiàng)目設(shè)計(jì)時(shí)會(huì)有很大的幫助,在設(shè)計(jì)時(shí)應(yīng)盡量舍棄以往的面向過(guò)程的設(shè)計(jì)方式。
在分析項(xiàng)目業(yè)務(wù)關(guān)系的時(shí)候,應(yīng)用一些UML(Unified Modeling Language)圖,例如常用的用例圖(use case diagram),類圖(class diagram),時(shí)序圖(sequence diagram)等等,會(huì)有很大的幫助,這樣能盡快找出業(yè)務(wù)邏輯主要面對(duì)的對(duì)象,然后對(duì)每個(gè)對(duì)象進(jìn)行行為劃分,最后再實(shí)現(xiàn)對(duì)象之間的集成和通信。
3、設(shè)計(jì)模式和框架結(jié)構(gòu)
Java從語(yǔ)言角度來(lái)講不是很難,但是從整體設(shè)計(jì)角度來(lái)講我們還需要了解一些高級(jí)應(yīng)用框架。如果要設(shè)計(jì)一個(gè)良好的框架結(jié)構(gòu),單單只掌握J(rèn)ava語(yǔ)言遠(yuǎn)遠(yuǎn)不夠。這就涉及到一個(gè)設(shè)計(jì)模式,還有和設(shè)計(jì)模式相關(guān)的一些知識(shí)。
設(shè)計(jì)模式在Java項(xiàng)目實(shí)施過(guò)程更是重中之重。主要在與兩層的設(shè)計(jì)模式、三層的設(shè)計(jì)模式和N層的設(shè)計(jì)模式。它直接決定著項(xiàng)目的應(yīng)用、部署和實(shí)際開發(fā)設(shè)計(jì)。
在普通的WEB項(xiàng)目中很多采用兩層的開發(fā)結(jié)構(gòu)。JSP+Servlet或JSP+JavaBean。當(dāng)對(duì)開發(fā)要求高的項(xiàng)目中使用很多的還是MVC的三層開發(fā)結(jié)構(gòu),也就是JSP+Servlet+JavaBean。它能分有效的分離邏輯開發(fā),使開發(fā)人員能專注于各自的開發(fā)。同時(shí)也能時(shí)整個(gè)開發(fā)結(jié)構(gòu)流程更清晰,但是需要比較高的開發(fā)配合度。
在項(xiàng)目中,我們經(jīng)常使用著名的Model-View-(MVC)架構(gòu)。MVC架構(gòu)是隨著smalltalk language語(yǔ)言的發(fā)展提出的,它是一個(gè)著名的用戶界面設(shè)計(jì)架構(gòu)。經(jīng)典的MVC架構(gòu)把一個(gè)組件(可認(rèn)為是整個(gè)應(yīng)用程序的一個(gè)模塊)劃分成三部分組 Model管理這個(gè)模塊中所用到的數(shù)據(jù)和業(yè)務(wù)邏輯。而View 管理模塊如何顯示給用戶, 決定如何處理用戶和該模塊交互式時(shí)候產(chǎn)生的事件如用戶點(diǎn)擊一個(gè)按鈕等。
4、XML語(yǔ)言
在服務(wù)器和設(shè)計(jì)模式結(jié)構(gòu)中會(huì)應(yīng)用到自定義文件,而且在應(yīng)用高級(jí)設(shè)計(jì)時(shí)也會(huì)定義自用的標(biāo)簽,現(xiàn)在流行的是用XML去定義配置,所以XML語(yǔ)言應(yīng)該有一定掌握。
當(dāng)前,Java 2平臺(tái)企業(yè)版(J2EE)架構(gòu)在廠商市場(chǎng)和開發(fā)者社區(qū)中倍受推崇。作為一種工具,可擴(kuò)展標(biāo)記語(yǔ)言(XML)簡(jiǎn)化了數(shù)據(jù)交換、進(jìn)程間消息交換這一類的事情,因而對(duì)開發(fā)者逐漸變得有吸引力,并開始流行起來(lái)。自然,在J2EE架構(gòu)中訪問(wèn)或集成XML解決方案的想法也很誘人。因?yàn)檫@將是強(qiáng)大系統(tǒng)架構(gòu)同高度靈活的數(shù)據(jù)管理方案的結(jié)合。
XML的應(yīng)用似乎是無(wú)窮無(wú)盡的,但它們大致上可以分為三大類:
1、簡(jiǎn)單數(shù)據(jù)的表示和交換(針對(duì)XML的簡(jiǎn)單API(SAX)和文檔對(duì)象模型(DOM)語(yǔ)法解析,不同的文檔類型定義(DTDs)和概要(schemas))
2、用戶界面相關(guān)、表示相關(guān)的上下文(可擴(kuò)展樣式表語(yǔ)言(XSL),可擴(kuò)展樣式表語(yǔ)言轉(zhuǎn)換(XSLT))
3、面向消息的計(jì)算(XML-RPC(遠(yuǎn)程過(guò)程調(diào)用),基于SOAP協(xié)議的Web 服務(wù)(Web Services),電子化業(yè)務(wù)XML(ebXML))
5、網(wǎng)頁(yè)腳本語(yǔ)言
為了提高WEB項(xiàng)目的整體性能,提高人機(jī)交互的友好界面,網(wǎng)頁(yè)的腳本語(yǔ)言是很有用處的,有的時(shí)候可以解決很大的難題或提高程序的性能和應(yīng)用性。
網(wǎng)頁(yè)腳本語(yǔ)言的執(zhí)行都是在客戶端執(zhí)行的,速度很很快,并且大多的操作與服務(wù)器沒(méi)有交互運(yùn)算,所以在一些應(yīng)用中非常理想。在設(shè)計(jì)WEB項(xiàng)目的應(yīng)用中,網(wǎng)頁(yè)的腳本語(yǔ)言起著不能忽視的作用,所以如果設(shè)計(jì)WEB項(xiàng)目的應(yīng)用中,對(duì)應(yīng)有一定的了解。
是一種基于對(duì)象(Object Based)和事件驅(qū)動(dòng)(Event Driven)并具有安全性能(Secure)的腳本語(yǔ)言。使用它的目的是與HTML超文本標(biāo)記語(yǔ)言、Java 腳本語(yǔ)言(Java小程序)一起實(shí)現(xiàn)在一個(gè)Web頁(yè)面中鏈接多個(gè)對(duì)象,與Web客戶交互作用。從而可以開發(fā)客戶端的應(yīng)用程序等。它是通過(guò)嵌入或調(diào)入在標(biāo)準(zhǔn)的HTML語(yǔ)言中實(shí)現(xiàn)的。
如何用JAVA設(shè)計(jì)一個(gè)游戲,電腦和人玩剪刀石頭布游戲,并且能顯示游戲結(jié)果?
寫了一下,結(jié)果輸出到桌面上,你把文件輸出路徑改成你的桌面路徑就可以了,不知道你要不要最終結(jié)果
代碼:
package com.hmall;
import java.io.;
import java.io.File;
import java.io.;
import java.io.;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
/**
* @ClassName Mora
* @ TODO
* @Author dell
* @Date 2021/7/1 13:03
* @Version 1.0
**/
public class Mora {
private static String calculate(String input) {
List<String> list = new ArrayList<>();
list.add("拳頭");
list.add("剪刀");
list.add("布");
Random r = new Random();
Integer random = r.nextInt(3);
String temp = list.get(random);
if (temp.equals(input)) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為平局";
} else {
if (input.equals("拳頭")) {
if (temp.equals("剪刀")) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您贏了";
} else {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您輸了";
}
} else if (input.equals("剪刀")) {
if (temp.equals("拳頭")) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您輸了";
} else {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您贏了";
}
} else if (input.equals("布")) {
if (temp.equals("拳頭")) {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您贏了";
} else {
return "您出了" + input + ",電腦出了" + temp + ",結(jié)果為您輸了";
}
} else {
return "輸入數(shù)據(jù)有誤";
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Integer count;
while (true) {
System.out.println("請(qǐng)輸入比賽場(chǎng)次(不能小于5):");
count = scanner.nextInt();
if (count >= 5) {
System.out.println("比賽開始");
break;
}
System.out.println("輸入小于5,請(qǐng)重新輸入");
}
String input;
File f = new File("C:\\Users\\dell\\Desktop\\result.txt");
try {
bw = new (new (f));
for (int i = 0; i < count; i++) {
System.out.println("請(qǐng)輸入您的選擇:");
input = scanner.next();
String result = calculate(input);
bw.write(result);
bw.newLine();
System.out.println(result);
}
bw.close();
} catch ( e) {
e.();
}
}
}
結(jié)果:
java課程設(shè)計(jì)創(chuàng)意小游戲
① 求Java課程設(shè)計(jì)—小游戲(含源代碼)
//hi./srxboys/item/
Tank——坦克大戰(zhàn)(簡(jiǎn)潔版)源代碼-------(此文檔是自己在韓順平教程總結(jié)而來(lái))
*功能:1.防止敵人的坦克重疊運(yùn)動(dòng)
*(決定把判斷是否碰撞的函數(shù)寫到EnemyTank類)
*2.可以分關(guān)
*2.1(做一個(gè)開始的Panel,它是一個(gè)空的)
*2.2開始字體閃爍
*3.可以在玩游戲的時(shí)候,暫停和繼續(xù)
*3.1當(dāng)用戶點(diǎn)擊暫停時(shí),子彈的速度和坦克速度設(shè)為0,并讓坦克的方向
*不要發(fā)生變化。
*4.可以記錄玩家的成績(jī)
*4.1用文件流的方式(小游戲)[大游戲是用的數(shù)據(jù)庫(kù)<cs,bs>結(jié)構(gòu),三國(guó)]
*4.2單寫一個(gè)記錄類,完成對(duì)玩家的記錄
*4.3先完成保存共擊毀了多少輛敵人坦克的功能
*4.4存盤退出游戲,可以記錄當(dāng)時(shí)的敵人的坦克坐標(biāo),并可以恢復(fù)
*5.java如何操作聲音文件
*/
② JAVA課程設(shè)計(jì),求個(gè)能用eclipse實(shí)現(xiàn)小游戲或小程序的源代碼。感激不盡
你自己來(lái)去下自載吧,這里面都有 //oschina/project/java
③ 用JAVA編寫一個(gè)小游戲
前天寫的猜數(shù)字游戲,yongi控制猜測(cè)次數(shù),有詳細(xì)解析,用黑窗口可以直接運(yùn)行,
我試驗(yàn)過(guò)了,沒(méi)問(wèn)題
import javax.swing.Icon;
import javax.swing.;
public class {
/**
* @param args
*/
public static void main(String[] args) {
Icon icon = null;
boolean bl = false;
int put = 0;
int c = (int) (((Math.random())*100)+1); //獲取一個(gè)1-100的隨機(jī)數(shù)
System.out.println("你獲取的隨機(jī)數(shù)是:"+c); //打印你的隨機(jī)數(shù)字
String str1 = (String) .(null,"請(qǐng)輸入你的猜測(cè)數(shù)字(1-100): ","猜數(shù)字游戲",.PLAIN_MESSAGE,icon,null,"在這輸入"); //第一次輸入你的猜測(cè)數(shù)字
if(str1==null){
.(null, "你已經(jīng)取消了本次游戲"); //如果你點(diǎn)取消那么本次游戲結(jié)束
}else{
bl = num(str1); //判斷是輸入的是不是數(shù)字或者是整數(shù)
if(true==bl){ //如果是數(shù)字的話進(jìn)入與隨機(jī)數(shù)比較的程序
System.out.println("你輸入的數(shù)字是:"+str1); //打印你輸入的數(shù)字
put = Integer.valueOf(str1);
for(int i = 4;i > 0;i--){ //i是你可以猜測(cè)的次數(shù)
if(put==c){
.(null, "恭喜你猜對(duì)了,正確答案是:"+c+"。"); //如果你猜對(duì)了就直接結(jié)束循環(huán)
break;
}else if(put>c){ //如果輸大了就讓你再次從新輸入
str1 = (String) .(null,"你的輸入過(guò)大。你還有"+i+"次機(jī)會(huì),請(qǐng)重新輸入: ","猜數(shù)字游戲",.PLAIN_MESSAGE,icon,null,"在這輸入");
if(str1==null){
.(null, "你已經(jīng)取消了本次輸入");
break;
}else{
bl =num(str1);
if(true==bl){
put = Integer.valueOf(str1);
}else{
.(null, "你的輸入不正確,請(qǐng)重新輸入");
}
}
}else if(put<c){ //如果你輸小了也讓你從新輸入
str1 = (String) .(null,"你的輸入過(guò)小。你還有"+i+"次機(jī)會(huì),請(qǐng)重新輸入: ","猜數(shù)字游戲",.PLAIN_MESSAGE,icon,null,"在這輸入");
if(str1==null){
.(null, "你已經(jīng)取消了本次輸入");
break;
}else{
bl =num(str1);
if(true==bl){
put = Integer.valueOf(str1);
}else{
.(null, "你的輸入不正確,請(qǐng)重新輸入");
}
}
}
}
}else if(bl==false){ //這個(gè) 是你第一次如果填寫的不是數(shù)字的話也會(huì)結(jié)束本次游戲
.(null, "請(qǐng)您下次按要求填寫。本次游戲結(jié)束");
}
if(true==bl && c!=put){ //如果你i次都沒(méi)猜對(duì),那么就直接告訴你這個(gè)數(shù)十什么
.(null, "很遺憾你沒(méi)能猜對(duì),這個(gè)數(shù)字是:"+c+".");
}
}
}
public static boolean num(String value){ //一個(gè)靜態(tài)方法,判斷你輸入的是不是數(shù)字
try {
Integer.parseInt(value);
return true;
} catch (Exception e) {
return false;
}
}
}
④ 用java制作一個(gè)小游戲 教學(xué)
static Scanner in =new Scanner(System.in);
public static int aaa(){
int c = 0;
while(true){
try {
if(c>999&&c<10000){
break;
}else{
// System.out.println("請(qǐng)輸入4位整數(shù)");
c= in.nextInt();
if(c>999&&c<10000){
break;
}else{
System.out.println("輸入有誤,請(qǐng)重新輸入4位整數(shù)");
}
}
} catch (Exception e) {
System.out.println("請(qǐng)輸入整數(shù)");
c= in.nextInt();
}
}
//in.close();
return c;
}
public static void cai(){
//Scanner sa =new Scanner(System.in);
int haoma=(int)(Math.random()*10000);
if(haoma<999)
{
haoma = Integer.parseInt(String.valueOf(haoma)+"0");
}
System.out.println(haoma);
System.out.println("請(qǐng)輸入一位4位整數(shù)");
int aa = 0;
while(true){
aa= aaa();
String pd=String.valueOf(aa);
if(pd.length()!=4){
aa = aaa();
}else{
break;
}
}
while(true){
if(aa==haoma){
System.out.println("你猜對(duì)了,可以去買彩票了");
}else{
System.out.println("抱歉 , 你猜錯(cuò)了");
}
System.out.println("是否繼續(xù)1繼續(xù) 其他結(jié)束");
try {
int ss = in.nextInt();
if(ss==1){
cai();
}else{
break;
}
} catch (Exception e) {
in.close();
break;
}
}
}
public static void main(String[] args) {
System.out.println("歡迎來(lái)到猜號(hào)小游戲");
cai();
System.out.println("over");
}
⑤ 想做一個(gè)java小游戲 誰(shuí)能給幾個(gè)創(chuàng)意啊 注意 是創(chuàng)意!?。。?! 不是已有的有創(chuàng)意的小游戲
比如有東西扔過(guò)來(lái),選擇吃掉或者躲開,考反應(yīng)吧。
⑥ 急求java課程設(shè)計(jì),內(nèi)容可以是小游戲的,如(迷宮,計(jì)算器,停車場(chǎng)之戀的),要能運(yùn)行,謝謝
俄羅斯方塊,貪吃蛇。推箱子。
⑦ 求JAVA期末課程設(shè)計(jì),要那種開發(fā)的小項(xiàng)目軟件??梢允窍裼浭卤灸欠N,也可以是小游戲那種。
網(wǎng)上搜不到的一般是不可共享的資源,建議去圖書館找本專門針對(duì)課程設(shè)計(jì)的書,里面的資料很豐富,你可以照著做一下,并作功能上適當(dāng)?shù)脑鰷p,這樣網(wǎng)上就很難找到了