一个简单的Java 3D源代码
这段源代码实现了在一个窗体中显示一个场景;以一个棋盘格做的地面,在地面上浮着一个蓝色的球体,在场景中有一个环境光和一个直射光,实现了用鼠标全角度的观察场景的功能。从某种意义上来说这的确实现了一部3D游戏最原始的框架。
代码是照着《Killer Game Programming in Java》一书中关于3D游戏制作的那部分写的,由于此书是英文版的据说在国内也买不到中文翻译版的,看得很费力,本人英文不好。只能慢慢的研究书中的源代码。
下面说明下源代码的文件功能
GameMain.java - 程序的入口。
ScreenManager.Java - 实现一个很简单的窗体类从JFrame派生,目前只返回一个窗体,以后可能实现最复杂的功能。
WrapCheckers3D.Java - 实现一个简单的3D场景类,能实现一个简单的鼠标操作。
CheckerFloor.Java - 实现一个国际象棋般的棋盘格做来场景中的地面。
ColouredTile.Java - 派生自Shape3D类,能实现一个正方体平面,用来为CheckerFloor类实现棋盘格
GameMain.Java
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class GameMain {
private static int scrWidth = 800;
private static int scrHeight = 600;
private static int scrBitdepth = 32;
private JFrame gameFrame;
private WrapCheckers3D wrap;
public static void main(String[] args)
{
GameMain game = new GameMain();
}
public GameMain()
{
ScreenManager screen = new ScreenManager(scrWidth,scrHeight,scrBitdepth,"Java 3D Test");
screen.setWindowMode();
gameFrame = screen.getFrame();
wrap = new WrapCheckers3D(scrWidth,scrHeight);
gameFrame.add(wrap);
}
}
ScreenManager.Java
import java.awt.Dimension;
import java.awt.DisplayMode;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class ScreenManager {
private GraphicsDevice device;
private JFrame frame;
private String title;
private boolean isResizable;
private boolean isWindowM
相关文档:
这段时间开始学习写存储过程,主要原因还是因为工作需要吧,本来以为很简单的,但几经挫折,豪气消磨殆尽,但总算搞通了,为了避免后来者少走弯路,特记述与此,同时亦对自己进行鼓励。
一:无返回值的存储过程
存储过程为:
CREATE OR REPLACE PROCEDURE TESTA(PARA1 IN VARCHAR2,PARA2 IN VARCHAR2) AS
BEGIN
......
本文来自和你在一起的博客,原文标题:《JVM调优总结(二)-一些概念》。本文总结了JVM概念中的Java对象的大小,以及三种引用类型的定义与区分。 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任 ......
我们应用某种数据类型时,很多时候要进行类型转换等操作。在Delphi中,类型转换函数感觉很零乱,如字符串转整形、整形变字节数组等等。
而在JAVA中,已经将Java的基本数据类型与其提供了一些常用的类型操作的方法进行了封装,这样才有一切皆对象的感觉。
在学习包装类时,找了几个比较有意思的类进行了学习!
Integer
I ......
最近学习java的IO操作,现整理如下
1 输入输出
java的库将程序与输入有关的类都从InputStream继承,与输出有关的类都从OutStream继承。
以前没有掌握的相关类 SequenceInputStream 将两个或更多的inputStream 转换成单个对象使用。
2 增添属性和有用的接口
装饰器 : 利用层次化对象动态透明 ......
声明:本文并非本人所写,是网上看到的,但是该文没有标明出处,所以本人也不知道
作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。
一、 ......