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; }
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; }
Point2F SwipeGestureRecognizer::VelocityAverage() const { Point2F movement = TotalMovement(); float dt = TotalDuration(); if (dt>0.000001f) { return movement / dt; } return mpp(Math::FloatMaxValue, Math::FloatMaxValue); }
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; }
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; }
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; }
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)); } }
int main() { mpp(1,2); }
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() {
Point2F IScrollMathModel::Page() const { Point2F offset = Offset(); return mpp(offset.X / mCurrentWindow.Width(), offset.Y / mCurrentWindow.Height()); }
Point2F IScrollMathModel::PageCount() const { return mpp(mContainer.Width() / mCurrentWindow.Width(), mContainer.Height() / mCurrentWindow.Height()); }
Point2F IScrollMathModel::ScrollBarOffset() const { return mpp(HorizontalScrollBarOffset(), VerticalScrollBarOffset()); }
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; }
void SingleStrokeTemplate::AddTo(float toX, float toY, uint sampleCount) { AddLine(mCurrentAddPoint, mpp(toX, toY), sampleCount); mCurrentAddPoint.X = toX; mCurrentAddPoint.Y = toY; }
void SingleStrokeTemplate::AddLine(float fromX, float fromY, float toX, float toY, uint sampleCount) { AddLine(mpp(fromX, fromY), mpp(toX, toY), sampleCount); }