স্পর্শ সমর্থন যোগ করুন

টাচ ইনপুট ইভেন্টগুলি পরিচালনা করতে, আপনার গেম লুপে অ্যারে motionEvents পড়ুন৷ শেষবার এই অ্যারেগুলি সাফ করার পর থেকে ঘটে যাওয়া ঘটনাগুলি এতে রয়েছে৷ উপস্থিত ইভেন্টের সংখ্যা motionEventsCount এ সংরক্ষণ করা হয়।

  1. আপনার গেম লুপে প্রতিটি ইভেন্ট পুনরাবৃত্তি করুন এবং পরিচালনা করুন। এই উদাহরণে, নিম্নলিখিত কোড motionEvents পুনরাবৃত্তি করে এবং handle_event এর মাধ্যমে তাদের পরিচালনা করে:

    for(size_t i = 0; i < mApp->motionEventsCount; ++i) {
     
    GameActivityMotionEvent* motionEvent = mApp->motionEvents[i];

     
    int action = motionEvent->action;
     
    int actionMasked = action & AMOTION_EVENT_ACTION_MASK;
     
    int ptrIndex = (action & AMOTION_EVENT_ACTION_POINTER_INDEX_MASK) >>
        AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT
    ;

     
    struct CookedEvent ev;
      memset
    (&ev, 0, sizeof(ev));

     
    if (actionMasked == AMOTION_EVENT_ACTION_DOWN ||
        actionMasked
    == AMOTION_EVENT_ACTION_POINTER_DOWN) {
          ev
    .type = COOKED_EVENT_TYPE_POINTER_DOWN;
     
    } else if (actionMasked == AMOTION_EVENT_ACTION_UP ||
        actionMasked
    == AMOTION_EVENT_ACTION_POINTER_UP) {
          ev
    .type = COOKED_EVENT_TYPE_POINTER_UP;
     
    } else {
          ev
    .type = COOKED_EVENT_TYPE_POINTER_MOVE;
     
    }

      ev
    .motionPointerId = motionEvent->pointers[ptrIndex].id;
      ev
    .motionIsOnScreen = motionEvent->source == AINPUT_SOURCE_TOUCHSCREEN;
      ev
    .motionX = GameActivityPointerInfo_getX(
       
    &motionEvent->pointers[ptrIndex]);
      ev
    .motionY = GameActivityPointerInfo_getY(
       
    &motionEvent->pointers[ptrIndex]);

     
    if (ev.motionIsOnScreen) {
       
    // Use screen size as the motion range.
        ev
    .motionMinX = 0.0f;
        ev
    .motionMaxX = SceneManager::GetInstance()->GetScreenWidth();
        ev
    .motionMinY = 0.0f;
        ev
    .motionMaxY = SceneManager::GetInstance()->GetScreenHeight();
     
    }

      handle_event
    (&ev);
    }
  2. আপনার হয়ে গেলে, আপনি এইমাত্র পরিচালনা করেছেন এমন ইভেন্টগুলির সারি সাফ করতে মনে রাখবেন:

    android_app_clear_motion_events(mApp);