i have thsis game:
http://www.fadi.at/6b/knoll/b.htm
and that’s the code:
can u tell me how 2 speed up,cause it’s damned flickering::
the code:::::::
/*
- CLoseShooter1.java
- Created on 21. Dezember 2002, 16:26
*/
/**
*
-
@author Johannes
/
import java.awt.;
import java.applet.;
import java.awt.event.;
import java.util.*;
import java.applet.Applet;
public class CLoseShooter2 extends Applet{
int m_treffer,kaputt;
Font m_anzeiger;
String m_tref;
Image m_bild;
Canvas malFlaeche;
Canvas oben,rechts,unten,links,stats;
CAlien a;
AudioClip ac;
Zerstorer zt;
public CLoseShooter2()
{
m_tref="";
m_anzeiger=new Font(“Arial”,Font.BOLD,20);
MediaTracker laden=new MediaTracker(this);
try
{
ac=getAudioClip(getCodeBase(),“moan.wav”);
laden.waitForAll();
ac.loop();} catch(Exception e){ ; } //m_bild =getImage(getCodeBase(),"alienboese.gif"); /* laden.addImage(m_bild,0); try { laden.waitForID(0); } catch(InterruptedException e){ m_bild=null; return; } */ kaputt=0; setLayout(new BorderLayout()); m_treffer=0; oben=new Canvas(); unten=new Canvas(); rechts=new Canvas(); links=new Canvas(); stats=new Canvas(); stats.setBackground(Color.yellow); oben.setBackground(Color.red); unten.setBackground(Color.red); links.setBackground(Color.red); rechts.setBackground(Color.red); stats.setSize(400,10); oben.setSize(800,10); unten.setSize(400,10); rechts.setSize(10,480); links.setSize(10,480); malFlaeche=new Canvas(); malFlaeche.setBackground(Color.gray); malFlaeche.setForeground(Color.red); malFlaeche.setSize(780, 480); add("Center",malFlaeche); add("North",oben); add("East",rechts); add("West",links); add("South",unten); //add("South",stats); malFlaeche.addMouseListener(new CMaus());
}
public void init(){
double tmp1=(Math.random()*780)+10;
double tmp2=Math.random()*480+10;
a=new CAlien(malFlaeche,(int) tmp1,(int)tmp2);
a.start();
m_treffer++;
m_tref="Lose : "+String.valueOf(m_treffer);
if(kaputt==1){
zt.stop();
}
zt=new Zerstorer(malFlaeche);
zt.start();
}
public void aufraumen(){
Graphics g=malFlaeche.getGraphics();
g.setColor(Color.gray);
g.fillRect(a.m_xPos,a.m_yPos,37,37);
g.fillRect(zt.xPos,zt.yPos,zt.breite+10,zt.hohe+10);
}
public void tststs()
{
zt.stop();
init();
}
class CMaus extends MouseAdapter
{
public void mousePressed(MouseEvent f){
int ax=f.getX();
int ay=f.getY();
if(ax>=a.m_xPos && ax<=a.m_xPos+30){
if(ay>=a.m_yPos && ay<=a.m_yPos+30){
aufraumen();
malFlaeche.setForeground(Color.green);
a.stop();
zt.stop();
init();
}
}
}
}
class CAlien extends Thread
{
Canvas anzeige;
int m_xPos,m_yPos;
int m_xGo,m_yGo;//Schrittweite
public CAlien(Canvas a,int x,int y){
anzeige=a;
m_xPos=x;
m_yPos=y;
m_xGo=7;
m_yGo=13;
}
public CAlien(Canvas a){
anzeige=a;
double xtmp=(Math.random()*780)+10;
double ytmp=(Math.random()*480)+10;
m_xPos=(int)xtmp;
m_yPos=(int)ytmp;
}
public void run(){
anzeigen();
while(isInterrupted()==false){
bewegen();
try
{
sleep(40);
}
catch(InterruptedException e){
return;
}
}
}
void anzeigen(){
Graphics g=anzeige.getGraphics();
g.setFont(m_anzeiger);
g.setColor(Color.black);
g.fillOval(m_xPos+5,m_yPos+5,30,30);
g.setColor(Color.orange);
g.fillOval(m_xPos, m_yPos,30,30);
g.setColor(Color.black);
g.fillOval(m_xPos+9,m_yPos+6,3,3);
g.fillOval(m_xPos+17,m_yPos+6,3,3);
g.drawRect(m_xPos+7,m_yPos+18,16,4);
g.setColor(Color.black);
g.drawString(m_tref,350,470);
g.setColor(Color.black);
g.fillRect(zt.xPos+5,zt.yPos+5,zt.breite,zt.hohe);
g.setColor(Color.red);
g.fillRect(zt.xPos,zt.yPos,zt.breite,zt.hohe);
g.dispose();
}
void bewegen(){
int xNeu,yNeu;
Graphics g=anzeige.getGraphics();
Dimension m=anzeige.getSize();
xNeu=m_xPos+m_xGo;
yNeu=m_yPos+m_yGo;
if(xNeu<0){
xNeu=0;
double tmp=(Math.random()*15)+5;
m_xGo=(int)tmp;
}
if(xNeu+30 >=m.width){
xNeu=m.width-30;
double tmp=(Math.random()*15)+5;
m_xGo=(int)-tmp;
}
if(yNeu<0){
yNeu=0;
double tmp=(Math.random()*15)+5;
m_yGo=(int)tmp;
}
if(yNeu+30>=m.height){
yNeu=m.height-30;
double tmp=(Math.random()*15)+5;
m_yGo=(int)-tmp;
}
g.setColor(Color.gray);
g.fillRect(m_xPos-1,m_yPos-1,m_xPos+37,m_yPos+37);
g.fillRect(380,450,100,40);
m_xPos=xNeu;
m_yPos=yNeu;
anzeigen();
g.dispose();
}
}
class Zerstorer extends Thread
{
Canvas zeichner;
int xPos,yPos,breite,hohe,go;
public Zerstorer(Canvas a){
zeichner=a;
xPos=250;
yPos=250;
hohe=10;
breite=50;
go=5;
}
void bewegen(){
Graphics g=zeichner.getGraphics();
Dimension m=zeichner.getSize();
int xNeu;
xNeu=xPos+go;
if(xNeu<=0)
{
xNeu=0;
go=-go;
}
if(xNeu+breite>=m.width){
xNeu=m.width-breite;
go=-go;
}
g.setColor(Color.gray);
g.fillRect(xPos-5,yPos-5,breite+10,hohe+10);
xPos=xNeu;
g.dispose();
if(a.m_xPos+35>=xPos && xPos>=a.m_xPos){
if(a.m_yPos<=260 || a.m_yPos>220){
//m_treffer–;
//a.stop();
//aufraumen();
//tststs();
}
}
}
public void run(){
while(isInterrupted()==false){
bewegen();
breite+=1;
try
{
sleep(50);
}
catch(InterruptedException e){
;
}
}
}
}
}