Exemplo n.º 1
0
bool HelloLuaGame::Start()
{
	ScriptEngine::State()->DoFile("main.lua");
	mGameScriptObject= ScriptEngine::State()->Get("HelloLuaGame");
	
	Point2I pos = mpp(12, 22);
	bool isSuccess = mGameScriptObject.InvokeMember<bool>("Start",pos);
	return isSuccess;
	return true;
}
Exemplo n.º 2
0
SpringScrollMathModel::SpringScrollMathModel(ScrollDirection direction /*= ScrollDirection::FreeFromCurrent*/)
	:IScrollMathModel(direction),
	mSpringLimitX(0),
	mSpringLimitY(0),
	mSpringSizePercent(mpp(0.2f, 0.2f)),
	mSpringFactor(100.f),
	mDampingStartFactor(100.f),
	mDampingFactor(0.8f)
{
	mInitialVelocityFactor = 0.8f;
}
Exemplo n.º 3
0
Point2F SwipeGestureRecognizer::VelocityAverage() const
{
	Point2F movement = TotalMovement();

	float dt = TotalDuration();
	if (dt>0.000001f)
	{
		return movement / dt;
	}

	return mpp(Math::FloatMaxValue, Math::FloatMaxValue);
}
Exemplo n.º 4
0
bool CircleShapeLayer::Initialize()
{
	RETURN_FALSE_IF_FALSE(BaseCaseLayer::Initialize());

	IShape* shape1= NodeFactory::Instance().CreateCircle(50.f,Math::PI2/720.f,Color4F::Red);
	shape1->SetAnchor(0.5f, 0.5f);
	shape1->SetDock(DockPoint::Percent);
	shape1->SetRelativePosition(mpp(0.3f, 0.5f));
	AddChild(shape1);

	
	return true;
}
Exemplo n.º 5
0
double prob(Blob& Y, Blob& p) {
    assert(Y.get_N() == p.get_N());
    assert(Y.get_C() == p.get_C());
    assert(Y.get_H() == p.get_H());
    assert(Y.get_W() == p.get_W());

    double ret = 0;
    int N = Y.get_N();
    int C = Y.get_C();
    vector<int> pp(N, -1);
    vector<int> yy(N, -2);
    mat mpp = p.reshape();
    mat myy = Y.reshape();
    
    for (int i = 0; i < N; ++i) {
        int idx_p = 0, idx_y = 0;
        double max_p = mpp(i,0), max_y = myy(i,0);
        for (int j = 1; j < C; ++j) {
            if (mpp(i, j) > max_p) {
                max_p = mpp(i, j);
                idx_p = j;
            }
            if (myy(i, j) > max_y) {
                max_y = myy(i, j);
                idx_y = j;
            }
        }
        pp[i] = idx_p;
        yy[i] = idx_y;
    }
    int cnt = 0;
    for (int i = 0; i < N; ++i) {
        if (pp[i] == yy[i])
            cnt++;
    }
    ret = (double)cnt / (double)N;
    return ret;
}
Exemplo n.º 6
0
void SpringScrollMathModel::OnUpdate()
{
	IScrollMathModel::OnUpdate();

	//update spring limit

	Point2F springOffset = mpp(mContainer.Size.Width*mSpringSizePercent.X, mContainer.Size.Height*mSpringSizePercent.Y);

	mSpringLimitX.Min = mStaticLimitX.Min - springOffset.X;
	mSpringLimitX.Max = mStaticLimitX.Max + springOffset.X;

	mSpringLimitY.Min = mStaticLimitY.Min - springOffset.Y;
	mSpringLimitY.Max = mStaticLimitY.Max + springOffset.Y;
}
Exemplo n.º 7
0
void IScrollMathModel::OnScrollingEnd()
{
	if (mDirection.IsHorizontal())
	{
		float left = mCurrentWindow.Left();
		float movement = mStaticLimitX.CalculateMinDockMovement(left);
		ScrollBy(mpp(-movement, 0.f));
	}
	else if (mDirection.IsVertical())
	{
		float bottom = mCurrentWindow.Bottom();
		float movement = mStaticLimitY.CalculateMinDockMovement(bottom);
		ScrollBy(mpp(0.f, -movement));
	}
	else
	{
		float left = mCurrentWindow.Left();
		float movementx = mStaticLimitX.CalculateMinDockMovement(left);

		float bottom = mCurrentWindow.Bottom();
		float movementy = mStaticLimitY.CalculateMinDockMovement(bottom);
		ScrollBy(mpp(-movementx, -movementy));
	}
}
Exemplo n.º 8
0
int main()
{
mpp(1,2);
}
Exemplo n.º 9
0
		child->SetAnchorPoint(AnchorPoint::MiddleTop);
		child->SetPosition(mainSprite->Position());
		child->MoveY(-child->Height()*(i + 1));
		normalLayer->AddChild(child);
		Point3F ratio = Point3F::One;
		ratio.X = (float)(mChildCount-i) / mChildCount;

		mComponent->EnableParallax(child, ratio, child->Position());
	}

	

	AddChild(normalLayer);
	normalLayer->AddComponent(mComponent);

	ScrollComponentScrollByPageAction* moveby = new ScrollComponentScrollByPageAction(mpp(4.f, 0.f), 4.f);
	ScrollComponentScrollByPageAction* moveback = moveby->Reverse();
	SequenceAction* seq = new SequenceAction(moveby, moveback);
	RepeatedForeverAction* rep = new RepeatedForeverAction(seq);

	mComponent->RunAction(rep);

	MutableInput().AddIMEHandler(nullptr, Bind(&ParallaxScrollComponentLayer::OnKeyDown,this), nullptr);
	return true;
}

void ParallaxScrollComponentLayer::OnRestart()
{


Exemplo n.º 10
0
Point2F IScrollMathModel::Page() const
{
	Point2F offset = Offset();
	return mpp(offset.X / mCurrentWindow.Width(), offset.Y / mCurrentWindow.Height());
}
Exemplo n.º 11
0
Point2F IScrollMathModel::PageCount() const
{
	return mpp(mContainer.Width() / mCurrentWindow.Width(), mContainer.Height() / mCurrentWindow.Height());
}
Exemplo n.º 12
0
Point2F IScrollMathModel::ScrollBarOffset() const
{
	return mpp(HorizontalScrollBarOffset(), VerticalScrollBarOffset());
}
Exemplo n.º 13
0
LRESULT WinWindow::WndProc(UINT message, WPARAM wParam, LPARAM lParam)
{
	SetFocus(mWindowHandle);
	switch (message)
	{
	case WM_PAINT:
	{
		PAINTSTRUCT ps;
		BeginPaint(mWindowHandle, &ps);
		EndPaint(mWindowHandle, &ps);
	}
	break;
	case WM_DESTROY:
		//DestroyWindow(hWnd);
		PostQuitMessage(0);
		break;
	case WM_LBUTTONDOWN:
		if (MK_LBUTTON == wParam)
		{
			SetCapture(mWindowHandle);
			short xi = Math::ClampAboveZero((short)LOWORD(lParam));
			short yi = Math::ClampAboveZero((short)HIWORD(lParam));
			float x = Math::Clamp((float)xi, 0.f, mSize.Width);
			float y = mSize.Height - Math::Clamp((float)yi, 0.f, mSize.Height);

			double timeStamp = Application::Instance().TimeStamp();
			Touch touch(TouchPhase::Began, 0, timeStamp, mpp(x, y), Point2F::Zero);
			TouchEventArg e(TouchPhase::Began, touch);
			InputManager::Instance().TouchesBegan(e);
			mPrevMouseTouch = touch;
		}
		break;
	case WM_MOUSEMOVE:
		if (MK_LBUTTON == wParam)
		{
			short xi = Math::ClampAboveZero((short)LOWORD(lParam));
			short yi = Math::ClampAboveZero((short)HIWORD(lParam));
			float x = Math::Clamp((float)xi, 0.f, mSize.Width);
			float y = mSize.Height - Math::Clamp((float)yi, 0.f, mSize.Height);

			double timeStamp = Application::Instance().TimeStamp();
			Touch touch(TouchPhase::Moved, 0, timeStamp, mpp(x, y), mPrevMouseTouch.Pos);
			TouchEventArg e(TouchPhase::Moved, touch);
			InputManager::Instance().TouchesMoved(e);
			mPrevMouseTouch = touch;
		}
		else
		{
			short xi = Math::ClampAboveZero((short)LOWORD(lParam));
			short yi = Math::ClampAboveZero((short)HIWORD(lParam));
			float x = Math::Clamp((float)xi, 0.f, mSize.Width);
			float y = mSize.Height - Math::Clamp((float)yi, 0.f, mSize.Height);

			ApplicationStatics::Instance().SetDebugTouch(mpp(x, y));
		}
		break;

	case WM_LBUTTONUP:
	{
		short xi = Math::ClampAboveZero((short)LOWORD(lParam));
		short yi = Math::ClampAboveZero((short)HIWORD(lParam));
		float x = Math::Clamp((float)xi, 0.f, mSize.Width);
		float y = mSize.Height - Math::Clamp((float)yi, 0.f, mSize.Height);
		double timeStamp = Application::Instance().TimeStamp();

		Touch touch(TouchPhase::Ended, 0, timeStamp, mpp(x, y), mPrevMouseTouch.Pos);

		TouchEventArg e(TouchPhase::Ended, touch);
		InputManager::Instance().TouchesEnded(e);
		ReleaseCapture();
		mPrevMouseTouch = Touch::Zero;

	}
	break;
	case WM_TOUCH:
	{
		unsigned int numInputs = (unsigned int)wParam;
		TOUCHINPUT* ti = new TOUCHINPUT[numInputs];
		if (GetTouchInputInfo((HTOUCHINPUT)lParam, numInputs, ti, sizeof(TOUCHINPUT)))
		{
			// Handle each contact point   
			for (unsigned int i = 0; i < numInputs; ++i)
			{
				/* handle ti[i]  */
			}
		}
		CloseTouchInputHandle((HTOUCHINPUT)lParam);
		delete[] ti;

	}
	break;
	case  WM_GESTURE:
	{
		GESTUREINFO gi;
		ZeroMemory(&gi, sizeof(GESTUREINFO));
		gi.cbSize = sizeof(gi);
		BOOL bResult = GetGestureInfo((HGESTUREINFO)lParam, &gi);
		bool isHandled = false;
		if (bResult)
		{
			switch (gi.dwID)
			{
			case GID_BEGIN:
				break;
			case GID_END:
				break;
			case GID_ZOOM:
				// Code for zooming goes here     
				isHandled = true;
				break;
			case GID_PAN:
				// Code for panning goes here
				isHandled = true;
				break;
			case GID_ROTATE:
				// Code for rotation goes here
				isHandled = true;
				break;
			case GID_TWOFINGERTAP:
				// Code for two-finger tap goes here
				isHandled = true;
				break;
			case GID_PRESSANDTAP:
				// Code for roll over goes here
				isHandled = true;
				break;
			default:
				// A gesture was not recognized
				break;
			}
		}
		else
		{
			DWORD dwErr = GetLastError();
			if (dwErr > 0)
			{
				MessageBoxW(mWindowHandle, L"Error!", L"Could not retrieve a GESTUREINFO structure.", MB_OK);
			}
		}

		CloseGestureInfoHandle((HGESTUREINFO)lParam);

		if (isHandled)
		{
			return 0;
		}
		else
		{
			return DefWindowProc(mWindowHandle, message, wParam, lParam);
		}


	}
	break;
	case WM_SIZE:
		switch (wParam)
		{
		case SIZE_RESTORED:
		case SIZE_MAXIMIZED:
		{
			Size2F newSize;
			newSize.Width = (float)LOWORD(lParam);
			newSize.Height = (float)HIWORD(lParam);
			OnResize(newSize);
			Application::Instance().Wakeup();
			Application::Instance().Resume();
		}
		break;
		case SIZE_MINIMIZED:
			Application::Instance().Pause();
			Application::Instance().Sleep();
			break;
		}
		break;
	case WM_KEYDOWN:
	{
		KeyDownEventArg e((uint)wParam, (uint)lParam);
		InputManager::Instance().KeyDown(e);
	}
	break;
	case WM_KEYUP:
	{
		KeyUpEventArg e((uint)wParam, (uint)lParam);
		InputManager::Instance().KeyUp(e);
	}
	break;
	case WM_CHAR:
	{
		CharInputEventArg e((uint)wParam, (uint)lParam);
		InputManager::Instance().CharInput(e);
	}
	break;
	case WM_MOUSEWHEEL:
	{
		short scrollPos = (short)HIWORD(wParam);
		short key = (short)LOWORD(wParam);
		ScrollEventArg e(scrollPos, key);
		InputManager::Instance().Scroll(e);

	}
	break;
	default:
		return DefWindowProc(mWindowHandle, message, wParam, lParam);
	}

	return 0;
}
Exemplo n.º 14
0
void SingleStrokeTemplate::AddTo(float toX, float toY, uint sampleCount)
{
	AddLine(mCurrentAddPoint, mpp(toX, toY), sampleCount);
	mCurrentAddPoint.X = toX;
	mCurrentAddPoint.Y = toY;
}
Exemplo n.º 15
0
void SingleStrokeTemplate::AddLine(float fromX, float fromY, float toX, float toY, uint sampleCount)
{
	AddLine(mpp(fromX, fromY), mpp(toX, toY), sampleCount);
}