Da Code:
/*
* @(#)Huset.java 1.0 05/02/04
* Author: Risto Karhu 2005
*/
import java.awt.*;
import java.applet.*;
import com.threed.jpct.*;
import com.threed.jpct.util.*;
public class Huset2 extends Applet implements Runnable {
//variabler
Thread tTrad = null;
World mWorld = null;
Camera mCamera = null;
FrameBuffer buffer = null;
public void init(){
tTrad = new Thread(this);
mWorld = new World();
//skapa ljus
Config.fadeoutLight=true;
Config.linearDiv=100;
Config.lightDiscardDistance=350;
mWorld.getLights().setOverbrightLighting(Lights.OVERBRIGHT_LIGHTING_DISABLED);
mWorld.getLights().setRGBScale(Lights.RGB_SCALE_2X);
mWorld.setAmbientLight(155, 15, 155);
//sätt up kameran
mCamera=mWorld.getCamera();
mCamera.setPosition(-70,10,0);
mCamera.lookAt(new SimpleVector(0f,10f,10f));
//sätt upp ett ljus ovanför kameran
mWorld.addLight(new SimpleVector(-10, 10, 0), 130, 130, 200);
//ladda 3ds...
Object3D[] oHuset = Loader.load3DS(this.getDocumentBase(),"testhus.3ds", 2f);
for(int i=0; i<oHuset.length; i++){
mWorld.addObject(oHuset[i]);
}
//build objects
mWorld.buildAllObjects();
}
public void start(){
//starta animations tråden
tTrad = new Thread(this);
tTrad.start();
}
public void stop(){
mWorld = null;
tTrad = null;
}
public void update(Graphics g){
}
public void paint(Graphics g) {
}
public void myUpdate(Graphics g) {
buffer.display(g);
}
public void run(){
//oändlig loop
World.setDefaultThread(Thread.currentThread());
buffer=new FrameBuffer(800, 600, FrameBuffer.SAMPLINGMODE_NORMAL);
buffer.enableRenderer(IRenderer.RENDERER_SOFTWARE);
buffer.setBoundingBoxMode(FrameBuffer.BOUNDINGBOX_NOT_USED);
buffer.optimizeBufferAccess();
while(1<2){
//flytta kameran
mCamera.rotateY(0.02f);
buffer.clear();
mWorld.renderScene(buffer);
mWorld.draw(buffer);
buffer.update();
myUpdate(this.getGraphics());
try{ tTrad.sleep(20);}
catch(InterruptedException e){}
}
//stäng ner java
//System.exit(0);
}
}