📄 actioncircle.cpp
字号:
#include "ActiveCircle.h"
#include "CircleContainer.h"
CActiveCircle::CActiveCircle(CCircleContainer* aBallAppView, TInt ax,TInt ay)
:CActive(CActive::EPriorityStandard)
{
iCCircleContainer = NULL;
iPoint.SetXY(ax,ay);
iCCircleContainer = aBallAppView;
iTimer.CreateLocal();
vx = 10;
vy = 10;
//将活动对象加入对象调度器
CActiveScheduler::Add(this);
}
CActiveCircle::~CActiveCircle()
{
Cancel();
iTimer.Close();
}
void CActiveCircle::Start()
{
if(IsActive())
{
return;
}
else
{
//调用异步函数
iTimer.After(iStatus,100000);
//激活活动对象
SetActive();
}
}
void CActiveCircle::RunL()
{
int x = iPoint.iX;
int y = iPoint.iY;
x += vx;
y += vy;
if(x < 0)
{
x = -x;
vx = -vx;
}
if(x > 137)
{
x = 264 - x;
vx = -vx;
}
if(y < 0)
{
y = -y;
vy = -vy;
}
if(y > 103)
{
y = 200 - y;
vy = -vy;
}
//设置新座标
iPoint.SetXY(x,y);
//重新绘制屏幕显示
iCCircleContainer->DrawNow();
//再次启动
this->Start();
}
void CActiveCircle::DoCancel()
{
iTimer.Cancel();
}
TPoint& CActiveCircle::GetPoint()
{
return iPoint;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -