📄 zview.java
字号:
// Decompiled by DJ v2.9.9.60 Copyright 2000 Atanas Neshkov Date: 2004-12-12 17:51:58
// Home Page : http://members.fortunecity.com/neshkov/dj.html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: ZView.java
public class ZView
{
public void SetStatus(int i)
{
if(fStatus == i)
{
return;
} else
{
fStatus = i;
fStatusTimer = 0;
fXOrg = fOriginalXOrg;
fYOrg = fOriginalYOrg;
fShakeYAmount = 0;
fWorld.SetViewerMidPos(fXOrg, fYOrg);
return;
}
}
public void Align(ZWorld zworld)
{
if(fStatus == 1)
{
if(fStatusTimer % 2 < 1)
fShakeYAmount = 0;
else
fShakeYAmount = -5;
fYOrg = fOriginalYOrg + fShakeYAmount;
fXOrg = fOriginalXOrg + fShakeYAmount;
fWorld.SetViewerMidPos(fXOrg, fYOrg);
fStatusTimer++;
if(fStatusTimer >= 4)
SetStatus(0);
}
fMatrix.InitTrans();
fMatrix.Translate(-fX, -fY, -fZ);
fMatrix.Rotate(ANGLE_360 - fXAngle, ANGLE_360 - fYAngle, ANGLE_360 - fZAngle);
fWorld.AlignWithViewer(fMatrix);
}
public void Draw(ZWorld zworld)
{
Align(zworld);
zworld.Draw();
}
public void ShakeView()
{
fTimer++;
if(fTimer > 5L)
{
fTimer = 0L;
if(fShakeYAmount != 0)
fShakeYAmount = 0;
else
fShakeYAmount = -1;
fYOrg = fOriginalYOrg + fShakeYAmount;
fWorld.SetViewerMidPos(fXOrg, fYOrg);
}
}
public void SetPos(int i, int j, int k, int l, int i1, int j1)
{
fX = i;
fY = j;
fZ = k;
fXAngle = l;
fYAngle = i1;
fZAngle = j1;
}
public void SetWorld(ZWorld zworld)
{
fWorld = zworld;
}
public boolean Shoot(ZWorld zworld)
{
if(fNumActiveBullets < 5)
{
ZBulletObject zbulletobject = new ZBulletObject();
zbulletobject.LaunchPlayerBullet(fX, fY, fZ, 0, fYAngle, 0);
fNumActiveBullets++;
return true;
} else
{
return false;
}
}
public void RotateXZ(int i, int j)
{
fXAngle += i;
if(fXAngle < 0)
{
fXAngle += ANGLE_360;
return;
}
if(fXAngle >= ANGLE_360)
fXAngle -= ANGLE_360;
}
public ZView()
{
fMatrix = new ZMatrix();
}
public void RotateOnYAxis(int i)
{
fYAngle += i;
if(fYAngle < 0)
{
fYAngle += ANGLE_360;
return;
}
if(fYAngle >= ANGLE_360)
fYAngle -= ANGLE_360;
}
public void SetView(int i, int j, int k, int l, int i1, int j1)
{
fXOrg = i1;
fYOrg = j1;
fXMin = i;
fXMax = k;
fYMin = j;
fYMax = l;
fOriginalXOrg = fXOrg;
fOriginalYOrg = fYOrg;
fShakeYAmount = 0;
fTimer = 0L;
fNumActiveBullets = 0;
}
public void Move(int i)
{
int j = fX;
int k = fZ;
float f4 = ZTable.fCos[fYAngle];
float f5 = ZTable.fSin[fYAngle];
if(i > 0)
{
for(int l = i; l > 0; l--)
{
float f = (float)l * f4;
float f2 = (float)l * f5;
fX = j + (int)f2;
fZ = k + (int)f;
if(!fWorld.CheckCollisionWithViewer() && !fWorld.HasPassedWorldEdges(fX, fZ))
{
ShakeView();
return;
}
}
fStatus = 1;
fStatusTimer = 0;
return;
}
for(int i1 = i; i1 < 0; i1++)
{
float f1 = (float)i1 * f4;
float f3 = (float)i1 * f5;
fX = j + (int)f3;
fZ = k + (int)f1;
if(!fWorld.CheckCollisionWithViewer() && !fWorld.HasPassedWorldEdges(fX, fZ))
{
ShakeView();
return;
}
}
fStatus = 1;
fStatusTimer = 0;
}
public void MoveY(int i)
{
fY += i;
}
int fXMin;
int fXMax;
int fYMin;
int fYMax;
int fXOrg;
int fYOrg;
int fOriginalXOrg;
int fOriginalYOrg;
int fShakeYAmount;
int fX;
int fY;
int fZ;
int fXAngle;
int fYAngle;
int fZAngle;
ZMatrix fMatrix;
ZWorld fWorld;
static final int ANGLE_360 = 1920;
static final int OK = 0;
static final int SHAKING = 1;
int fStatus;
int fStatusTimer;
long fTimer;
int fEnergy;
int fScore;
int fRemainingEnemies;
int fNumActiveBullets;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -