導航:首頁 > 編程語言 > Java游戲編程

Java游戲編程

發布時間:2022-01-27 03:38:37

『壹』 用java怎麼編寫游戲程序

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

『貳』 怎麼用Java編程游戲

不太推薦用java來開發游戲,java開發3D游戲雖然以前出了個java3D的東西來支持,但是渲染出來的效果很差.如果你做一些2D的小游戲自己玩的話.javafx應該可以滿足。開發游戲還是用c++吧..工具什麼的U3D好像也很流行。

『叄』 學習JAVA游戲開發要用什麼軟體編程

戲游戲開發需要分平台的;目前比較火的就是android和iOS(蘋果的iphone)了!
1、android開源支持手機較多:需要java基礎。做android開發,入門簡單,發展一般,主要的工作適配各種機型了,目前國內有成熟的盈利環境,發展不明朗;學java語言。。需要的開發軟體有:eclipse和Android SDK,
2、iOS,蘋果王朝的的核心產品;單單一個《憤怒的小鳥》,全球就有,4億人下載,
現在很多的手機都是android系統的,所以手機游戲的開發也需要在android的平台下開發。你可以到專門的學校去學習這方面的技術
手機游戲開發主要是用j2me來做,jeme屬於java三大模塊j2ee、j2se、j2me中的一個,你現在已經學了java,所以有一定的基礎了,學習起j2me手機開發語言的話也是比較容易上手。java基礎,J2ME知識。 數學基礎,邏輯思維能力。
java平台 分三種 java EE 開發網頁 java ME 開發手機應用程序 javaSE 開發電腦端程序
優秀的設計能力。 要學習【java語言基礎】先 然後在進修 【java與游戲設計】 最好學點美術設計和 3d 設計
學習java手機游戲開發的話,可以從j2se 入手然後學習j2me進行手機游戲開發。
但是我推薦你從j2se入手開始學習android,然後進行android游戲開發,可能比前面的更加前途!
至於書籍可以根據我給的技術名稱自己去找,或者你選擇好了方向,我再告訴你!
騰訊手機管家在安全方面是相當過硬的,其殺毒方面的核心是騰訊及金山旗下研發的目前最為先進的5大引擎,對後台惡意運行,廣告攔截,騷擾攔截,上網及下載實時監控等等都有非常不錯的表現。

『肆』 JAVA小游戲編程-源代碼

桌面程序?還是在手機上?

『伍』 JAVA2游戲編程的介紹

本書全面講述了使用Java語言進行游戲編程所需的基本知識,涵蓋了Graphics2D、聲音、圖像、沖突檢測、硬體加速、場景管理以及游戲引擎的開發等主題。

『陸』 Java游戲編程 主要學習Java哪方面的知識

主要是學習下面幾個包:java2D,java3D,還有關於聲音方面的,具體包的名字不記得了,不過,介紹你看一本書,叫《java多媒體編程》,應該有幫助。如果想要java做游戲引擎,介紹你學習一個包,叫JOGL,你去查一下,還有一個游戲你也可以看一下,叫TRIBLE TROUBLE!游戲方面多是跟多媒體有關的,無論什麼語言,從這方面入手不會錯的!

『柒』 關於java游戲編程的問題

我想游戲編程也不會跑了JAVA的基本語法吧
前些天看了俄羅斯方塊代碼,也沒什麼,就一種方塊定義了一個類
還有個畫板類和主程序
J2ME偶不熟悉,J2EE研究中……

『捌』 JAVA游戲編程教程

java下東東都是通用版本。軟體太多都沒人去編。系統太不好用了…還是主攻jar編程的童鞋們少了。

『玖』 java小游戲編程

/**
* File: ControlPanel.java
* User:相思無償
* Date: 2004.12.3
* Describe: 俄羅斯方塊的 Java 實現
*/

import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import java.awt.*;
import java.awt.event.*;

/**
* 控制面板類,繼承自JPanel.
* 上邊安放預顯窗口、等級、得分、控制按鈕
* 主要用來控制游戲進程。
*/
class ControlPanel extends JPanel {
private JTextField
tfLevel = new JTextField("" + ErsBlocksGame.DEFAULT_LEVEL),
tfScore = new JTextField("0");

private JButton
btPlay = new JButton("Play"),
btPause = new JButton("Pause"),
btStop = new JButton("Stop"),
btTurnLevelUp = new JButton("Turn hard"),
btTurnLevelDown = new JButton("Turn easy");

private JPanel plTip = new JPanel(new BorderLayout());
private TipPanel plTipBlock = new TipPanel();
private JPanel plInfo = new JPanel(new GridLayout(4, 1));
private JPanel plButton = new JPanel(new GridLayout(5, 1));

private Timer timer;
private ErsBlocksGame game;

private Border border = new EtchedBorder(
EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));

/**
* 控制面板類的構造函數
* @param game ErsBlocksGame, ErsBoxesGame類的一個實例引用,
* 方便直接控制ErsBoxesGame類的行為。
*/
public ControlPanel(final ErsBlocksGame game) {
setLayout(new GridLayout(3, 1, 0, 4));
this.game = game;

plTip.add(new JLabel("Next block"), BorderLayout.NORTH);
plTip.add(plTipBlock);
plTip.setBorder(border);

plInfo.add(new JLabel("Level"));
plInfo.add(tfLevel);
plInfo.add(new JLabel("Score"));
plInfo.add(tfScore);
plInfo.setBorder(border);

tfLevel.setEditable(false);
tfScore.setEditable(false);

plButton.add(btPlay);
plButton.add(btPause);
plButton.add(btStop);
plButton.add(btTurnLevelUp);
plButton.add(btTurnLevelDown);
plButton.setBorder(border);

add(plTip);
add(plInfo);
add(plButton);

addKeyListener(new ControlKeyListener());

btPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
game.playGame();
}
});
btPause.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
if (btPause.getText().equals(new String("Pause"))) {
game.pauseGame();
} else {
game.resumeGame();
}
}
});
btStop.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
game.stopGame();
}
});
btTurnLevelUp.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
int level = Integer.parseInt(tfLevel.getText());
if (level < ErsBlocksGame.MAX_LEVEL)
tfLevel.setText("" + (level + 1));
} catch (NumberFormatException e) {
}
requestFocus();
}
});
btTurnLevelDown.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
int level = Integer.parseInt(tfLevel.getText());
if (level > 1)
tfLevel.setText("" + (level - 1));
} catch (NumberFormatException e) {
}
requestFocus();
}
});

addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent ce) {
plTipBlock.fanning();
}
});

timer = new Timer(500, new ActionListener() {
public void actionPerformed(ActionEvent ae) {
tfScore.setText("" + game.getScore());
int scoreForLevelUpdate =
game.getScoreForLevelUpdate();
if (scoreForLevelUpdate >= ErsBlocksGame.PER_LEVEL_SCORE
&& scoreForLevelUpdate > 0)
game.levelUpdate();
}
});
timer.start();
}

/**
* 設置預顯窗口的樣式,
* @param style int,對應ErsBlock類的STYLES中的28個值
*/
public void setTipStyle(int style) {
plTipBlock.setStyle(style);
}

/**
* 取得用戶設置的游戲等級。
* @return int, 難度等級,1 - ErsBlocksGame.MAX_LEVEL
*/
public int getLevel() {
int level = 0;
try {
level = Integer.parseInt(tfLevel.getText());
} catch (NumberFormatException e) {
}
return level;
}

/**
* 讓用戶修改游戲難度等級。
* @param level 修改後的游戲難度等級
*/
public void setLevel(int level) {
if (level > 0 && level < 11) tfLevel.setText("" + level);
}

/**
* 設置"開始"按鈕的狀態。
*/
public void setPlayButtonEnable(boolean enable) {
btPlay.setEnabled(enable);
}

public void setPauseButtonLabel(boolean pause) {
btPause.setText(pause ? "Pause" : "Continue");
}

/**
* 重置控制面板
*/
public void reset() {
tfScore.setText("0");
plTipBlock.setStyle(0);
}

/**
* 重新計算TipPanel里的boxes[][]里的小框的大小
*/
public void fanning() {
plTipBlock.fanning();
}

/**
* 預顯窗口的實現細節類
*/
private class TipPanel extends JPanel {
private Color backColor = Color.darkGray, frontColor = Color.lightGray;
private ErsBox[][] boxes =
new ErsBox[ErsBlock.BOXES_ROWS][ErsBlock.BOXES_COLS];

private int style, boxWidth, boxHeight;
private boolean isTiled = false;

/**
* 預顯窗口類構造函數
*/
public TipPanel() {
for (int i = 0; i < boxes.length; i++) {
for (int j = 0; j < boxes[i].length; j++)
boxes[i][j] = new ErsBox(false);
}
}

/**
* 預顯窗口類構造函數
* @param backColor Color, 窗口的背景色
* @param frontColor Color, 窗口的前景色
*/
public TipPanel(Color backColor, Color frontColor) {
this();
this.backColor = backColor;
this.frontColor = frontColor;
}

/**
* 設置預顯窗口的方塊樣式
* @param style int,對應ErsBlock類的STYLES中的28個值
*/
public void setStyle(int style) {
this.style = style;
repaint();
}

/**
* 覆蓋JComponent類的函數,畫組件。
* @param g 圖形設備環境
*/
public void paintComponent(Graphics g) {
super.paintComponent(g);

if (!isTiled) fanning();

int key = 0x8000;
for (int i = 0; i < boxes.length; i++) {
for (int j = 0; j < boxes[i].length; j++) {
Color color = (((key & style) != 0) ? frontColor : backColor);
g.setColor(color);
g.fill3DRect(j * boxWidth, i * boxHeight,
boxWidth, boxHeight, true);
key >>= 1;
}
}
}

/**
* 根據窗口的大小,自動調整方格的尺寸
*/
public void fanning() {
boxWidth = getSize().width / ErsBlock.BOXES_COLS;
boxHeight = getSize().height / ErsBlock.BOXES_ROWS;
isTiled = true;
}
}

private class ControlKeyListener extends KeyAdapter {
public void keyPressed(KeyEvent ke) {
if (!game.isPlaying()) return;

ErsBlock block = game.getCurBlock();
switch (ke.getKeyCode()) {
case KeyEvent.VK_DOWN:
block.moveDown();
break;
case KeyEvent.VK_LEFT:
block.moveLeft();
break;
case KeyEvent.VK_RIGHT:
block.moveRight();
break;
case KeyEvent.VK_UP:
block.turnNext();
break;
default:
break;
}
}
}
}

閱讀全文

與Java游戲編程相關的資料

熱點內容
女程序員化妝視頻大全 瀏覽:742
錄音筆如何修改文件夾 瀏覽:645
八爪魚數據採集加密文字替換 瀏覽:84
android系統運行動態編譯的程序 瀏覽:419
計算編程中常用的if語句是 瀏覽:736
linux文件夾許可權亂了 瀏覽:912
程序員職業病預防保健操 瀏覽:680
c程序修改後需不需要重新編譯 瀏覽:725
怎樣把圖片分別放置在文件夾中 瀏覽:873
推流伺服器地址是什麼 瀏覽:632
java允許多重繼承 瀏覽:513
解壓小玩具好玩又可愛 瀏覽:410
騰訊雲大帶寬伺服器 瀏覽:823
加密鎖的售後 瀏覽:270
linux登不上去 瀏覽:731
聯想伺服器休眠後如何喚醒 瀏覽:113
四川話女孩學習編程 瀏覽:324
編譯原理文法區分 瀏覽:1003
教師可以做程序員嘛 瀏覽:637
終結戰場安卓國際服怎麼下載 瀏覽:155