Google 致力于为黑人社区推动种族平等。查看具体举措
This page was translated by the Cloud Translation API.
Switch to English

কোকোস 2 ডি-এক্স

এই গাইডটি প্রদর্শন করে যে কীভাবে ফর্মবেস সহ অ্যাডমবকে একটি নতুন তৈরি কোকোস 2 ডি-এক্স প্রকল্পের অন্তর্ভুক্ত করা যায়। আপনার যদি ইতিমধ্যে কোনও প্রকল্প না থাকে তবে আপনি পূর্বশর্তগুলি পেয়ে এবং কমান্ড লাইন থেকে একটি নতুন কোকো প্রকল্প তৈরি করে অনুসরণ করতে পারেন:

cocos new MyGame -l cpp
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID ||
     CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
  ...
#endif

পূর্বশর্ত

আপনার অবশ্যই অবশ্যই আপনার মেশিনে ইনস্টল করা থাকতে হবে:

  • কোকোস 2 ডি-এক্স এর সর্বশেষতম সংস্করণ
  • পাইথন ২.7 বা তারও বেশি
  • NDK r10d বা উচ্চতর (কেবল অ্যান্ড্রয়েড বিকাশের জন্য প্রয়োজনীয়)
  • কোকোপডগুলি 1.0.0 বা উচ্চতর (কেবলমাত্র আইওএস বিকাশের জন্য প্রয়োজনীয়)

ফায়ারবেস সি ++ এসডিকে দিয়ে অ্যাডমব পান

ফায়ারবেস সি ++ এসডিকে ডাউনলোড করুন। আপনার কোকোস 2 ডি-এক্স প্রকল্পের শীর্ষ স্তরের ডিরেক্টরিতে ফাইলগুলি বের করুন, একই ডিরেক্টরিতে আপনার proj.android-studio এবং proj.ios_mac ডিরেক্টরি রয়েছে। firebase_cpp_sdk ফোল্ডারের নাম দিন।

আইওএস সেট আপ করুন

নিম্নলিখিত পদক্ষেপগুলি কীভাবে ফায়ারবেস এসডিকে নতুনভাবে তৈরি কোকোস 2 ডি-এক্স আইওএস প্রকল্পে আমদানি করবে তা ব্যাখ্যা করে।

  1. আপনার অ্যাপে ফায়ারবেস যুক্ত করার পদক্ষেপগুলি অনুসরণ করুন । একবার সম্পন্ন হয়ে গেলে, আপনার proj.ios_mac/ ডিরেক্টরিতে থাকা proj.ios_mac/ প্রকল্পটির কোনও proj.ios_mac/ GoogleService-Info.plist ফাইলটি উল্লেখ করা উচিত।

  2. নীচের বিষয়বস্তু সহ আপনার proj.ios_mac/ ডিরেক্টরিতে একটি পডফিল তৈরি করুন:

    source 'https://github.com/CocoaPods/Specs.git'
    
    platform :ios, '7.0'
    
    # Replace "MyGame" with the name of your game.
    target 'MyGame-mobile' do
      pod 'Firebase'
      pod 'Firebase/AdMob'
    end
    
  3. কোকোপডগুলি ইনস্টল করতে pod update চালান এবং MyGame.xcworkspace নির্দেশ অনুসারে মাইগেম.এক্সক্রেসস্পেস খুলুন। এই মুহুর্তে, আপনার প্রকল্পে ফায়ারবেস এবং অ্যাডমোব আইওএস এসডি রয়েছে।

  4. কোকোপডস কয়েকটি বৈশিষ্ট্যে হারিয়ে যাওয়া $(inherited) সম্পর্কে সতর্কতা দেয়। এক্সকোডে মাইগেম-মোবাইল টার্গেটের জন্য বিল্ড সেটিংসে যান এবং নীচের প্রতিটি বিল্ড সেটিংসের জন্য তালিকার নীচে $(inherited) যুক্ত করুন:

    • অন্যান্য লিঙ্কার পতাকা
    • প্রিপ্রসেসর ম্যাক্রোস
    • লাইব্রেরি অনুসন্ধানের পথগুলি
  5. আপনি বিল্ড সেটিংসে থাকাকালীন আপনার ফ্রেমওয়ার্ক অনুসন্ধানের পথে $(PROJECT_DIR)/../firebase_cpp_sdk/frameworks/ios/universal এবং আপনার শিরোনাম অনুসন্ধানের $(PROJECT_DIR)/../firebase_cpp_sdk/include

  6. এর পরে, আপনি যে লাইব্রেরিগুলি ব্যবহার করতে চান তার একটি রেফারেন্স অন্তর্ভুক্ত করতে হবে। আপনার প্রকল্পে ডান ক্লিক করুন এবং "মাইগেম" এ ফাইল যুক্ত করুন নির্বাচন করুনfirebase_cpp_sdk/frameworks/ios/universal ডিরেক্টরি থেকে, firebase.framework এবং firebase_admob.framework নির্বাচন করুন। ফ্রেমওয়ার্কগুলি যুক্ত করার আগে, বিকল্পের প্রয়োজন হলে অনুলিপি করুন অনুলিপি করুন । পূর্ববর্তী পদক্ষেপে আপনি যে বিল্ড সেটিংস যুক্ত করেছেন সেটি ফ্রেমওয়ার্কগুলি কোথায় পাবেন তা এক্সকোডকে জানায়।

  7. GameController.framework করুন GameController.framework তৈরি করতে > গ্রন্থাগারগুলির সাথে বাইনারি লিঙ্ক করুন

  8. আইওএস 9 এবং তার বেশি বয়সে সমস্ত বিজ্ঞাপন সঠিকভাবে আচরণ করে তা নিশ্চিত করতে অ্যাডমবের অ্যাপ ট্রান্সপোর্ট সুরক্ষা গাইড অনুসরণ করুন।

চেকপয়েন্ট: আপনার এক্সকোড থেকে আইওএস অ্যাপটি তৈরি এবং পরিচালনা করতে সক্ষম হওয়া উচিত।

আপনি এখন আপনার আইওএস প্রকল্প অ্যাডমব এবং ফায়ারবেস সংহত করে সেট আপ করেছেন। আপনি অ্যান্ড্রয়েড প্রকল্প সেট আপ করতে প্রস্তুত।

অ্যান্ড্রয়েড সেট আপ করুন

নিম্নলিখিত পদক্ষেপগুলি কীভাবে ফায়ারবেস এসডিকে নতুনভাবে তৈরি কোকোস 2 ডি-এক্স অ্যান্ড্রয়েড প্রকল্পে আমদানি করবে তা ব্যাখ্যা করে।

  1. আপনার proj.android-studio/app/jni/Android.mk খুলুন এবং নীচে proj.android-studio/app/jni/Android.mk দেখানো লাইনগুলি যুক্ত করুন। আপনি সবেমাত্র ডাউনলোড করেছেন FIREBASE_CPP_SDK_DIR সি ++ এসডিকে লোকাল পথে FIREBASE_CPP_SDK_DIR সেট করা নিশ্চিত করুন।

    LOCAL_PATH := $(call my-dir)
     
    # The path to the Firebase C++ SDK, in the project's root directory.
    FIREBASE_CPP_SDK_DIR := ../../../firebase_cpp_sdk
     
    APP_ABI := armeabi-v7a x86
    STL := $(firstword $(subst _, ,$(APP_STL)))
    FIREBASE_LIBRARY_PATH := $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL)
     
    include $(CLEAR_VARS)
    LOCAL_MODULE := firebase_app
    LOCAL_SRC_FILES := $(FIREBASE_LIBRARY_PATH)/libapp.a
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/$(FIREBASE_CPP_SDK_DIR)/include
    include $(PREBUILT_STATIC_LIBRARY)
     
    include $(CLEAR_VARS)
    LOCAL_MODULE := firebase_feature
    LOCAL_SRC_FILES := $(FIREBASE_LIBRARY_PATH)/libadmob.a
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/$(FIREBASE_CPP_SDK_DIR)/include
    include $(PREBUILT_STATIC_LIBRARY)
     
    include $(CLEAR_VARS)
     
    $(call import-add-path,$(LOCAL_PATH)/../../../cocos2d)
    $(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/external)
    $(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos)
    $(call import-add-path,$(LOCAL_PATH)/../../../cocos2d/cocos/audio/include)
     
    LOCAL_MODULE := MyGame_shared
    LOCAL_MODULE_FILENAME := libMyGame
     
    LOCAL_SRC_FILES := hellocpp/main.cpp \
                       ../../../Classes/AppDelegate.cpp \
                       ../../../Classes/HelloWorldScene.cpp
     
    LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../Classes
     
    # _COCOS_HEADER_ANDROID_BEGIN
    # _COCOS_HEADER_ANDROID_END
     
    LOCAL_STATIC_LIBRARIES := cocos2dx_static
    LOCAL_STATIC_LIBRARIES += firebase_app
    LOCAL_STATIC_LIBRARIES += firebase_feature
     
    # _COCOS_LIB_ANDROID_BEGIN
    # _COCOS_LIB_ANDROID_END
     
    include $(BUILD_SHARED_LIBRARY)
     
    $(call import-module,.)
     
    # _COCOS_LIB_IMPORT_ANDROID_BEGIN
    # _COCOS_LIB_IMPORT_ANDROID_END
    
  2. আপনি এখনও আপনার কোকোস অ্যাপ্লিকেশন সংকলন করতে পারেন তা পরীক্ষা করুন:

    cocos compile -p android --ap android-24 --android-studio --app-abi armeabi-v7a
    
  3. proj.android-studio/ ডিরেক্টরিতে থাকা আপনার অ্যাপ্লিকেশনটিতে proj.android-studio/ করার পদক্ষেপগুলি অনুসরণ করুন।

  4. আপনার app/build.gradle এ বিজ্ঞাপন প্যাকেজ অন্তর্ভুক্ত করুন:

    implementation 'com.google.firebase:firebase-ads:19.6.0'
    
  5. আপনি এখনও আপনার কোকোস অ্যাপ্লিকেশন সংকলন করতে পারেন তা পরীক্ষা করুন:

    cocos compile -p android --ap android-42 --android-studio --app-abi armeabi-v7a
    

আপনার অ্যান্ড্রয়েড প্রকল্পটি এখন ফায়ারবেস সি ++ এসডিকে অ্যাডমব উপাদানগুলি উল্লেখ করে।

সি ++ ইন্টিগ্রেশন

এখন আপনার আইওএস এবং অ্যান্ড্রয়েড প্রকল্পগুলি ফায়ারবেস সি ++ এসডিকে রেফারেন্স করা হয়েছে, পরবর্তী পদক্ষেপটি এসডিকে ব্যবহার শুরু করা এবং কিছু বিজ্ঞাপন লোড করা।

ফায়ারবেস এবং অ্যাডমব শুরু করুন

আপনার অ্যাপ্লিকেশন লাইফসাইকে যত তাড়াতাড়ি সম্ভব ফায়ারবেস এবং অ্যাডমব শুরু করার পরামর্শ দেওয়া হয়। একটি Cocos2d-X প্রকল্পের জন্য এই আরম্ভের কোড যোগ সবচেয়ে প্রাকৃতিক জায়গায় AppDelegate.cpp ফাইল:

AppDelegate.cpp


#include "firebase/app.h"
#include "firebase/admob.h"

USING_NS_CC;

bool AppDelegate::applicationDidFinishLaunching() {

  ...

  #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  // Initialize Firebase for Android.
  firebase::App* app = firebase::App::Create(
  firebase::AppOptions(), JniHelper::getEnv(), JniHelper::getActivity());
  // Initialize AdMob.
  firebase::admob::Initialize(*app, "INSERT_YOUR_ADMOB_ANDROID_APP_ID");
  #elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
  // Initialize Firebase for iOS.
  firebase::App* app = firebase::App::Create(firebase::AppOptions());
  // Initialize AdMob.
  firebase::admob::Initialize(*app, "INSERT_YOUR_ADMOB_IOS_APP_ID");
  #endif
  // Initialize AdMob.
  firebase::admob::Initialize(*app);
  // Create a scene. it's an autorelease object.
  auto scene = HelloWorldScene::createScene();
  // run
  director->runWithScene(scene);
  return true;
}

অ্যান্ড্রয়েডে, ফায়ারবেস অ্যাপ্লিকেশন তৈরি করার জন্য একটি জেএনআই পরিবেশ এবং ক্রিয়াকলাপ প্রয়োজন। ব্যবহারসমূহ উপরে নমুনা কোড JniHelper থেকে Cocos2d-X বর্গ এই পরামিতি সরবরাহ করা যায়।

একটি বিজ্ঞাপন পিতামাতা পান

প্রতিটি বিজ্ঞাপনের ফর্ম্যাটটি আরম্ভ করার জন্য firebase::admob::AdParent অবজেক্ট দরকার। এই বস্তুটি অ্যান্ড্রয়েডের একটি Activity এবং আইওএস-এ একটি UIView যায়। নিম্নলিখিত সহায়ক শ্রেণি একটি একক getAdParent() পদ্ধতি তৈরি করে যা প্ল্যাটফর্মের উপর নির্ভর করে উপযুক্ত বস্তুটি প্রদান করে।

ফায়ারব্যাসহেল্পার

#ifndef __FIREBASE_HELPER_H__
#define __FIREBASE_HELPER_H__

#include "firebase/admob/types.h"

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <jni.h>
#elif (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
extern "C" {
#include <objc/objc.h>
}  // extern "C"
#endif

// Returns a variable that describes the ad parent for the app. On Android
// this will be a JObject pointing to the Activity. On iOS, it's an ID pointing
// to the root view of the view controller.
firebase::admob::AdParent getAdParent();

#endif // __FIREBASE_HELPER_H__

ফায়ারবেসহেল্পারসিপিপি

#include "FirebaseHelper.h"

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include "platform/android/jni/JniHelper.h"
#endif

USING_NS_CC;

firebase::admob::AdParent getAdParent() {
  #if (CC_TARGET_PLATFORM == CC_PLATFORM_IOS)
  // Returns the iOS RootViewController's main view (i.e. the EAGLView).
  return (id)Director::getInstance()->getOpenGLView()->getEAGLView();
  #elif (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
  // Returns the Android Activity.
  return JniHelper::getActivity();
  #else
  // A void* for any other environments.
  return 0;
  #endif
}

আপনার প্রকল্পের Classes/ ফোল্ডারে এই ফায়ারব্যাসহেলপার ক্লাসটি যুক্ত করুন। আইওএসের জন্য আপনার এক্সকোড প্রকল্পে এই ফাইলটি যুক্ত করা এবং অ্যান্ড্রয়েডের জন্য আপনার অ্যান্ড্রয়েড.এমকে স্থানীয় উত্স ফাইলগুলি আপডেট করার বিষয়টি নিশ্চিত করুন:

0 বি 7124 ডিবি 90

একটি ব্যানার বিজ্ঞাপন লোড করুন

উপরে বর্ণিত getAdParent() পদ্ধতিটি ব্যবহার করে getAdParent() ব্যানার বিজ্ঞাপনটি লোড করা যায় তার সম্পূর্ণ উদাহরণ নীচে প্রদর্শিত হবে getAdParent()

#include "FirebaseHelper.h"

#include "firebase/admob.h"
#include "firebase/admob/types.h"
#include "firebase/app.h"
#include "firebase/future.h"
#include "firebase/admob/banner_view.h"

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
#include <android/log.h>
#include <jni.h>
#include "platform/android/jni/JniHelper.h"
#endif

USING_NS_CC;

bool HelloWorld::init()
{
  // General scene setup ...

  #if defined(__ANDROID__)
  // Android ad unit IDs.
  const char* kBannerAdUnit = "ca-app-pub-3940256099942544/6300978111";
  #else
  // iOS ad unit IDs.
  const char* kBannerAdUnit = "ca-app-pub-3940256099942544/2934735716";
  #endif

  // Create and initialize banner view.
  firebase::admob::BannerView* banner_view;
  banner_view = new firebase::admob::BannerView();
  firebase::admob::AdSize ad_size;
  ad_size.ad_size_type = firebase::admob::kAdSizeStandard;
  ad_size.width = 320;
  ad_size.height = 50;
  banner_view->Initialize(getAdParent(), kBannerAdUnit, ad_size);

  // Schedule updates so that the Cocos2d-x update() method gets called.
  this->scheduleUpdate();
  return true;
}

void HelloWorld::update(float delta) {
  // Check that the banner has been initialized.
  if (banner_view->InitializeLastResult().status() ==
      firebase::kFutureStatusComplete) {
    // Check that the banner hasn't started loading.
    if (banner_view->LoadAdLastResult().status() ==
        firebase::kFutureStatusInvalid) {
      // Make the banner visible and load an ad.
      CCLOG("Loading a banner.");
      banner_view->Show();
      firebase::admob::AdRequest my_ad_request = {};
      banner_view->LoadAd(my_ad_request);
    }
  }
}

এরপর কি

এখন আপনার অ্যাডমব এসডিকে ফায়ারবেস আপনার কোকোস 2 ডি-এক্স প্রকল্পের সাথে সংহত করা হয়েছে, আপনি গুগল মোবাইল বিজ্ঞাপন এসডিকে সাথে ইন্টারঅ্যাক্ট করতে পারেন এবং আপনার পছন্দসই ফর্ম্যাটটি প্রয়োগ করতে পারেন: