void CRS_ManContainer::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
    CCoeControl::HandlePointerEventL(aPointerEvent);
    //先判断可能的来电事件
    if (iCallStatus == CTelephony::EStatusRinging)
    {
        iData->iGameState = TEnum::EControlPaused;
        ReportEventL(MCoeControlObserver::EEventStateChanged);
        return;
    }
    //分析其它状态
    if (iData->iGameState == TEnum::EPlaying)
    {
        switch (aPointerEvent.iType)
        {
            case TPointerEvent::EButton1Down:
            {
                iGameKey = iActionAnalyst.GetGameKey(aPointerEvent.iPosition);
                break;
            }
            case TPointerEvent::EButton1Up:
            {
                iGameKey = TEnum::EKeyNone;
                break;
            }
            default:
            {
                break;
            }
        }

    }
    else if (iData->iGameState == TEnum::EControlAward && (iNormalDeadPlayer->iIsPlayCompleted
        || iDropDeadPlayer->iIsPlayCompleted))
    {
        //游戏结束
        Congratulation();
        //
        //iData->ResetDataForNewGame();
        ReportEventL(MCoeControlObserver::EEventStateChanged);
        return;
    }

    //处理暂停

    if (iGameKey == TEnum::EKeyPause)
    {
        iGfxTimer->Pause();
        iData->iGameState = TEnum::EControlPaused;
        ReportEventL(MCoeControlObserver::EEventStateChanged);
    }

    //HandleDebugGameKey();
}
Exemple #2
0
EXPORT_C TKeyResponse CEikButtonBase::OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType)
    {
	const TInt code=aKeyEvent.iCode;
	if (code==EKeyDownArrow || code ==EKeyUpArrow)
		return(EKeyWasNotConsumed);
    if (aType!=EEventKey)
        return(EKeyWasConsumed);
	CEikButtonBase::TState oldState=State();
   	switch (code)
        {
	case EKeyLeftArrow:
	case EKeyTab:
    case EKeyRightArrow:
		Animate();
	default:
		;
		}
	TKeyResponse ret=EKeyWasNotConsumed;
	if (State()!=oldState)
		{
		ReportEventL(MCoeControlObserver::EEventStateChanged);
		ret=EKeyWasConsumed;
		}
    return ret;
	}
void CBuddycloudEditPlaceList::NotificationEvent(TBuddycloudLogicNotificationType aEvent, TInt /*aId*/) {
	if(aEvent == ENotificationEditPlaceRequested) {
		LoadL();
	}
	else if(aEvent == ENotificationEditPlaceCompleted) {
		ReportEventL(MCoeControlObserver::EEventRequestExit);
	}
}
TKeyResponse CRS_ManContainer::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
{
    if (aType == EEventKey)
    {
        iGfxTimer->Pause();
        iData->iGameState = TEnum::EControlPaused;
        ReportEventL(MCoeControlObserver::EEventStateChanged);
    }
    return EKeyWasNotConsumed;
}
Exemple #5
0
void CAwardContainer::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
    CCoeControl::HandlePointerEventL(aPointerEvent);
    // 检查按钮是否都处于正常显示状态
    if (!IsButtonNormalDisplay())
    {
        return;
    }
    switch (aPointerEvent.iType)
    {
        case TPointerEvent::EButton1Down:
        {
            if (iReturn.iWorldPosition.Contains(aPointerEvent.iPosition))
            {
                iReturn.iIsButtonDown = ETrue;
                return;
            }
            break;
        }
        case TPointerEvent::EButton1Up:
        {
            if (iReturn.iIsButtonDown)
            {
                if (iReturn.iWorldPosition.Contains(aPointerEvent.iPosition))
                {
                    iGfxTimer->Pause();
                    iData->iPlayerInfo.WriterPlayerInfo();
                    iData->iGameState = TEnum::EControlMainMenu;
                    iData->ResetDataForNewGame();
                    ReportEventL(MCoeControlObserver::EEventStateChanged);
                    return;
                }
                else
                {
                    iReturn.iIsButtonDown = EFalse;
                }
            }
        }
        default:
        {
            break;
        }
    }
}
TKeyResponse CHlpSearchPrompt::OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType)
	{
	if	(aKeyEvent.iCode == EKeyEnter && aType == EEventKey)
		{
		ReportEventL(EEventStateChanged);
		return EKeyWasConsumed;
		}
	else if	(aKeyEvent.iCode == EKeyEscape && aType == EEventKey)
		{
		MakeVisible(EFalse);
		return EKeyWasConsumed;
		}
	else
		{
		iHideTimer->Cancel();
		iHideTimer->Start(KTimeOutPeriod, KTimeOutPeriod, TCallBack(HandleTimerExpiredL, this));
		return iEdwin->OfferKeyEventL(aKeyEvent, aType);
		}
	}
void CRS_ManContainer::HandleDebugGameKey()
{
    switch (iGameKey)
    {
        case TEnum::EFramesAdd:
        {
            AddFrame();
            iGameKey = TEnum::EKeyNone;
            break;
        }
        case TEnum::EFramesDesc:
        {
            DescFrame();
            iGameKey = TEnum::EKeyNone;
            break;
        }
        case TEnum::EScrollAdd:
        {
            iData->iScroll++;
            iGameKey = TEnum::EKeyNone;
            break;
        }
        case TEnum::EScrollDesc:
        {
            if (iData->iScroll > 0)
            {
                iData->iScroll--;
            }
            iGameKey = TEnum::EKeyNone;
            break;
        }
        case TEnum::EKeyPause:
        {
            iGfxTimer->Pause();
            iData->iGameState = TEnum::EControlPaused;
            ReportEventL(MCoeControlObserver::EEventStateChanged);
            break;
        }
    }
}
void CPausedContainer::HandleButtonUp(TPoint aPoint)
{
    //只有当抬起时所在的按钮正是处于ButtonDown的情况时,才能触发相应的事件
    if (iResume.iIsButtonDown)
    {
        if (iResume.iWorldPosition.Contains(aPoint))
        {
            iData->iGameState = TEnum::EPlaying;
            ReportEventL(MCoeControlObserver::EEventStateChanged);
            return;
        }
    }
    //
    if (iNewGame.iIsButtonDown)
    {
        if (iNewGame.iWorldPosition.Contains(aPoint))
        {
            iData->iGameState = TEnum::EWaitingStart;
            //iData数据重置
            iData->ResetDataForNewGame();
            ReportEventL(MCoeControlObserver::EEventStateChanged);
            return;
        }
    }
    if (iOption.iIsButtonDown)
    {
        if (iOption.iWorldPosition.Contains(aPoint))
        {
            iData->iPreviousState = TEnum::EControlPaused;
            iData->iGameState = TEnum::EControlOption;
            ReportEventL(MCoeControlObserver::EEventStateChanged);
            return;
        }
    }
    if (iHelp.iIsButtonDown)
    {
        if (iHelp.iWorldPosition.Contains(aPoint))
        {
            iData->iPreviousState = TEnum::EControlPaused;
            iData->iGameState = TEnum::EControlHelp;
            ReportEventL(MCoeControlObserver::EEventStateChanged);
            return;
        }
    }
    if (iReturn.iIsButtonDown)
    {
        if (iReturn.iWorldPosition.Contains(aPoint))
        {
            iData->iGameState = TEnum::EControlMainMenu;
            //返回主界面 意味着放弃当前Man的所有信息
            //iData数据重置
            iData->ResetDataForNewGame();
            ReportEventL(MCoeControlObserver::EEventStateChanged);
            return;
        }
    }
    iResume.iIsButtonDown = EFalse;
    iNewGame.iIsButtonDown = EFalse;
    iOption.iIsButtonDown = EFalse;
    iHelp.iIsButtonDown = EFalse;
    iReturn.iIsButtonDown = EFalse;
}