📄 hero.java
字号:
package Creature;
/*
* Hero.java
*
* Created on 2005年11月19日, 上午8:51
*/
import Snowball.*;
import javax.microedition.lcdui.game.Sprite;
/*
*
* @author 诺飞
*/
public class Hero extends Creature
{
public int LifeNum;//生命数
public boolean GameOver; //游戏结束标志 true结束,false不结束
public boolean HeroRelive; //英雄复活 true复活,false不复活
public int Scores; //得分
public int TempScores; //得分
public int GoodsType; //物品种类
public boolean GoodsState;//物品状态
public int GoodsX; //物品X
public int GoodsY; //物品Y
/** Creates a new instance of Player */
public Hero(int x, int y, int WalkDir, Sprite ImageL, Sprite ImageR)
{
super(x, y, WalkDir, ImageL, ImageR);
//设置人物参数
StandFrame = 0;
WalkFrameStart = 1;
WalkFrameRate = 6;
WalkFrameScale = 2;
JumpUpFrame = 7;
JumpDownFrame = 8;
WalkInterval = 4;
JumpInterval = 3;
FeetStartL = 16;
FeetEndL = 25;
FeetStartR = 11;
FeetEndR = 20;
//添加攻击
AttackState = 0;
AttackFrame = 0;
AttackStartFrame = 9;
AttackEndFrame = 10;
//帧的宽,高
frameWidth = 30;
frameHeight = 30;
//生命
LifeNum = 3;
//英雄状态
State = true; //逻辑状态
DrawState = true; //绘画状态
//游戏状态
GameOver = false;//游戏结束
HeroRelive = false;//英雄复活
//物品
GoodsType = 0;
GoodsState = false;
//过关飞行
FlyVy = 20;
//得分
Scores = 0;
TempScores = 0;
}
//过程更新
public void Process(int TickCount)
{
super.Process(TickCount);
AttackProc();
Hortation();
}
//攻击按钮
public void Attack()
{
//处理动作
if(0 == AttackState){
AttackState = 1;
AttackFrame = 0;
}
}
//攻击过程
private void AttackProc(){
if(1 == AttackState){
//处理动作
Action = (0 == AttackFrame) ? AttackStartFrame : AttackEndFrame;
if(1 == AttackFrame){
AttackState = 0;
}
AttackFrame = 1;
}
}
//过关飞行过程
public void FlyProc(){
y = y - FlyVy;
}
/**==============================**
** 物品显示
**==============================**/
public void GoodsDisplay(int x , int y){
int Rnd; //随机数
//随机运动模拟
Rnd = Math.abs( this.rnd.nextInt() % 8);
if(1 == Rnd){
GoodsType = 1;
}
else if(2 == Rnd){
GoodsType = 2;
}
else if(3 == Rnd){
GoodsType = 3;
}
GoodsX = x;
GoodsY = y - 40;
}
//获得物品
public boolean GainGoods(){
if( x + 30 > GoodsX
&& x < GoodsX + 20
&& y - 10 > GoodsY
&& y - 40 < GoodsY + 20 && GoodsState )
{
if( 3 == GoodsType){
if( WalkInterval >= 10){
Scores += 500;
TempScores += 500;
}
else{
WalkInterval = WalkInterval + 2;
}
}
return true;
}
return false;
}
//英雄复活
public void HeroRelive(){
x = 0;
y = 185;
State = true;
DrawState = true;
MoveState = false;
GameOver = false;
if( HeroRelive ){
WalkInterval = 4;
HeroRelive = false;
}
}
//奖励
public void Hortation(){
//TempScores = Scores;
if( TempScores >= 10000){
LifeNum++;
TempScores = TempScores - 10000;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -