导航:首页 > 编程语言 > 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游戏编程相关的资料

热点内容
压缩因子定义 浏览:966
cd命令进不了c盘怎么办 浏览:212
药业公司招程序员吗 浏览:972
毛选pdf 浏览:657
linuxexecl函数 浏览:725
程序员异地恋结果 浏览:372
剖切的命令 浏览:226
干什么可以赚钱开我的世界服务器 浏览:288
php备案号 浏览:988
php视频水印 浏览:166
怎么追程序员的女生 浏览:487
空调外压缩机电容 浏览:79
怎么将安卓变成win 浏览:459
手机文件管理在哪儿新建文件夹 浏览:724
加密ts视频怎么合并 浏览:775
php如何写app接口 浏览:804
宇宙的琴弦pdf 浏览:396
js项目提成计算器程序员 浏览:944
pdf光子 浏览:834
自拍软件文件夹名称大全 浏览:328