java代碼rpg文字 java文字編碼

準(zhǔn)備用JAVA寫個(gè)RPG游戲 自己現(xiàn)在還是小白。。。。JAVA腳本到底是什么?求解釋。。。盡量說細(xì)點(diǎn)哇親~~

java腳本:意思是 javaScript 這門腳本語言。與java 沒有關(guān)系。

創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供施甸網(wǎng)站建設(shè)、施甸做網(wǎng)站、施甸網(wǎng)站設(shè)計(jì)、施甸網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、施甸企業(yè)網(wǎng)站模板建站服務(wù),十余年施甸做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

要了解javascript 點(diǎn)擊

怎樣用java繪制弧形文字

用java繪制弧形文字的方法是調(diào)用java 2d圖形處理的api實(shí)現(xiàn)的。

完整代碼如下:

// 引入需要的jar包

import java.awt.Container;

import java.awt.Dimension;

import java.awt.Font;

import java.awt.FontMetrics;

import java.awt.Graphics;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JFrame;

import javax.swing.JPanel;

//定義一個(gè)類

public class FontPanel extends JPanel {

//定義一個(gè)畫板,入?yún)⑹菆D形g

public void paintComponent(Graphics g) {

super.paintComponent(g);

Font f = new Font("SansSerif", Font.BOLD, 14); 設(shè)置字體加粗

Font fi = new Font("SansSerif", Font.BOLD + Font.ITALIC, 14);設(shè)置字體加粗,斜體

FontMetrics fm = g.getFontMetrics(f); //得到當(dāng)前的font metrics

FontMetrics fim = g.getFontMetrics(fi);//得到當(dāng)前的font metrics

String s1 = "Java ";

String s2 = "Source and Support"; 定義字符串

String s3 = " java 字體變形學(xué)習(xí)";

int width1 = fm.stringWidth(s1); 設(shè)置寬度

int width2 = fim.stringWidth(s2);

int width3 = fm.stringWidth(s3);

Dimension d = getSize(); 設(shè)置二維圖形的維度

int cx = (d.width - width1 - width2 - width3) / 2; 計(jì)算繪制字體的x軸

int cy = (d.height - fm.getHeight()) / 2 + fm.getAscent();計(jì)算繪制字體的y軸

g.setFont(f);

g.drawString(s1, cx, cy);

cx += width1;

g.setFont(fi);

g.drawString(s2, cx, cy);

cx += width2;

g.setFont(f);

g.drawString(s3, cx, cy);

}

main方法測(cè)試:

public static void main(String[] args) {

JFrame frame = new JFrame();

frame.setTitle("NotHelloWorld2");

frame.setSize(350, 200);

frame.addWindowListener(new WindowAdapter() {

?public void windowClosing(WindowEvent e) {

? ?System.exit(0);

?}

});

Container contentPane = frame.getContentPane();

contentPane.add(new FontPanel());

frame.show();

}

}

運(yùn)行結(jié)果:

求java rpg小游戲源代碼 最好是文字rpg 不需要很復(fù)雜 只是交作業(yè)用

連連看的小源碼

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];//游戲按鈕數(shù)組

JButton exitButton,resetButton,newlyButton; //退出,重列,重新開始按鈕

JLabel fractionLable=new JLabel("0"); //分?jǐn)?shù)標(biāo)簽

JButton firstButton,secondButton; //分別記錄兩次被選中的按鈕

int grid[][] = new int[8][7];//儲(chǔ)存游戲按鈕位置

static boolean pressInformation=false; //判斷是否有按鈕被選中

int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戲按鈕的位置坐標(biāo)

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; //這里一定要將按鈕點(diǎn)擊信息歸為初始

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() { //相同的情況下能不能消去。仔細(xì)分析,不一條條注釋

if((x0==x (y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)(y0==y))){ //判斷是否相鄰

remove();

}

else{

for (j=0;j7;j++ ) {

if (grid[x0][j]==0){ //判斷第一個(gè)按鈕同行哪個(gè)按鈕為空

if (yj) { //如果第二個(gè)按鈕的Y坐標(biāo)大于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕左邊

for (i=y-1;i=j;i-- ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕

if (grid[x][i]!=0) {

k=0;

break;

}

else{ k=1; } //K=1說明通過了第一次驗(yàn)證

}

if (k==1) {

linePassOne();

}

}

if (yj){ //如果第二個(gè)按鈕的Y坐標(biāo)小于空按鈕的Y坐標(biāo)說明第一按鈕在第二按鈕右邊

for (i=y+1;i=j ;i++ ){ //判斷第二按鈕左側(cè)直到第一按鈕中間有沒有按鈕

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 (x0x) {

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 (x0x) {

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;i8;i++ ) { //列

if (grid[i][y0]==0) {

if (xi) {

for (j=x-1;j=i ;j-- ) {

if (grid[j][y]!=0) {

k=0;

break;

}

else { k=1; }

}

if (k==1) {

rowPassOne();

}

}

if (xi) {

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 (y0y) {

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 (y0y) {

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 (y0j){ //第一按鈕同行空按鈕在左邊

for (i=y0-1;i=j ;i-- ){ //判斷第一按鈕同左側(cè)空按鈕之間有沒按鈕

if (grid[x0][i]!=0) {

k=0;

break;

}

else { k=2; } //K=2說明通過了第二次驗(yàn)證

}

}

if (y0j){ //第一按鈕同行空按鈕在與第二按鈕之間

for (i=y0+1;i=j ;i++){

if (grid[x0][i]!=0) {

k=0;

break;

}

else{ k=2; }

}

}

}

public void rowPassOne(){

if (x0i) {

for (j=x0-1;j=i ;j-- ) {

if (grid[j][y0]!=0) {

k=0;

break;

}

else { k=2; }

}

}

if (x0i) {

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

求一個(gè)簡(jiǎn)單RPG游戲的代碼,JAva編寫的

package?com.lxi;

import?java.io.BufferedReader;

import?java.io.InputStreamReader;

public?class?Rpg?{

@SuppressWarnings("unchecked")

public?static?void?main(String[]?args)?throws?Exception?{

System.out.println("在這里輸入兩個(gè)人物進(jìn)行PK,以英文逗號(hào)分隔:?[BM,DH,MK]");

BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(System.in));

ClassPerson?c1;

ClassPerson?c2;

try?{

String?temp?=?br.readLine();

String[]?str?=?temp.split(",");

if?(str.length?!=?2)?{

throw?new?Exception("輸入格式有誤,按默認(rèn)PK");

}

c1?=?(ClassPerson)?Class.forName("com.lxi."

+?str[0].toUpperCase());

c2?=?(ClassPerson)?Class.forName("com.lxi."

+?str[1].toUpperCase());

}?catch?(Exception?e)?{

//?TODO?Auto-generated?catch?block

c1?=?(ClassPerson)?Class.forName("com.lxi.BM");

c2?=?(ClassPerson)?Class.forName("com.lxi.DH");

}

try?{

Person?p1?=?c1.newInstance();

Person?p2?=?c2.newInstance();

long?time?=?System.currentTimeMillis();

long?nextTime1?=?(long)?(time?+?p1.coldTime*1000);?//

long?nextTime2?=?(long)?(time?+?p2.coldTime*1000);?//發(fā)動(dòng)攻擊的時(shí)間

System.out.println("---游戲開始---");

while?(true)?{

long?currenTime?=?System.currentTimeMillis();

if?(nextTime1??currenTime)?{??//時(shí)間到則發(fā)動(dòng)攻擊

p1.hit(p2);

nextTime1?+=?p1.coldTime*1000?+?p1.waitTime*1000;?//下次攻擊時(shí)間=冷卻時(shí)間+被暈眩時(shí)間

p1.waitTime?=?0;??//回合結(jié)束,重置被暈眩時(shí)間為0

}

if?(nextTime2??currenTime)?{

p2.hit(p1);

nextTime2?+=?p2.coldTime*1000?+?p2.waitTime*1000;

p2.waitTime?=?0;

}

}

}?catch?(ClassCastException?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}?catch?(InstantiationException?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}?catch?(IllegalAccessException?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}?catch?(Exception?e)?{

e.printStackTrace();

}

}

}

package?com.lxi;

import?java.util.Random;

class?BM?extends?Person?{

public?BM()?{

val?=?650;

coldTime?=?1.5;

fight?=?40;

chanceHit?=?3;

chanceDefense?=?3;

waitTime?=?0;

}

int?count?=?0;???//防御技能發(fā)動(dòng)的次數(shù)

int?temp?=?40;???//攻擊力,值同fight

boolean?hitFlag?=?false;

boolean?defenseFlag?=?false;

Random?rand?=?new?Random();

public?void?hit(Person?p)?{

if?(rand.nextInt(10)??chanceHit)?{

fight?=?fight?*?2;???//發(fā)動(dòng)雙倍攻擊

hitFlag?=?true;

}

int?hurt?=?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???"發(fā)動(dòng)攻擊技能???"?:?"未發(fā)動(dòng)攻擊技能???")

+?p.getClass().getSimpleName()

+?(this.defenseFlag???"發(fā)動(dòng)防御技能???"?:?"未發(fā)動(dòng)防御技能???")

+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","

+?p.getClass().getSimpleName()?+?":"?+?p.val);

hitFlag?=?false;

defenseFlag?=?false;

}

public?int?defense(Person?p)?{

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);

}

}

}

return?p.fight;

}

}

class?MK?extends?Person?{

public?MK()?{

val?=?700;

coldTime?=?2.5;

fight?=?50;

chanceDefense?=?6;

chanceHit?=?3;

waitTime?=?0;

}

boolean?hitFlag?=?false;

boolean?defenseFlag?=?false;

Random?rand?=?new?Random();

public?void?hit(Person?p)?{

if?(rand.nextInt(10)??chanceHit)?{

p.waitTime?=?3;???//使對(duì)方暈眩3s

hitFlag?=?true;

}

int?hurt?=?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???"發(fā)動(dòng)攻擊技能???"?:?"未發(fā)動(dòng)攻擊技能???")

+?p.getClass().getSimpleName()

+?(this.defenseFlag???"發(fā)動(dòng)防御技能???"?:?"未發(fā)動(dòng)防御技能???")

+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","

+?p.getClass().getSimpleName()?+?":"?+?p.val);

hitFlag?=?false;

defenseFlag?=?false;

}

public?int?defense(Person?p)?{

if?(rand.nextInt(10)??chanceDefense)?{

defenseFlag?=?true;

return?p.fight?/?2;???//防御技能發(fā)動(dòng),傷害減半

}

return?p.fight;

}

}

package?com.lxi;

import?java.io.BufferedReader;

import?java.io.InputStreamReader;

import?java.util.Random;

//三個(gè)人物的基類

abstract?class?Person?{

int?val;?????????????//生命值

double?coldTime;?????//冷卻時(shí)間

int?waitTime;????????//暈眩時(shí)間

int?fight;??????????//攻擊力

int?chanceHit;??????//發(fā)起主動(dòng)技能的概率

int?chanceDefense;??//發(fā)起防御技能的概率

abstract?void?hit(Person?p);???//攻擊技能

abstract?int?defense(Person?p);?//防御技能,返回被傷害點(diǎn)數(shù)

}

class?DH?extends?Person?{

public?DH()?{

val?=?600;

coldTime?=?1.0;

fight?=?30;

chanceHit?=?3;??????//表示30%的概率

chanceDefense?=?3;

waitTime?=?0;

}

Random?rand?=?new?Random();

boolean?hitFlag?=?false;??????//主動(dòng)技能發(fā)動(dòng)的標(biāo)識(shí)

boolean?defenseFlag?=?false;??//防御技能發(fā)動(dòng)的標(biāo)識(shí)

public?void?hit(Person?p)?{

if?(rand.nextInt(10)??chanceHit)?{??//發(fā)動(dòng)主動(dòng)技能

int?hurt?=?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;?????//標(biāo)記主動(dòng)技能已經(jīng)發(fā)動(dòng)

}?else?{??//進(jìn)行普通攻擊

int?hurt?=?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???"發(fā)動(dòng)攻擊技能???"?:?"未發(fā)動(dòng)攻擊技能???")

+?p.getClass().getSimpleName()

+?(this.defenseFlag???"發(fā)動(dòng)防御技能???"?:?"未發(fā)動(dòng)防御技能???")

+?this.getClass().getSimpleName()?+?":"?+?this.val?+?","

+?p.getClass().getSimpleName()?+?":"?+?p.val);

hitFlag?=?false;?????//

defenseFlag?=?false;?//重置標(biāo)記,下次重用

}

public?int?defense(Person?p)?{

if?(rand.nextInt(10)??chanceDefense)?{

defenseFlag?=?true;???//標(biāo)記防御技能已經(jīng)發(fā)動(dòng)

return?0;

}?else?{

return?p.fight;

}

}

}

當(dāng)前題目:java代碼rpg文字 java文字編碼
標(biāo)題來源:http://www.muchs.cn/article22/dosedcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、域名注冊(cè)、軟件開發(fā)網(wǎng)站改版、品牌網(wǎng)站設(shè)計(jì)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站