回合rpg源碼
1. 求一個簡單RPG游戲的代碼,java編寫的
packagecom.lxi;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
publicclassRpg{
@SuppressWarnings("unchecked")
publicstaticvoidmain(String[]args)throwsException{
System.out.println("在這里輸入兩個人物進行PK,以英文逗號分隔:[BM,DH,MK]");
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Class<Person>c1;
Class<Person>c2;
try{
Stringtemp=br.readLine();
String[]str=temp.split(",");
if(str.length!=2){
thrownewException("輸入格式有誤,按默認PK");
}
c1=(Class<Person>)Class.forName("com.lxi."
+str[0].toUpperCase());
c2=(Class<Person>)Class.forName("com.lxi."
+str[1].toUpperCase());
}catch(Exceptione){
//TODOAuto-generatedcatchblock
c1=(Class<Person>)Class.forName("com.lxi.BM");
c2=(Class<Person>)Class.forName("com.lxi.DH");
}
try{
Personp1=c1.newInstance();
Personp2=c2.newInstance();
longtime=System.currentTimeMillis();
longnextTime1=(long)(time+p1.coldTime*1000);//
longnextTime2=(long)(time+p2.coldTime*1000);//發動攻擊的時間
System.out.println("---游戲開始---");
while(true){
longcurrenTime=System.currentTimeMillis();
if(nextTime1<currenTime){//時間到則發動攻擊
p1.hit(p2);
nextTime1+=p1.coldTime*1000+p1.waitTime*1000;//下次攻擊時間=冷卻時間+被暈眩時間
p1.waitTime=0;//回合結束,重置被暈眩時間為0
}
if(nextTime2<currenTime){
p2.hit(p1);
nextTime2+=p2.coldTime*1000+p2.waitTime*1000;
p2.waitTime=0;
}
}
}catch(ClassCastExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(InstantiationExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(IllegalAccessExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}
}
packagecom.lxi;
importjava.util.Random;
classBMextendsPerson{
publicBM(){
val=650;
coldTime=1.5;
fight=40;
chanceHit=3;
chanceDefense=3;
waitTime=0;
}
intcount=0;//防禦技能發動的次數
inttemp=40;//攻擊力,值同fight
booleanhitFlag=false;
booleandefenseFlag=false;
Randomrand=newRandom();
publicvoidhit(Personp){
if(rand.nextInt(10)<chanceHit){
fight=fight*2;//發動雙倍攻擊
hitFlag=true;
}
inthurt=p.defense(this);
p.val=p.val-hurt;
fight=temp;//還原為單倍攻擊
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"勝出!");
System.exit(0);
}
System.out.println(this.getClass().getSimpleName()+"攻擊"
+p.getClass().getSimpleName()+","
+this.getClass().getSimpleName()
+(this.hitFlag?"發動攻擊技能":"未發動攻擊技能")
+p.getClass().getSimpleName()
+(this.defenseFlag?"發動防禦技能":"未發動防禦技能")
+this.getClass().getSimpleName()+":"+this.val+","
+p.getClass().getSimpleName()+":"+p.val);
hitFlag=false;
defenseFlag=false;
}
publicintdefense(Personp){
if(rand.nextInt(10)<chanceDefense){
if(count!=0){
p.val=p.val-p.fight;
count++;
defenseFlag=true;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"勝出!");
System.exit(0);
}
}
}
returnp.fight;
}
}
classMKextendsPerson{
publicMK(){
val=700;
coldTime=2.5;
fight=50;
chanceDefense=6;
chanceHit=3;
waitTime=0;
}
booleanhitFlag=false;
booleandefenseFlag=false;
Randomrand=newRandom();
publicvoidhit(Personp){
if(rand.nextInt(10)<chanceHit){
p.waitTime=3;//使對方暈眩3s
hitFlag=true;
}
inthurt=p.defense(this);
p.val=p.val-hurt;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"勝出!");
System.exit(0);
}
System.out.println(this.getClass().getSimpleName()+"攻擊"
+p.getClass().getSimpleName()+","
+this.getClass().getSimpleName()
+(this.hitFlag?"發動攻擊技能":"未發動攻擊技能")
+p.getClass().getSimpleName()
+(this.defenseFlag?"發動防禦技能":"未發動防禦技能")
+this.getClass().getSimpleName()+":"+this.val+","
+p.getClass().getSimpleName()+":"+p.val);
hitFlag=false;
defenseFlag=false;
}
publicintdefense(Personp){
if(rand.nextInt(10)<chanceDefense){
defenseFlag=true;
returnp.fight/2;//防禦技能發動,傷害減半
}
returnp.fight;
}
}
packagecom.lxi;
importjava.io.BufferedReader;
importjava.io.InputStreamReader;
importjava.util.Random;
//三個人物的基類
abstractclassPerson{
intval;//生命值
doublecoldTime;//冷卻時間
intwaitTime;//暈眩時間
intfight;//攻擊力
intchanceHit;//發起主動技能的概率
intchanceDefense;//發起防禦技能的概率
abstractvoidhit(Personp);//攻擊技能
abstractintdefense(Personp);//防禦技能,返回被傷害點數
}
classDHextendsPerson{
publicDH(){
val=600;
coldTime=1.0;
fight=30;
chanceHit=3;//表示30%的概率
chanceDefense=3;
waitTime=0;
}
Randomrand=newRandom();
booleanhitFlag=false;//主動技能發動的標識
booleandefenseFlag=false;//防禦技能發動的標識
publicvoidhit(Personp){
if(rand.nextInt(10)<chanceHit){//發動主動技能
inthurt=p.defense(this);
p.val=p.val-hurt;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"勝出!");
System.exit(0);
}
val=val+hurt;
if(val>600)
val=600;
hitFlag=true;//標記主動技能已經發動
}else{//進行普通攻擊
inthurt=p.defense(this);
p.val=p.val-hurt;
if(p.val<=0){
System.out.println(this.getClass().getSimpleName()+"勝出!");
System.exit(0);
}
}
System.out.println(this.getClass().getSimpleName()+"攻擊"
+p.getClass().getSimpleName()+","
+this.getClass().getSimpleName()
+(this.hitFlag?"發動攻擊技能":"未發動攻擊技能")
+p.getClass().getSimpleName()
+(this.defenseFlag?"發動防禦技能":"未發動防禦技能")
+this.getClass().getSimpleName()+":"+this.val+","
+p.getClass().getSimpleName()+":"+p.val);
hitFlag=false;//
defenseFlag=false;//重置標記,下次重用
}
publicintdefense(Personp){
if(rand.nextInt(10)<chanceDefense){
defenseFlag=true;//標記防禦技能已經發動
return0;
}else{
returnp.fight;
}
}
}
2. 請問下載到的rpg游戲C++源碼怎麼使用
要看你下載的游戲是用什麼結構開發的了。如果缺少的是d開頭的頭文件,一般是用DirectX框架開發的游戲。目前大部分的C++ rpg都是用這個開發的。比如ddraw,dmusic這樣的頭文件,都是屬於directx的。如果你缺少的是這些的話,去下載DirectX_SDK_library_include,一般一些提供源碼資源的網站會有,下載回來的壓縮包中會有許多.h文件和lib文件。把這些文件解壓出來,分別復制到你的VC目錄下的Lib和include文件夾中。這時候再編譯你的游戲dsw工程文件,應該就可以了。
另外,VS2008中會缺少一些VC6有的library和.h文件,如果你要在VS下運行,就需要從VC6的include和library中找到並復制到VS的相應目錄下。個人認為你可以把所有的VC6的這些文件移動過去,以防止以後不時出現的問題。
如果你的頭文件都沒有包含在裡面,可能用到了其他開發框架,建議你用頭文件的名字搜索一下,下載到頭文件包含到VC或VS的安裝目錄中去。
希望能幫到你。
3. 求rpg maker xp游戲源碼
1234來鵬鳥……你太無恥了吧……
4. 請問下載到的rpg游戲C++源碼怎麼使用
編譯的話,用VC或VS打開源代碼所在目錄的dsw文件,這個文件是工程文件。如果是VC,直接從Source目錄隨便選擇一個cpp編譯即可。如果是VS,那麼你打開這個工程文件之後,直接點擊菜單欄的啟動調試就可以了。
找不到頭文件可能是沒安裝相應的Library和include。如果缺少d開頭的頭文件,一般是用DirectX框架開發的游戲。目前大部分的C++ rpg都是用這個開發的。比如ddraw,dmusic這樣的頭文件,都是屬於directx的。如果你缺少的是這些的話,去下載DirectX_SDK_library_include,一般一些提供源碼資源的網站會有,下載回來的壓縮包中會有許多.h文件和lib文件。把這些文件解壓出來,分別復制到你的VC目錄下的Lib和include文件夾中。這時候再編譯你的游戲dsw工程文件,應該就可以了。
另外,VS2008中會缺少一些VC6有的library和.h文件,如果你要在VS下運行,就需要從VC6的include和library中找到並復制到VS的相應目錄下。個人認為你可以把所有的VC6的這些文件移動過去,以防止以後不時出現的問題。
如果你的頭文件都沒有包含在裡面,可能用到了其他開發框架,建議你用頭文件的名字搜索一下,下載到頭文件包含到VC或VS的安裝目錄中去。
Link錯誤就比較多了,要看具體情況。
希望能幫到你。
5. 什麼是J2me的RPG類的小游戲呢
J2me是JAVA語言的一部分,它針對於無線小型機器(例如手機,尋呼機,機頂盒等)軟體的開發,由於這些機器的內存處理器等性能的限制J2ME是功能也相對比較小,因此它還被稱為微型版JAVA。RPG類游戲也是角色扮演類游戲。所以J2me的RPG類的小游戲也就是用J2ME語言開發的角色扮演類游戲。要學習J2ME的游戲開發首先要學java基礎,也就是J2SE部分的內容,這部分的內容的書最多,比如《java輕松入門》等書。學完了基礎就開始學習J2ME了,首先學一下環境的配置,不配置環境肯定不能進行相關的開發,然後學一下低級繪制部分,也就是通過畫筆繪制的東西,然後是按鍵響應,然後是線程(游戲動起來靠它),然後學一下精靈(Sprite)和地圖(TiledLayer)這樣基本上就可以進行游戲的開發了。
另外你可以在網上下載好多的J2ME開發教程視頻,對你的學習會很有幫助。
我也是J2ME的一名教師,對於J2ME的授教也有些經驗。聽我的沒錯。
6. 哪位大神給個2d rpg斜角網路游戲的源代碼,謝謝!
《問道外傳》是2011年伊始,《問道》原班人馬耗巨資傾力打造的回合制大作。本游戲是以封神修真為背景,除了關注玩家體驗及保留了《問道》的出色玩法外,更注重畫面絢麗感,並增加了很多《問道》中所沒有的特色系統。
7. 請求iOs與Android中Quiz RPG游戲的源代碼
我表示安卓無能為力~IOS的話倒是可以找找~是cocos2d框架麽?
8. 推薦一些好玩的回合制RPG游戲,最少3個,流程最好比較長的,類似《東方年代記》,要中文的,謝了。
一.軒轅劍系列
軒轅劍外傳—楓之舞
楓之舞是軒轅劍系列中的經典之作,盡管年因為年代原因,接觸過它的人並不多。
游戲引入了「機關人」的概念,這在當時來說是十分經典的,看著一個不會說話,傻傻的,還要憑特殊法術才能加血的角色確實別有一番風味(最後更直接將壺中仙的頭移植了上去)。同時,游戲將時間定在了戰國初期,將歷史與游戲結合起來,使得大量的歷史人物都出現在了游戲中,而這一點也成為了軒轅劍的特色,除了軒轅劍5以外,每一代都與歷史掛鉤。
游戲的畫面在當時來說是十分出色的,維美的水墨山水畫刻畫出了一個旌旗飄揚的戰國時代。而延續了很多代的煉妖壺系統也在楓之舞中進一步完善。最後,不管是疾鵬大王,還是DOMO工作室的出色,都為游戲增添了很多樂趣。
可以說,楓之舞是一款優秀的國產RPG,只可惜在這一年,出現了一個比它更優秀的游戲,完全掩蓋了楓之舞的光芒。
軒轅劍3—雲和山的彼端
雲和山,真的很出色,要不是最後在劇情上的一些瑕疵,它的成就一定比天之痕更出色。
游戲的畫面在當時來說相當不錯,雖然戰斗沒有採用斜45度的戰斗畫面,但極劇魄力的戰斗畫面依然讓人熱血沸騰。而充滿地方特色的背景也讓人耳目一新。
游戲的音樂自不必說,軒轅劍系列從沒有在音樂上讓我失望過。同時,游戲中設立了大量的支線劇情,比如DOMO簽名版的收集,兩大隱藏BOSS蚩尤和牛魔王的出現方式,都大大增添了游戲的樂趣。
軒轅劍3的劇情是以賽特尋找戰爭不敗之法開始的,歷經威尼斯,阿拉伯,最後來到了中國,可以說是相當的大氣,其中不乏很多感人的場面(比如說慧彥大師的死),但我認為游戲最後在大唐刻畫的筆墨明顯少了些,給人一種虎頭蛇尾的感覺。
不管怎麼說,雲和山的完成度都是相當高的,不過有介於軒轅劍系列一向外傳強於正傳的「傳統」,它的影響力還是比不上天之痕。
軒轅劍3外傳—天之痕
天之痕之後,再無天之痕
無可否認,作為軒轅劍歷史上最為出色的作品(至少在大多數人眼中都是如此)。它無愧於國產RPG歷史上的里程碑。
相比於雲和山,游戲的畫面並沒有什麼太大的變化,甚至很多怪物,場景和法術的畫面都與正傳是重復的,但這依然改變不了它的經典地位,因為它那極其出色的劇情和音樂。
一款RPG,若要出色,好的音樂必不可少,結合著故事情節的發展,或緊或抒的音樂將氣氛渲染的十分到家,而最後的「如憶玉兒曲」,更是將這一點發揮到了極至。
而游戲最為出色的,便是它那極其出色的劇情。無論是玉兒為信守諾言而毀容,還是宇文太師和獨孤君主在劇情末端的正邪互換,都讓人印象深刻,同時,游戲還設定了上古十大神器的世界觀。比劇情更出色的,是游戲的人物刻畫,小雪,玉兒,獨孤寧珂,宇文師太這等一系列出色的人物塑造正是天之痕出色的地方。
有別於一般RPG的「後宮」結局和「完美」結局,天之痕的兩個結局中,沒有一個是完美的。無論是小雪重新變回為女媧石,還是玉兒犧牲自己的轉世陽壽來向陳靖仇道別,都讓人心痛不以。相對來說,我覺得玉兒結局還不算太殘,畢竟陳靖仇最後還記得小雪,而小雪結局,因為失卻之陣的影響,陳完全忘記了玉兒,而玉兒的每次轉世,也只能獲得短盞的生命時光,我覺得,對於雙方來說,都太殘酷了些。
天之痕的隱藏因素同樣豐富,3大隱藏BOSS的設定,尋找DOMO成員的任務,都增添了游戲的可玩性。
天之痕,無愧於國產RPG的經典之作。
軒轅劍4
DOMO在軒轅劍4身上,做了很多嘗試,盡管其中的有些嘗試,並沒有獲得玩家的認可。
作為雙劍系列的第一款3D游戲,軒4的畫面在當時引起了極大的爭議。畢竟,大宇當時的3D技術還很不成熟,還顯得很稚嫩。放棄自己出色的2D引擎,而嘗試用3D技術,特別是在軒轅劍這種大作中嘗試,很多玩家都認為是不明智的。
同時,游戲中徹底取消了煉妖壺系統,而改用了天書系統。至少我認為,天書系統比煉妖壺系統來得更出色,畢竟能自己建造房子,自己鍛煉武器,防具比單純的煉妖更有可玩性。
關於游戲的劇情,可以說是仁者見仁,智者見智了。至少我認為這次的劇情對於玩過楓之舞的我來說還是很有共鳴的。不過,游戲在人物刻畫方面還是有些不足的,特別是張良這個角色,給我的印象不深。
軒4,總的來說,還是不錯的。
軒轅劍外傳—蒼之濤
相比與軒轅劍4正傳,蒼之濤無論是在各個方面都比軒4正傳強上了許多。
首先是游戲的畫面,雖然游戲的引擎每變,但800*600的畫面無疑使游戲的畫面強上了許多,而在游戲的動畫方面,除了製作精良的開場動畫,游戲的過場動畫也相當不錯,可看性不錯。不過,游戲的背景顯得比較單調,特別是在雲夢大澤這一場景上,體現的更為明顯。
在系統上,蒼之濤除了保持了天書系統以外,還加入了木甲術的設定,使得雲狐擁有自己獨特的木甲機關方式和升級系統,讓人耳目一新。
蒼之濤最大的亮點便是它的劇情。這一次的劇情,不僅非常出色,更是極其復雜。游戲講述了一個跨越千年的時空輪回的故事,因為時空穿越改變了歷史規律從而引出了兩個並行的時空,雖然說穿越時空的劇情在RPG中屢見不鮮,不過像蒼之濤那樣「多組人馬穿越到同一個時代」的劇情還是很少見的,而且游戲的伏筆埋的非常出色,只有在游戲的末期才能明白整個故事情節。
在人物刻畫上,蒼之濤在幾個主要角色上花了相當大的筆墨。特別是恆遠之,刻畫的相當出色,雖然他最後為了能讓自己的國家在淝水之戰時戰勝秦國而在太一之輪前殺害了車芸,但他的一生,其實都是在夾縫中生存,而他最後為殺害車芸所付出的代價,也讓人無法痛恨這個角色。
總之,我對蒼之濤的評價,還是相當高的。
軒轅劍5
說實在的,我並不太喜歡軒轅劍5,雖然說游戲的3D畫面有了很大的提高,但游戲的某些設定卻並不十分和我的口味。
首先游戲的人物太多,但很多人物的個性都不鮮明,有些隊友都沒有什麼台詞。我一直覺得,RPG不是戰旗,游戲中的人物不應太多,因為在RPG的戰場上,能上場的人物並不多,除非像空之軌跡或群俠傳這樣以戰旗為戰斗方式的RPG游戲,或者像新絕代雙驕3這種雙線並進的游戲方式,純RPG中的人物不應太多。
游戲的劇情相比於前幾代遜色不少,以山海界為背景感覺明顯比以歷史為背景少了一份滄桑感,雖然說總體來說不錯,但對於軒轅劍系列來說明顯是不合格的。
天書系統的取消也讓游戲失色不少,好在游戲的隱藏要素不少,28顆星耀石的收集或多或少增加了游戲的可玩性,畢竟普通結局感覺太一般了。
軒5,總的感覺,不太好。
軒轅劍外傳—漢之雲
而漢之雲給我的感覺,明顯比軒5好了許多,游戲背景設定在三國是一個原因,另一方面,游戲本身確實做了比較大的改動,
煉妖壺又回來了,同時還增加了鍛造的功能,雖然說我更喜歡天書系統。
戰斗系統相比於5代有了一定的改善,雖然能加入的人物還是很多,但在個性的塑造上明顯比5代好上許多,不像5代那樣很多人都沒有什麼個性。
劇情方面,這次以三國為背景是一個很大的嘗試,對孔明的塑造更是十分大膽,不過按照三國志正史來說也不為過。
過場動畫的全程語音我覺得是一個敗筆,總覺得聽上去怪怪的,個人感覺沒有語音會更好些。
游戲的支線也設計的不錯,畢竟這一直是軒轅劍系列的特點。
總的來說,漢之雲,還是不錯的。
二.仙劍系列
1.仙劍奇俠傳1
如果說仙劍1是國產RPG中的里程碑,我相信,沒有多少人會反對。
游戲的畫面在當時來說是異常出色的,特別是戰斗畫面,不僅擁有出色的施法畫面,斜45度角的戰斗方式影響了後來的很多RPG游戲,可謂意義深遠。
仙劍最成功的,便是游戲的音樂和劇情。在音樂上。一曲「蝶戀」不知讓多少人為之痴狂。而劇情上,無論是彩依為換劉晉元十年生命而犧牲自己的千年道行,還是月如捨身營救逍遙和靈兒,都讓人難以忘懷。游戲的最後,趙林兒為拯救天下蒼生而與水魔獸和拜月的合體同歸於盡,更是國產RPG歷史上的經典畫面。
有人說,仙劍的成功,時代佔了很大的因素,確實,在那個電腦游戲剛剛普及的年代,仙劍讓人們意識到了什麼才是真正的武俠RPG.,但是,如果沒有那麼極其優秀的品質,它也成為不了經典。
仙劍的大獲成功,可以說讓狂徒自己也為之驚訝。因此,在接下來的幾年裡,仙劍1推出了很多復刻之作,比如說著名的98柔情篇和新仙劍奇俠傳系列,但玩家真正期待的,還是仙劍的續作。
2.仙劍奇俠傳2
作一款成功游戲的續作是十分困難的,而作仙劍這種異常成功的游戲的續作,更是難上加難。
8年了,玩家們等待了太長的時間。因此當仙劍2一發售,立刻引起了夠買狂潮。作為第一批拿到仙劍2的玩家,當時我的心情是十分高興的,可這種心情沒過多久,便被第一個難關給難住了—防拷。
我記得當時有很多人和我一樣,買了正版卻死活也進不去,後來雖然在官方給的序列好的情況下成功進入了游戲,但無疑游戲的心情已經被破壞了。
短,是仙劍2給我的第一個印象,支線劇情不夠豐富,主線劇情草草了事,很多可以大做文章的地方卻點到為止。同時,對於重要角色的刻畫上也不突出。
游戲在系統上,提供了虎煞、御靈、陣術、喂毒四大系統。其中,虎煞和喂毒在實際戰斗中作用並不是很大,完全無法與御靈和陣術相比。
游戲的畫面在當時也不出色,戰斗時的施法畫面也顯得不夠火爆,好在游戲的音樂還是十分出色的。
仙劍2,帶來的更多的是一種遺憾。
3.仙劍奇俠傳三&外傳問情篇
相比於仙劍2,仙劍3還是相當出色的,雖然與仙劍1相比,還是有不少差距的。
首先,在仙劍3中,提到了「六界」的系列,這也為仙劍系列第一次樹立了自己的世界觀。同時,魔劍養成這一系統也十分出色,雖然說最後培養出來的魔劍各種數值並不出色,但卻增添了不少樂趣。
仙劍3最大的改變在於畫面和戰斗系統上。全3D的游戲畫面相比軒轅劍4有了很大的提高。而在戰斗系統上,仙3可謂獨數一格,操作好的話,還可以使怪物的攻擊砍空。
劇情方面,雖然沒達到1代的高度,但總體來說還是不錯的,也塑造了重樓等一系列人氣化的角色,可謂不過不失。
至於問情篇給人的感覺更像是一款資料片,雖然說游戲的劇情不錯。但音樂,音效和一些細節方面並沒有太大的改變等,倒是迷宮強化了不少,也因此有人將問情篇戲稱為「問路篇」
4.仙劍奇俠傳4
仙劍的各個續作中,我認為,仙劍4最出色。
仙劍4剛一出來時,由於防拷系統的原因,很多人運行游戲的速度奇慢無比,好在大宇馬上發布了一個補丁解決了這個問題,才沒有在玩家中引起進一波的爭論。
拋開這個因素不談,游戲整體的品質相當出色,其中給我最深刻的,還是它的劇情以及主要角色的人物刻畫,其中有些對白潤色的相當出色。比如雲天青所說的「死生在手,變化由心,天不能埋,地不能煞,此之為我命在我也……」這句話就顯得相當具有哲理。而送弓的那段劇情,更是讓人難以忘懷。
游戲的畫面可以說並不出彩,各種法術的施法畫面也並不出色,不過以上海軟星這么點資金來說,能做到這樣已經相當不錯了。
仙4的一大創新,就是在戰斗中加入了戰斗評價這一要素,若能在BOSS戰中拿到特等評價,不僅可以獲得大量的經驗值,也能得到不少稀有的道具。
可惜的是,雖然游戲品質相當出色,可製作公司上海軟星卻在游戲出品後不久宣布解散,不得不讓人為之嘆息。
三.天地劫系列
1.幽城幻劍錄
如果要說我心中劇情最出色的國產RPG,我肯定會選擇幽城幻劍錄(沒有之一)。
自從炎龍騎士團2開始,我便迷上了漢堂的游戲。雖然說漢堂出品的游戲難度很高,但大量的隱藏要素,出色的劇情設計卻讓人樂此不彼,而幽城更是將這一點發揮到了及至。
幽城的難度,真的很難。第一便玩時,手上沒有攻略,我硬是硬著頭皮打出了bad end。其中高昌地底迷宮和七耀之門的迷題給我留下了深刻的印象。後來在攻略的幫助下我打出了true end。不過,惡夢並沒有結束,當我好不容易安裝了資料片上了羅喉城,快要面對羅喉神的時候,那個封印天動儀的迷題真的讓我崩潰了,要不是後來上網知道了解決迷題的方法,我真的想要砸電腦了。
盡管如此,幽城在各方面都相當出色。首先在畫面上,游戲的戰斗畫面可謂魄力十足,初級絕招就有十分出色的畫面,而當學會了終極絕招後,那種畫面更不是用震撼兩字可以形容的。可以說,游戲的戰斗畫面,完全超出了同時期的其它國產RPG。而在非戰斗畫面上,西域的場景也顯得別有一番風味。
幽城在系統上,改進了神魔的五蘊和煉化兩大系統。以前在神魔中,如果五蘊分配不合理,即使99級也有可能學不到本身20級就能學會的技能。而在幽城中,即使五蘊分配未達到要求,只要達到游戲所設定的最高等級,一樣可以學會,雖然說越高級的絕招這個最高等級越高,但總解決了神魔中應分配不合理而造成的高等級用普通攻擊的尷尬,而在煉化上,不僅大部分終極武器的獲取需要煉化才能得到,達成真結局所需要的七色纓絡也必須經過煉化這一道路。
幽城真正出色的是它的劇情。玩通幽城的人,沒有一個不被它的劇情所感動。在這里要點名批評一下那3個連名字也沒有的時輪尊者(彌爾蘭巴還是算了),要不是你們的膽怯,冰漓不會成為羅喉的憑體,一切悲劇也都不會發生。
因為難度和宣傳的原因,幽城在國內的影響力無法與仙劍和軒轅劍相比,盡管如此,它仍然稱的上國產RPG中的巔峰之作。如果你熱愛RPG,你一定要玩幽城。
2.寰神結
漢堂在製作寰神結時,很明顯,心思已經放到網游上面去了。因此,寰神結帶給我的,更多的是一種失望。
重復的法術,重復的場景,熟悉的敵人。這些我都可以接受,因為對於一款外傳性質的游戲來說,並不要在這方面改動太多,真正讓我不滿的,是游戲的隱藏要素和劇情。
相比於漢堂其它游戲豐富的隱藏要素,寰神結的隱藏要素少的可憐,除了200塊帝國以外就沒有別的隱藏要素了。在天地劫前兩部中起重要作用的七色纓絡到了寰神結中也只是一個普通的物品,不免讓人失望。
而游戲的劇情到了寰神九山後便嘎然而止,趕工的跡象明顯,周崇,朱浩如何殺朧夜的劇情也沒有進一步交代。
其實寰神結能作的很好,只是漢堂的重心已經不在單機上了……
四.新絕代雙驕系列
1.新絕代雙驕1和2
第一次接觸宇峻的游戲,是從超時空英雄傳說開始的,而新絕代雙驕系列,則讓我真正喜歡上了這個公司,
游戲的畫面在當時可以說是華麗至極,其中流動的水、燃燒的火焰等動態物件給我留下了深刻的印象。游戲的戰斗畫面也相當華麗,絕招使用起來魄力十足。
從新絕代雙驕開始,凡宇峻出品的RPG,都會有精元點數這一設計。在戰斗取得勝利後,除了能獲得相應的經驗值,還能得到一定的精元點數,這些點數可以加在各種絕招上增強絕招的威力。這一系統影響了宇峻後來的許多RPG游戲,一直到幻想三國志3才完全去除。
由於1,2的劇情改編於古龍名著,所以說是否宗實於原著便是一大問題,在這一點上新絕代雙驕1和2總的來說還算可以,只是2代為增加可玩性創造了多結局的設定,而其中像花無缺與憐星這樣的結局無疑讓人狂汗不已。
2. 新絕代雙驕3
由於1,2已經將古龍原版的劇情講述完畢,所以說3代的劇情,自然而然的就走起了自創劇情的套路,事實證明,這部棋走的相當不錯。
由於採用了雙線同時進行的方式,因此盡管在游戲最後會有大量的人物加入隊伍中來,但每個人的性格都在各自的線中花了不少筆墨來刻畫,並不存在因人物太多而產生的刻畫不鮮明的缺點。
有別於新絕代雙驕1,2,3在戰斗畫面上第一次採用了斜45度角的戰斗方式,而這種方式明顯使得游戲的絕招施展起來更具觀賞性。因此,這一戰斗方式也被宇峻所採納,沿用至今。
游戲在系統上也有自己的特點,比如寵物的培養系統、拜師系統等,增加了游戲的可玩性。
可惜的是,多年後的新絕代雙驕前傳我由於各種原因沒有玩到,因此,絕3成為了我對這一系列的最後的回憶了。
五.幻想三國志系列
宇峻自新絕代雙驕3取得成功後,變走上了原創劇情的道路,幻想三國志系列便因此產生。
幻想三國志的首代,給我留下最深的是它首創的大規模戰斗系統,一般的RPG當中,敵人的人數不會超過6個,而在幻想三國志中,由於游戲方式的改變,大規模的軍團戰 首次在RPG中成為了可能,也因此,游戲中加入了陣型的要素,一個好的陣型,往往在軍團戰和BOSS戰中,能起到至關重要的作用。
幻想三國志首代的劇情雖然不錯,但並沒有給我留下太過深刻的印象,真正讓我感動的,是2代與4代的劇情。
2代讓我感動的是其中的愛情,其中海棠在黃泉路上喝下孟婆湯的場景更是游戲中最為經典的畫面,讓人久久難以忘懷。
4代讓我感動的是其中的友情和親情。劉緒這一角色我開始是十分討厭的,可他最後為保全紫丞所作出的抉擇實在是令人感動不已。而樓澈這一角色刻畫的更加成功,友情這兩字,在他與紫丞兩人間得到了升華。
而3代的劇情卻沒給我留下太多的印象,也許是因為我只玩了男主角劇情的關系吧。不過3代的戰斗隱藏任務讓人印象深刻,雖然說因為卡的原因或多或少的破壞了游戲的樂趣,但這非常具有可玩性的系統卻是3代為數不多的亮點之一,並在4代當中發揚光大。
六.群俠傳系列
1.金庸群俠傳
金庸群俠傳是一款很特別的游戲,因此有必要把它單獨列出來。
金庸群俠傳最大的特點,便是其及高的自由度。剛開始游戲時,我甚至都不會玩,因為游戲的自由度實在是太高了!游戲沒有固定的主線,不僅在14天書的收集上沒有任何順序,在武功的學習和夥伴的選擇上,除了特殊的幾個有些要求外,其它的一點限制也沒有,你想怎麼玩就怎麼玩。
游戲的戰斗方式十分獨特,在當時國產RPG清一色效仿仙劍斜45度角的戰斗方式的時候,金庸群俠傳卻採用了一種戰旗游戲的戰斗方式,另闢新徑,結果大受好評。
不過,游戲的缺點也十分明顯。首先是游戲的畫面,即使在當時的眼光來看畫面也不甚理想。其次,高自由度可以說是一把雙刃劍,雖然極大的增加了游戲的可玩性,卻使得游戲的劇情比較散亂,沒有一個軸心骨。
不管怎樣,金庸群俠傳都是十分出色的,也正是因為它的出色,才誕生了更為出色的武林群俠傳。
2.武林群俠傳
武林群俠傳,一個復雜的游戲,也正是因為游戲的復雜,才造就了它的出色。
當第一眼看到角色的屬性的時候,我便嚇了一大跳,游戲中主角的屬性主要分為武學及技藝兩部分,其中武學包括了心法、身法、劍法、刀法、棍法、拳掌、指法、腿法、暗器、奇門兵器10種;技藝則包括了音樂、下棋、書法、繪畫、醫術、毒術、鐵匠、鑒定、釣魚、打獵、花卉、茶道、飲酒、廚藝14種;在我玩過的RPG中,這么復雜的設定還是第一次。
相比於金庸群俠傳,武林群俠傳的自由度更是有過之而無不及。一開始的洛陽城裡,便可按照自己的喜好來自由行動,而隨著劇情的發展,游戲的類型也發生了改變,逍遙谷醫治的那段使得游戲變成了類似養成游戲的類型,最後拜無瑕子為師後,更是將養成與角色扮演游戲相結合。這么大膽的設定,在我玩過的武俠RPG中,除了武林群俠傳,找不出第二個。
綜上,武林群俠傳是一款耐玩度和重玩性及高的游戲,每一遍游戲都會給你帶來不一樣的感受。
3.三國群俠傳
也許是武林群俠傳太出色了,因此我對這游戲的期望值很高。雖然游戲沒有達到我所期待的那個高度,但大量的支線劇情,精緻的畫面等因素使得該作並沒有丟群俠傳系列的臉面。總體來說製作精良。
七.風雲系列
當我第一眼看到「風雲之天下會」的價格的時候,我簡直不敢相信自己的眼睛。在當時,盜版片都要賣10塊一張的時候,和軟體與光碟捆綁銷售的風雲之天下會居然只要買25元,實在是令人驚訝。
游戲的品質屬於上乘之作,特別是游戲的戰斗畫面,放在當時顯得相當出色。不過,游戲的迷宮就顯得比較變態了,特別是那個百人殺陣,印象太深刻了!
多年後的風雲2之七武器由於換了製作公司而使得經典不在,糟糕的游戲系統令人無法承受,完全毀掉了一代創下的牌子,讓我感覺很失望。
八.劍俠情緣系列
作為一款經典的國產武俠RPG系列,劍俠情緣的成功,更多的是靠作為ARPG的二代和其外傳月影傳說,當然,作為純RPG的一代,也有著自己的亮點。
雖然說游戲的畫面和劇情算不上出色,但游戲的音樂卻十分出色,讓人聽後難以忘懷。同時,游戲還採用了多結局的設置,這在當時是十分少見的。
九.劍靈系列
劍靈1的廣告,可以說做的十分出色,當時買的每本游戲雜志,都會有它的身影。可真正玩起來,那又是另一回事了。
雖然游戲的畫面不錯,可游戲的BUG實在是太多,讓人一邊玩一邊惱火,雖然說最後還是玩通了,但已經積攢了一肚子的火氣。
至於劍靈2,不提也罷。
十.不成系列的經典
1.天河傳說
天河傳說真的是一款好游戲,特別是游戲的劇情,在國產RPG中絕對可以排上前幾名,可惜游戲的宣傳力度不夠,致使這么出色的一個游戲被埋沒了。
2.天龍八部(2002年版)
在智觀出品的眾多RPG中,天龍八部算是相當出色的一個。高自由度,多結局等都是游戲的特色,只可惜游戲對於練級的要求過高,特別是一開始的場景,不升幾級的話會很慘。
3.浣花洗劍錄
浣花洗劍錄的出色,在於它的戰斗系統。
浣花洗劍錄中的絕招,每一招都上,中,下三個環節,而在出招的時候,比如你出招是上中,他出的是下中,那麼上克下,你剛好克掉他的招,就可以出招了,因為這一點,使得游戲的戰斗系統,即不枯燥,又非常好玩。
4.新蜀山劍俠傳
十分具有想法的游戲,它的戰斗方式很新穎,採用的是一種「御劍」的方式,只可惜那年比它優秀的武俠RPG太多了
如果滿意的話,求採納,求懸賞,謝謝。
9. 求java rpg小游戲源代碼 最好是文字rpg 不需要很復雜 只是交作業用
連連看的小源碼
package Lianliankan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class lianliankan implements ActionListener
{
JFrame mainFrame; //主面板
Container thisContainer;
JPanel centerPanel,southPanel,northPanel; //子面板
JButton diamondsButton[][] = new JButton[6][5];//游戲按鈕數組
JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕
JLabel fractionLable=new JLabel("0"); //分數標簽
JButton firstButton,secondButton; //分別記錄兩次被選中的按鈕
int grid[][] = new int[8][7];//儲存游戲按鈕位置
static boolean pressInformation=false; //判斷是否有按鈕被選中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標
int i,j,k,n;//消除方法控制
public void init(){
mainFrame=new JFrame("JKJ連連看");
thisContainer = mainFrame.getContentPane();
thisContainer.setLayout(new BorderLayout());
centerPanel=new JPanel();
southPanel=new JPanel();
northPanel=new JPanel();
thisContainer.add(centerPanel,"Center");
thisContainer.add(southPanel,"South");
thisContainer.add(northPanel,"North");
centerPanel.setLayout(new GridLayout(6,5));
for(int cols = 0;cols < 6;cols++){
for(int rows = 0;rows < 5;rows++ ){
diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1]));
diamondsButton[cols][rows].addActionListener(this);
centerPanel.add(diamondsButton[cols][rows]);
}
}
exitButton=new JButton("退出");
exitButton.addActionListener(this);
resetButton=new JButton("重列");
resetButton.addActionListener(this);
newlyButton=new JButton("再來一局");
newlyButton.addActionListener(this);
southPanel.add(exitButton);
southPanel.add(resetButton);
southPanel.add(newlyButton);
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())));
northPanel.add(fractionLable);
mainFrame.setBounds(280,100,500,450);
mainFrame.setVisible(true);
}
public void randomBuild() {
int randoms,cols,rows;
for(int twins=1;twins<=15;twins++) {
randoms=(int)(Math.random()*25+1);
for(int alike=1;alike<=2;alike++) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=randoms;
}
}
}
public void fraction(){
fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100));
}
public void reload() {
int save[] = new int[30];
int n=0,cols,rows;
int grid[][]= new int[8][7];
for(int i=0;i<=6;i++) {
for(int j=0;j<=5;j++) {
if(this.grid[i][j]!=0) {
save[n]=this.grid[i][j];
n++;
}
}
}
n=n-1;
this.grid=grid;
while(n>=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
while(grid[cols][rows]!=0) {
cols=(int)(Math.random()*6+1);
rows=(int)(Math.random()*5+1);
}
this.grid[cols][rows]=save[n];
n--;
}
mainFrame.setVisible(false);
pressInformation=false; //這里一定要將按鈕點擊信息歸為初始
init();
for(int i = 0;i < 6;i++){
for(int j = 0;j < 5;j++ ){
if(grid[i+1][j+1]==0)
diamondsButton[i][j].setVisible(false);
}
}
}
public void estimateEven(int placeX,int placeY,JButton bz) {
if(pressInformation==false) {
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
pressInformation=true;
}
else {
x0=x;
y0=y;
fristMsg=secondMsg;
firstButton=secondButton;
x=placeX;
y=placeY;
secondMsg=grid[x][y];
secondButton=bz;
if(fristMsg==secondMsg && secondButton!=firstButton){
xiao();
}
}
}
public void xiao() { //相同的情況下能不能消去。仔細分析,不一條條注釋
if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判斷是否相鄰
remove();
}
else{
for (j=0;j<7;j++ ) {
if (grid[x0][j]==0){ //判斷第一個按鈕同行哪個按鈕為空
if (y>j) { //如果第二個按鈕的Y坐標大於空按鈕的Y坐標說明第一按鈕在第二按鈕左邊
for (i=y-1;i>=j;i-- ){ //判斷第二按鈕左側直到第一按鈕中間有沒有按鈕
if (grid[x][i]!=0) {
k=0;
break;
}
else{ k=1; } //K=1說明通過了第一次驗證
}
if (k==1) {
linePassOne();
}
}
if (y<j){ //如果第二個按鈕的Y坐標小於空按鈕的Y坐標說明第一按鈕在第二按鈕右邊
for (i=y+1;i<=j ;i++ ){ //判斷第二按鈕左側直到第一按鈕中間有沒有按鈕
if (grid[x][i]!=0){
k=0;
break;
}
else { k=1; }
}
if (k==1){
linePassOne();
}
}
if (y==j ) {
linePassOne();
}
}
if (k==2) {
if (x0==x) {
remove();
}
if (x0<x) {
for (n=x0;n<=x-1;n++ ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 && n==x-1) {
remove();
}
}
}
if (x0>x) {
for (n=x0;n>=x+1 ;n-- ) {
if (grid[n][j]!=0) {
k=0;
break;
}
if(grid[n][j]==0 && n==x+1) {
remove();
}
}
}
}
}
for (i=0;i<8;i++ ) { //列
if (grid[i][y0]==0) {
if (x>i) {
for (j=x-1;j>=i ;j-- ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (x<i) {
for (j=x+1;j<=i;j++ ) {
if (grid[j][y]!=0) {
k=0;
break;
}
else { k=1; }
}
if (k==1) {
rowPassOne();
}
}
if (x==i) {
rowPassOne();
}
}
if (k==2){
if (y0==y) {
remove();
}
if (y0<y) {
for (n=y0;n<=y-1 ;n++ ) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 && n==y-1) {
remove();
}
}
}
if (y0>y) {
for (n=y0;n>=y+1 ;n--) {
if (grid[i][n]!=0) {
k=0;
break;
}
if(grid[i][n]==0 && n==y+1) {
remove();
}
}
}
}
}
}
}
public void linePassOne(){
if (y0>j){ //第一按鈕同行空按鈕在左邊
for (i=y0-1;i>=j ;i-- ){ //判斷第一按鈕同左側空按鈕之間有沒按鈕
if (grid[x0][i]!=0) {
k=0;
break;
}
else { k=2; } //K=2說明通過了第二次驗證
}
}
if (y0<j){ //第一按鈕同行空按鈕在與第二按鈕之間
for (i=y0+1;i<=j ;i++){
if (grid[x0][i]!=0) {
k=0;
break;
}
else{ k=2; }
}
}
}
public void rowPassOne(){
if (x0>i) {
for (j=x0-1;j>=i ;j-- ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
if (x0<i) {
for (j=x0+1;j<=i ;j++ ) {
if (grid[j][y0]!=0) {
k=0;
break;
}
else { k=2; }
}
}
}
public void remove(){
firstButton.setVisible(false);
secondButton.setVisible(false);
fraction();
pressInformation=false;
k=0;
grid[x0][y0]=0;
grid[x][y]=0;
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==newlyButton){
int grid[][] = new int[8][7];
this.grid = grid;
randomBuild();
mainFrame.setVisible(false);
pressInformation=false;
init();
}
if(e.getSource()==exitButton)
System.exit(0);
if(e.getSource()==resetButton)
reload();
for(int cols = 0;cols < 6;cols++){
for(int rows = 0;rows < 5;rows++ ){
if(e.getSource()==diamondsButton[cols][rows])
estimateEven(cols+1,rows+1,diamondsButton[cols][rows]);
}
}
}
public static void main(String[] args) {
lianliankan llk = new lianliankan();
llk.randomBuild();
llk.init();
}
}
//old 998 lines
//new 318 lines
10. 回合制RPG的簡介
世界上最早的RPG是紙上RPG,也稱桌上RPG(TRPG:Table-top Role Playing Game )。完全沒有概念的新手,可以想想《DQ》或者《FF》等游戲里,所有玩者都將自己當作是一名想像世界中的虛構角色。比如說,你知道在真實世界中你是誰,你知道你的名字,而你可能是一位高中生、或是中年上班族、或是N個小孩的母親。但在RPG的世界中,你擺脫了這些平凡的身份,成位一名不那麼普通的角色。你可能想嘗試擔任救世英雄,或者是成屠龍的武士;你可能想當一名對黑暗知識運用熟練的法師,或是一個夢想美女的野獸。在電腦或電視RPG中,你控制一些人物在屏幕上走來走去,你被動的一句他們所遇到的狀況和反應做些無聊的固定單選題。而在TRPG的世界中,因為你的限制變少,所以角色扮演的成分變得更重。其實,TRPG中的角色扮演可以說很像是在演戲。