[JGE++教程] 第3篇: JSprite



掌叔
2008-06-10 15:50:58

摘自:bbs.khors.com
作者:Dr.Watson

JSprite 就是游戏里的"精灵", 用以寄放游戏内的角色之用, 主要功能就是动画处理.

动画种类:

ANIMATION_TYPE_LOOPING 重複播放
ANIMATION_TYPE_ONCE_AND_GONE 播放一次然后消失
ANIMATION_TYPE_ONCE_AND_BACK 播放一次然后停在第一格
ANIMATION_TYPE_PINGPONG 由前到后再由后到前的重複播放


对外变数:


bool mVisible 是否显示

float mX x位置

float mY y位置




JSprite methods:

JSprite::JSprite(JTexture *tex, float x, float y, float width, float height, bool flipped = false)

功能: 物件初始.

参数:

tex - 贴图
x - x贴图位置
y - y贴图位置
width - 贴图宽度
height - 贴图高度
flipped - 左右反转


virtual void JSprite::Update(float dt)

功能: 更新动画.

参数:

dt - 更新所用时间 (1/1000秒)


virtual void JSprite::Render();

功能: 显示动画


void JSprite::SetPosition(float x, float y)

功能: 设定位置

参数:

x - x位置
y - y位置


void JSprite::AddFrame(int x, int y, int width, int height, bool flipped = false)

功能: 新增一个动画格

参数:

x - x贴图位置
y - y贴图位置
width - 贴图宽度
height - 贴图高度
flipped - 左右反转


void JSprite::SetDuration(float duration)

功能: 设定动画速度

参数:

duration - 动画每格更新时间(1/1000秒)


virtual bool JSprite::CollideWith(JSprite *sprite)

功能: 碰撞测试

参数:

sprite - 碰撞测试对象


void JSprite::SetCollisionCircle(float cx, float cy, float radius)

功能: 设定碰撞测试圆形

参数:

cx - 圆心x
cy - 圆心y
radius - 圆半经


void JSprite::SetAnimationType(int type)

功能: 设定动画播放方法

参数:

type - 播放方法


void JSprite::ResetFrame()

功能: 重置动画到第一格


void JSprite::StartAnimation()

功能: 开始动画更新


void JSprite::StopAnimation()

功能: 停止动画更新



void JSprite::EnableAlpha(bool flag, float delta=0.0f)

功能: 设定更新时调整透明度

参数:

flag - true:更新 false:不更新
delta - 调整幅度


void JSprite::EnableScaling(bool flag, float delta=0.0f)

功能: 设定更新时调整缩放率

参数:

flag - true:更新 false:不更新
delta - 调整幅度


void JSprite::EnableRotation(bool flag, float delta=0.0f)

功能: 设定更新时调整角度

参数:

flag - true:更新 false:不更新
delta - 调整幅度


void JSprite::SetAlpha(float alpha)

功能: 设定透明度

参数:

alpha - 透明度


void JSprite::SetScale(float hscale, float vscale)

功能: 设定缩放率

参数:

hscale - 水平缩放率
vscale - 垂直缩放率


void JSprite::SetRotation(float rot)

功能: 设定角度

参数:

rot - 角度


JQuad* JSprite::GetQuad()

功能: 拿取贴图四边形

回应:

贴图四边形


float JSprite::GetXVelocity()

功能: 拿取x移动速度

回应:

x移动速度


float JSprite::GetYVelocity()

功能: 拿取y移动速度

回应:

y移动速度


void JSprite::SetSpeed(float speed)

功能: 设定移动速度

参数:

speed - 移动速度


float JSprite::GetSpeed()

功能: 拿取移动速度

回应:

移动速度


void JSprite::SetAngle(float angle)

功能: 设定移动角度

参数:

angle - 移动角度


void JSprite::SetAngle(float x, float y)

功能: 以目标设定移动角度

参数:

x - 目标x
y - 目标y


void JSprite::SetHotSpot(float x, float y)

功能: 设定动画中心点

参数:

x - 中心点x
y - 中心点y


void JSprite::SetColor(PIXEL_TYPE color)

功能: 设定渲染颜色

参数:

color - 渲染颜色


void JSprite::SetBlendMode(int blend)

功能: 设定渲染模式

参数:

blend - 渲染模式



float JSprite::GetAlpha()

功能: 拿取透明度

回应:

透明度


float JSprite::GetAngle()

功能: 拿取移动角度

回应:

移动角度


float JSprite::GetRotation()

功能: 拿取贴图角度

回应:

贴图角度



int JSprite::GetId()

功能: 拿取精灵id

回应:

精灵id


void JSprite::SetFlip(bool flip, int index = -1)

功能: 设定左右反转

参数:

flip - true: 反转 false:不反转
index - 动画格指标 (-1: 所有格)



void JSprite::SetBBox(int x, int y, int width, int height)

功能: 设定碰撞测试四边形 (未应用)

参数:

x - x位置
y - y位置
width - 宽度
height - 高度


void JSprite::GetBBox(int x, int y, int* xNow, int* yNow, int* width, int *height)

功能: 拿取碰撞测试四边形

参数:

x - x位置
y - y位置


回应:

xNow - x位置
yNow - y位置
width - 宽度
height - 高度


int JSprite::GetAnimationFrame()

功能: 拿取现时动画格数值

回应:

现时动画格数值


void JSprite::SetAnimationFrame(int frame)

功能: 设定动画格数值

参数:

frame - 动画格数值