我正在 LibGdx 上制作一款包含视频广告的游戏。我实现了接口(interface)及其方法。一切正常,显示视频。
安卓启动器:
public class MainAndroidLauncherAuthorization extends AndroidApplication implements
AdsController, RewardedVideoAdListener, AdHandler {
private static final String TAG = "GoogleActivity";
private static final int RC_SIGN_IN = 9001;
private FirebaseAuth mAuth;
private GoogleSignInClient mGoogleSignInClient;
private RewardedVideoAd rewardedVideoAd;
private boolean isRewardLoaded;
private boolean completed;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
setContentView(R.layout.activity);
initialize(new STARTGame(this, this), config);
MobileAds.initialize(this, "ca-app-pub-3940256099942544/5224354917");
rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
rewardedVideoAd.setRewardedVideoAdListener(this);
loadRewardedVideoAd();
}
public void loadRewardedVideoAd() {
isRewardLoaded=false;
rewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new
AdRequest.Builder().build());
}
@Override
public void onRewardedVideoAdLoaded() {
isRewardLoaded =true;
}
@Override
public void showRewardedVideo() {
runOnUiThread(new Runnable() {
@Override
public void run() {
if (rewardedVideoAd.isLoaded()) {
rewardedVideoAd.show();
} else {
loadRewardedVideoAd();
}
}
});
}
@Override
public boolean hasVideoReward(){
return isRewardLoaded;
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewardedVideoStarted() {
}
@Override
public void onRewardedVideoAdClosed() {
loadRewardedVideoAd();
}
@Override
public void onRewarded(RewardItem reward) {
loadRewardedVideoAd();
}
@Override
public void onRewardedVideoAdLeftApplication() {
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
}
@Override
public void onRewardedVideoCompleted() {
completed = true;
}
@Override
public boolean addCoins() {
return completed;
}
@Override
protected void onResume() {
super.onResume();
rewardedVideoAd.resume(this);
}
@Override
public void onPause() {
super.onPause();
rewardedVideoAd.pause(this);
}
@Override
public void onDestroy() {
super.onDestroy();
rewardedVideoAd.destroy(this);
}
@Override
public void coin_10() {
Prefs prefs = new Prefs();
prefs.plus_Coins_bank(10);
}
}
接口(interface):
public interface AdsController {
void showRewardedVideo();
void loadRewardedVideoAd();
boolean addCoins();
boolean hasVideoReward();
核心:
public class Win_01_18 extends Window implements AdsController, AdHandler {
private Prefs prefs;
public Win_01_18(AdHandler sums, final AdsController adsController, final AssetMan assetMan) {
super("", assetMan.get_skin_dialogs(), "dialog_window_main");
*******
Button btn_buy_10 = new Button(assetMan.get_skin_buttons_coins_video(), "btn_video_long");
***
btn_buy_10.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
adsController.showRewardedVideo();
super.clicked(event, x, y);
}
});
@Override
public void showRewardedVideo() {
}
@Override
public void loadRewardedVideoAd() {
}
@Override
public boolean addCoins() {
return false;
}
@Override
public boolean hasVideoReward() {
return false;
}
@Override
public void coin_10() {
}
一切正常。有2个问题: 1 - 如何检查 core-class 的 onRewardedVideoCompleted() 方法? 2 - 在core-class观看视频应该在什么情况下加币?
最佳答案
我目前正在自己尝试这个。但是如何改变
void showRewardedVideoAd()
bool 值
boolean showRewardedVideoAd()
然后在 onRewardedVideoCompleted() 中返回 true,如果失败则返回 false。
然后在调用你放置的广告的核心
boolean adFinished = False;
adFinished = adsController.showRewardedVideo();
if(adFinished){
// give them the coins or whatever
} else {
// the ad failed or the clicked it away early or something. Don't give them coins and go on
}
关于android - 我什么时候必须奖励在核心 (libgdx) 中观看视频的玩家?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59054445/