當前位置:首頁 » 編程語言 » java開發游戲

java開發游戲

發布時間: 2022-01-12 14:22:21

java適合開發游戲嗎

java什麼東西基本都能開發,只是java致命的是不能直接操作內存,這樣使java在開發的時候造成很多局限性.但是java提供了本地方法,可以調用c的類庫。使得功能進一步提升。又由於java對於垃圾回收機制是自動的,使得游戲在流暢性上有很大的折扣。所以java不適合開發大型游戲(除非自己實現垃圾回收等一些機制),使java能與c相比使。又因為java的初衷就不在界面和桌面游戲上。而在企業開發。因此java不適合開發大型游戲。中小型網路游戲還行。

② 用Java開發簡單的游戲

使用png格式的圖片,除去坦克以外部分鏤空,一來看起來好看點,二來能減少不少不必要的像素繪制。
另外就是圖片盡量小點,寧可作做放大處理,圖片資源越小,圖片紋理越小,載入到內存的過程越快。另外對於這種坦克、還有場景的一些固有的資源圖片,最好不要讓它自動從內存中釋放掉,打開游戲的時候自己做個預載入這些資源到內存中,整個程序結束的時候再從內存中釋放資源。java和objective-c都是有資源引用計數的,一開始你就給它們多添加一次引用就可以保證它們不會被自動釋放了(java我不怎麼用了,應該有現有的庫做這種事的吧,至少做android游戲開發內存預載入常要用的。)

③ java能不能開發電腦游戲

Java雖然可以開發桌面應用但是很少用它去開發,因為這不是它的長處,一般情況下都是利用Java的移植性來開發web網站,這才是它的用武之地。

④ 用java開發小游戲

我給你個華容道的游戲參照下吧。可以自己照著做下。多看例子想想就行了。

找個游戲做的不好,不要笑話啊。

import java.awt.*;
import javax.swing.JApplet.*;
import java.awt.event.*;
import javax.swing.*;
class People extends JButton implements FocusListener
{
Rectangle rect=null;
int left_x,left_y;//按鈕左上角坐標.
int width,height; //按鈕的寬和高.
String name;
int number;
public People(int number,String s,int x,int y,int w,int h,HuaRongRoad road)
{
super(s);
name=s;
this.number=number;
left_x=x;
left_y=y;
width=w;
height=h;
setBackground(Color.GREEN);
road.add(this);
addKeyListener(road);

setBounds(x,y,w,h);
addFocusListener(this);
rect=new Rectangle(x,y,w,h);
}
public void focusGained(FocusEvent e)
{
setBackground(Color.red);
}
public void focusLost(FocusEvent e)
{
setBackground(Color.GREEN);
}
}
public class HuaRongRoad extends JApplet implements KeyListener,ActionListener
{
People people[]=new People[10];
Rectangle left,right,above,below;//華容道的邊界
JButton restart=new JButton("restart");
public void init()
{

getContentPane().setLayout(null);
getContentPane().add(restart);
restart.setBounds(5,5,80,25);
restart.addActionListener(this);
getContentPane().setBackground(Color.white);

people[0]=new People(0,"曹操",154,54,200,200,this);
people[1]=new People(1,"關羽",154,254,200,100,this);
people[2]=new People(2,"張飛",54,254,100,200,this);
people[3]=new People(3,"劉備",354,254,100,200,this);
people[4]=new People(4,"張遼",54,54,100,200,this);
people[5]=new People(5,"曹仁",354,54,100,200,this);
people[6]=new People(6,"兵 ",54,454,100,100,this);
people[7]=new People(7,"兵 ",354,454,100,100,this);
people[8]=new People(8,"兵 ",154,354,100,100,this);
people[9]=new People(9,"兵 ",254,354,100,100,this);

people[9].requestFocus();

people[0].setForeground(Color.white);
left=new Rectangle(49,49,5,510);
right=new Rectangle(454,49,5,510);
above=new Rectangle(49,49,410,5);
below=new Rectangle(49,554,410,5);

}
public void paint(Graphics g)
{ //華容道的邊界
super.paint(g);
g.setColor(Color.cyan);
g.fillRect(49,49,5,510);
g.fillRect(454,49,5,510);
g.fillRect(49,49,410,5);
g.fillRect(49,554,410,5);
//
g.drawString("單擊,按方向箭頭移動",100,20);
g.setColor(Color.red);
g.drawString("曹操到達該位置",110,300);

}
public void keyPressed(KeyEvent e)
{
People man=(People)e.getSource();
man.rect.setLocation(man.getBounds().x,man.getBounds().y);
if(e.getKeyCode()==KeyEvent.VK_DOWN)
{
man.left_y=man.left_y+100; //向下前進50個單位
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
//判斷是否和其他人或邊界重疊,出現就退回50個單位
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people[i].rect))&&(man.number!=i))
{
man.left_y=man.left_y-100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(below))
{
man.left_y=man.left_y-100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}

if(e.getKeyCode()==KeyEvent.VK_UP)
{
man.left_y=man.left_y-100; //向上前進50個單位
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
//判斷是否和其他人或邊界重疊,出現就退回50個單位
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people[i].rect))&&(man.number!=i))
{
man.left_y=man.left_y+100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(above))
{
man.left_y=man.left_y+100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(e.getKeyCode()==KeyEvent.VK_LEFT)
{
man.left_x=man.left_x-100; //向左前進50個單位
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
//判斷是否和其他人或邊界重疊,出現就退回50個單位
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people[i].rect))&&(man.number!=i))
{
man.left_x=man.left_x+100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(left))
{
man.left_x=man.left_x+100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(e.getKeyCode()==KeyEvent.VK_RIGHT)
{
man.left_x=man.left_x+100; //向右進50個單位
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
//判斷是否和其他人或邊界重疊,出現就退回50個單位
for(int i=0;i<10;i++)
{
if((man.rect.intersects(people[i].rect))&&(man.number!=i))
{
man.left_x=man.left_x-100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}
if(man.rect.intersects(right))
{
man.left_x=man.left_x-100;
man.setLocation(man.left_x,man.left_y);
man.rect.setLocation(man.left_x,man.left_y);
}
}

}
public void keyTyped(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public void actionPerformed(ActionEvent e)
{
getContentPane().removeAll();

this.init();
}
}

⑤ 用java怎麼編寫游戲程序

這個坦白地說,非常難,但也不是不可以,就看你有沒有恆心了。
需要學習JAVA SE的基礎,包括AWT、SWING的一些知識,二進制與文本IO,3D圖象,可能還涉及很多運算,包括聲音與視頻的輸出,動畫或flash的輸出,甚至有可能要有與windows DirectX的交互。我在外面看過有JAVA游戲編程方面的書,你可以買來看看

⑥ 游戲開發跟Java開發,哪個就業前景更好呢

看你在什麼城市了?游戲開發的就業一般在一線的會比較多,並且對於城市是有一定要求的,二線或者小城市沒有這方面的需求,並且游戲開發是一個比較費錢的事情,這種一般是大的公司比較好,還要看你能否進入到大的公司,因為目前游戲辦好不好拿。
JAVA就比較穩定了,一線和二線的城市都有,小的創業公司也需要,所以機會相對而言更多些。希望能都幫到你

⑦ 用java做一個小游戲

import java.awt.*;
public class TowerPoint
{
int x,y;
boolean 有盤子;
Disk 盤子=null;
HannoiTower con=null;
public TowerPoint(int x,int y,boolean boo)
{
this.x=x;
this.y=y;
有盤子=boo;
}
public boolean 是否有盤子()
{
return 有盤子;
}
public void set有盤子(boolean boo)
{
有盤子=boo;
}

public int getX()
{
return x;
}
public int getY()
{
return y;
}
public void 放置盤子(Disk 盤子,HannoiTower con)
{
this.con=con;
con.setLayout(null);
this.盤子=盤子;
con.add(盤子);
int w=盤子.getBounds().width;
int h=盤子.getBounds().height;
盤子.setBounds(x-w/2,y-h/2,w,h);
有盤子=true;
con.validate();
}
public Disk 獲取盤子()
{
return 盤子;
}
}

⑧ JAVA可以編寫游戲嗎

Java可以編寫游戲, 但是編寫游戲並不是Java最擅長的地方..一般的大中型游戲,可能是匯編,c#,c/c++編寫.. 而後端往往使用java. 當然了純java也可以製作一些簡單的游戲的..

一: 手機游戲上面

1) J2ME 製作的游戲, 適用於 諾基亞 ,三星 等可以運行的jar格式的手機. 在諾基亞時代曾經風行一時. 但後來隨著IOS和Android的興起, J2ME逐漸衰落...

2) Android平台也可以使用Java編寫程序和游戲...

二: PC游戲上面

1) awt/swing 等傳統的圖形界面技術, 也可以編寫一些簡單的游戲,比如泡泡堂, 超級瑪麗等游戲,

2) javaFX 框架,支持硬體加速, 相比awt/swing更加現代化, 更強大的功能和web支持

三: 網頁游戲方面

1) awt/swing 寫的Applet 游戲, 曾經可以在瀏覽器上運行. 但是由於安全隱患, 很多瀏覽器已經默認不支持了.

拓展: 如果想用java製作RPG游戲或者比較復雜的游戲 , 也可以使用一些開源的游戲框架.

⑨ JAVA能寫游戲嗎

可以的哦,語言是工具,具體用這個工具做什麼,是看編寫者的想法,我們在使用的,以及零幾年的時候,手機游戲多數都回彈出一個JAVA+一杯茶的圖片, 那些游戲就是JAVA寫的

熱點內容
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:778
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:100
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:208
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566
linux搭建mysql伺服器配置 發布:2024-09-08 06:50:02 瀏覽:995
加上www不能訪問 發布:2024-09-08 06:39:52 瀏覽:811
銀行支付密碼器怎麼用 發布:2024-09-08 06:39:52 瀏覽:513
蘋果手機清理瀏覽器緩存怎麼清理緩存 發布:2024-09-08 06:31:32 瀏覽:554
雲伺服器的優點與缺點 發布:2024-09-08 06:30:34 瀏覽:734
上傳下載賺錢 發布:2024-09-08 06:14:51 瀏覽:258