http://www.askcheats.com/Snes/Secret-of-Mana-Cheats-Codes.html
import java.applet.*;
import java.awt.*;
class PolygonSprite extends Panel
{
// public variables
public int currFrame; // current frame to draw
public int minFrame; // first frame of a cycle
public int maxFrame; // last frame of a cycle
public float xPos; // x position
public float yPos; // y position
public float xSpeed;
public float ySpeed;
// constants
final int MAX_FRAMES = 30;
// private variables
private Polygon frame[] = new Polygon[MAX_FRAMES];
private Dimension frameSize[] = new Dimension[MAX_FRAMES];
private int numFrames;
// constructors
PolygonSprite()
{
for (int i=0; i=0 && currFrame=0)
{
return frameSize[currFrame].width;
}
else
{
return -1;
}
}
public int maxWidth()
{
int w = 0;
for (int i=0; i w)
{
w = frameSize[i].width;
}
}
return w;
}
public int height()
{
if (currFrame>=0)
{
return frameSize[currFrame].height;
}
else
{
return -1;
}
}
public int maxHeight()
{
int h = 0;
for (int i=0; i h)
{
h = frameSize[i].height;
}
}
return h;
}
void addFrame(int xPoints[], int yPoints[], int numPoints)
{
// check the frame is available
if (numFrames < MAX_FRAMES)
{
frame[numFrames] = new Polygon(xPoints, yPoints, numPoints);
// calculate extremes
int maxX = xPoints[0];
int maxY = xPoints[0];
for (int i=1; i maxX)
{
maxX = xPoints[i];
}
if (yPoints[i] > maxY)
{
maxY = yPoints[i];
}
}
frameSize[numFrames] = new Dimension(maxX, maxY);
numFrames++;
}
}
void nextFrame()
{
if (numFrames>1)
{
currFrame++;
currFrame %= numFrames;
}
}
}
/////////////////////////////////////////////////////////////////////
class Bullet
{
// public variables
public float xPos; // x position
public float yPos; // y position
public float xSpeed; // x speed
public float ySpeed; // y speed
public boolean alive; // is the bullet active?
Bullet()
{
xPos = 0;
yPos = 0;
xSpeed = 0;
ySpeed = 0;
alive = false;
}
void draw(Graphics g)
{
if (alive)
{
g.drawLine((int)xPos,(int)yPos,(int)(xPos+1),(int)yPos);
g.drawLine((int)xPos,(int)(yPos+1),(int)(xPos+1),(int)(yPos+1));
}
}
}
/////////////////////////////////////////////////////////////////////
class Alien extends PolygonSprite
{
public int type;
public boolean alive;
public boolean dying;
public int delay;
public int hitPoints;
public boolean flash;
public int moving;
public int score;
private final int MAX_BITS= 30;
private float bitX[] = new float[MAX_BITS];
private float bitY[] = new float[MAX_BITS];
private float bitXSpeed[] = new float[MAX_BITS];
private float bitYSpeed[] = new float[MAX_BITS];
private boolean bitAlive[] = new boolean[MAX_BITS];
Alien()
{
type = -1;
alive = false;
dying = false;
flash = false;
hitPoints = 0;
score = 0;
// initialise dying bits
float xp = maxWidth()/2;
float yp = maxHeight()/2;
for (int i=0; i0)
{
alien[i].delay--;
}
else
{
if (alien[i].type==2)
{
alien[i].xSpeed = (float) ((Math.random()*2) - 1) * 5;
alien[i].ySpeed = (float) (Math.random() * 5);
}
if (alien[i].type==4)
{
alien[i].moving--;
if (alien[i].moving <= 0)
{
alien[i].xSpeed = -alien[i].xSpeed;
alien[i].moving = 10 + (int)(Math.random()*30);
}
}
float newx = alien[i].xPos += alien[i].xSpeed;
//if ((newx<0) || (newx + alien[i].width()>appletWidth))
//{
// alien[i].xSpeed = -alien[i].xSpeed;
// alien[i].xPos += alien[i].xSpeed;
//}
if (newx + alien[i].width() < 0)
{
alien[i].xPos = appletWidth;
}
else
if (newx > appletWidth)
{
alien[i].xPos = -alien[i].width();
}
alien[i].xPos += alien[i].xSpeed;
alien[i].yPos += alien[i].ySpeed;
if (alien[i].yPos > appletHeight)
{
// deplete energy
energy -= alien[i].hitPoints;
if (energy < 0)
{
energy = 0;
}
// kill sprite
alien[i].alive = false;
}
}
}
}
// update player bullets
for (int i=0; iappletWidth ||
playerBullet[i].yPos<0 || playerBullet[i].yPos>appletHeight)
{
playerBullet[i].alive = false;
}
}
}
// check for collisions
for (int a=0; a alien[a].xPos &&
playerBullet[b].xPos < alien[a].xPos + alien[a].width() &&
playerBullet[b].yPos > alien[a].yPos &&
playerBullet[b].yPos < alien[a].yPos + alien[a].height())
{
alien[a].flash = true;
alien[a].hitPoints--;
if (alien[a].hitPoints<=0)
{
alien[a].dying = true;
if (level>0)
{
score += alien[a].score * 2;
}
}
playerBullet[b].alive = false;
}
}
}
}
}
// draw border, energy , level name and score
if (energy<10)
{
g.setColor(Color.red);
}
else
{
g.setColor(Color.red);
}
g.drawRect(0,0,appletWidth-1,appletHeight-1);
if (level==0)
{
g.setColor (Color.red);
// some extra text
String s1 = "super 3D-Shooter";
String s2 = "Klicken um zu starten";
FontMetrics fm = g.getFontMetrics();
int s1x = (appletWidth - fm.stringWidth(s1))/2;
int s2x = (appletWidth - fm.stringWidth(s2))/2;
g.drawString(s1,s1x,105);
g.drawString(s2,s2x,150);
}
if (level>0)
{
g.drawString("Energy: " + energy + "%", 20, appletHeight - 20);
g.drawString("Score: " + score , appletWidth - 100, 20);
switch (level)
{
case 1:
{
g.drawString("Level One",20,20);
break;
}
case 2:
{
g.drawString("Level Two",20,20);
break;
}
case 3:
{
g.drawString("Level Three",20,20);
break;
}
case 4:
{
g.drawString("Level Four",20,20);
break;
}
case 5:
{
g.drawString("Level Five",20,20);
break;
}
}
}
// draw the aliens
for (int i=0; i 0)
{
addBullet(x,y);
}
}
return true;
}
public void addBullet(int x, int y)
{
for (int i=0; i=Math.abs(dy))
{
playerBullet[i].xSpeed = dx/absdx;
playerBullet[i].ySpeed = dy/absdx;
}
else
{
playerBullet[i].ySpeed = dy/absdy;
playerBullet[i].xSpeed = dx/absdy;
}
playerBullet[i].xSpeed *= 4;
playerBullet[i].ySpeed *= 4;
playerBullet[i].alive = true;
break;
}
}
}
public void run()
{
// define and initialise player
int player100x[] = {0,10,20,0};
int player100y[] = {20,0,20,20};
int player100num = 4;
player = new PolygonSprite();
player.addFrame(player100x, player100y, player100num);
player.currFrame = 0;
player.xPos = (appletWidth - player.width())/2;
player.yPos = appletHeight - player.height() - 2;
// initialise player bullets
for (int i=0; i0)
{
alien[i].reset();
alien[i].type = 1;
alien[i].addFrame(alien100x, alien100y, alien100num);
alien[i].addFrame(alien101x, alien101y, alien101num);
alien[i].addFrame(alien102x, alien102y, alien102num);
alien[i].addFrame(alien103x, alien103y, alien103num);
alien[i].xSpeed = 0;
alien[i].ySpeed = (float) ((Math.random() * 5)+0.5);
alien[i].hitPoints = 1;
alien[i].score = 1;
alien[i].alive = true;
alien[i].dying = false;
numAlien01--;
}
else
if (numAlien02>0)
{
alien[i].reset();
alien[i].type = 2;
alien[i].addFrame(alien200x, alien200y, alien200num);
alien[i].addFrame(alien201x, alien201y, alien201num);
alien[i].addFrame(alien202x, alien202y, alien202num);
alien[i].addFrame(alien203x, alien203y, alien203num);
alien[i].addFrame(alien204x, alien204y, alien204num);
alien[i].addFrame(alien205x, alien205y, alien205num);
alien[i].addFrame(alien206x, alien206y, alien206num);
alien[i].addFrame(alien207x, alien207y, alien207num);
alien[i].xSpeed = 0;
alien[i].ySpeed = (float) ((Math.random() * 6)+0.5);
alien[i].hitPoints = 3;
alien[i].score = 2;
numAlien02--;
}
else
if (numAlien03>0)
{
alien[i].reset();
alien[i].type = 3;
alien[i].addFrame(alien300x, alien300y, alien300num);
alien[i].addFrame(alien301x, alien301y, alien301num);
alien[i].addFrame(alien302x, alien302y, alien302num);
alien[i].addFrame(alien303x, alien303y, alien303num);
alien[i].addFrame(alien304x, alien304y, alien304num);
alien[i].xSpeed = (float) ((Math.random()*2) - 1) * 3;
alien[i].ySpeed = (float) ((Math.random() * 5)+0.5);
alien[i].hitPoints = 5;
alien[i].score = 5;
numAlien03--;
}
else
if (numAlien04>0)
{
alien[i].reset();
alien[i].type = 4;
alien[i].addFrame(alien400x, alien400y, alien400num);
alien[i].addFrame(alien401x, alien401y, alien401num);
alien[i].addFrame(alien402x, alien402y, alien402num);
alien[i].addFrame(alien403x, alien403y, alien403num);
alien[i].xSpeed = (float) (Math.random() * 4);
alien[i].ySpeed = (float) ((Math.random() * 2)+0.5);
alien[i].hitPoints = 10;
alien[i].score = 10;
alien[i].moving = 20;
numAlien04--;
}
else
if (numAlien05>0)
{
alien[i].reset();
alien[i].type = 5;
alien[i].addFrame(alien500x, alien500y, alien500num);
alien[i].addFrame(alien501x, alien501y, alien501num);
alien[i].addFrame(alien502x, alien502y, alien502num);
alien[i].addFrame(alien503x, alien503y, alien503num);
alien[i].addFrame(alien504x, alien504y, alien504num);
alien[i].addFrame(alien505x, alien505y, alien505num);
alien[i].addFrame(alien506x, alien506y, alien506num);
alien[i].addFrame(alien507x, alien507y, alien507num);
alien[i].xSpeed = (float) (Math.random() * 2);
alien[i].ySpeed = 1;
alien[i].hitPoints = 40;
alien[i].score = 100;
numAlien05--;
}
else
{
finished = true;
}
if (!finished)
{
alien[i].xPos = (float) (Math.random() * (appletWidth - alien[i].maxWidth()));
alien[i].yPos = -1 * alien[i].maxWidth();
alien[i].delay = i * alienDelay;
alien[i].currFrame = 0;
alien[i].alive = true;
alien[i].dying = false;
i++;
}
}
}
boolean done = false;
while(!done)
{
repaint();
try
{
thread.sleep(100);
}
catch (InterruptedException e)
{
}
if (gameComplete || energy<=0)
{
wait--;
if (wait==0)
{
done = true;
restart = true;
}
}
else
{
done = true;
for (int i=0; i
JZOOAttack-Applet
JZOOAttack-Applet