Added advertisement to levels-screen

polished levels 14 and 16 (world 2)
This commit is contained in:
=
2018-05-13 15:23:04 +02:00
parent cd1932a9df
commit 3d3de3feed
14 changed files with 1610 additions and 1224 deletions

View File

@ -1160,9 +1160,6 @@
<obstacleData floating="true" moving="false" deadly="false" leftEdge="14.873224" rightEdge="16.300224" height="0.344" y="-0.14666666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="13.489897" rightEdge="14.916897" height="0.433" y="0.8733333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="15.221733" rightEdge="16.011734" height="0.382" y="0.55333334">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
@ -1187,7 +1184,7 @@
<obstacleData floating="false" moving="false" deadly="true" leftEdge="30.039848" rightEdge="30.539848" height="0.535" y="-0.3325">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="30.590002" rightEdge="31.303003" height="0.42" y="-0.39000005">
<obstacleData floating="false" moving="false" deadly="true" leftEdge="30.590002" rightEdge="31.303003" height="0.42" y="-0.39000005">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
@ -1299,39 +1296,36 @@
</stars>
<energy x="9.126682" y="0.8666665"/>
</level>
<level packId="2" id="16" goalX="34.76001" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<level packId="2" id="16" goalX="36.193424" startSpeed="0.5" endSpeed="0.5" terrainEdge="-0.6" ceilingEdge="1.0">
<terrainTiles class="java.util.ArrayList">
<tileData x="7.7578497" width="3.4223652"/>
<tileData x="14.044533" width="1.3870001"/>
<tileData x="23.205986" width="2.9279003"/>
<tileData x="28.029964" width="5.5200615"/>
<tileData x="32.099724" width="0.5934582"/>
<tileData x="33.163116" width="0.33332825"/>
<tileData x="34.07495" width="0.29034424"/>
<tileData x="14.041199" width="1.3803339"/>
<tileData x="23.202652" width="2.9345665"/>
<tileData x="28.609964" width="6.680065"/>
<tileData x="33.41646" width="0.90681076"/>
<tileData x="34.699867" width="0.46001053"/>
<tileData x="35.61837" width="0.17699814"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList">
<tileData x="15.880005" width="37.76001"/>
<tileData x="16.596712" width="39.193424"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData floating="true" moving="true" deadly="false" leftEdge="-1.2431667" rightEdge="-0.53016675" height="0.5" y="-1.1066666">
<moveComponent length="6.442" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.408"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="-0.57733333" rightEdge="0.11066669" height="0.369" y="-0.25999996">
<moveComponent length="10.0" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.907" hasPlayerXSpeed="false" triggerDistance="-0.306"/>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="-0.17066671" rightEdge="0.5173333" height="0.369" y="-0.23999996">
<moveComponent length="10.0" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.808" hasPlayerXSpeed="false" triggerDistance="0.531"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="0.20916629" rightEdge="0.7441663" height="0.344" y="0.58666664">
<moveComponent length="10.0" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.402" hasPlayerXSpeed="false" triggerDistance="0.0"/>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="3.6224968" rightEdge="4.157497" height="0.344" y="0.4866668">
<moveComponent length="7.268" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.402" hasPlayerXSpeed="true" triggerDistance="-0.265"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="2.3454988" rightEdge="2.574499" height="0.242" y="-0.63999987">
<moveComponent length="2.036" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.21" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="6.661017" rightEdge="6.8390174" height="0.255" y="0.20000003">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="7.2210164" rightEdge="7.399017" height="0.255" y="0.10666674">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="9.123349" rightEdge="9.40335" height="0.395" y="0.17333336">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="4.5433307" rightEdge="4.8233304" height="0.242" y="0.9266667">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="9.104517" rightEdge="9.435516" height="0.395" y="0.14000005">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="6.977016" rightEdge="7.2830157" height="0.268" y="0.8866666">
@ -1340,7 +1334,7 @@
<obstacleData floating="true" moving="true" deadly="false" leftEdge="9.615187" rightEdge="10.5581875" height="0.255" y="-1.0400001">
<moveComponent length="2.732" rotation="53.717" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.469"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="12.462691" rightEdge="13.150691" height="0.306" y="0.35333335">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="12.562697" rightEdge="13.250697" height="0.306" y="-0.026666496">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="13.270035" rightEdge="14.850035" height="0.369" y="0.0933333">
@ -1349,8 +1343,8 @@
<obstacleData floating="true" moving="false" deadly="false" leftEdge="13.810037" rightEdge="14.310037" height="0.178" y="0.42000008">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="16.429995" rightEdge="16.929995" height="0.311" y="-0.7466664">
<moveComponent length="1.34" rotation="46.178" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.245"/>
<obstacleData floating="true" moving="true" deadly="false" leftEdge="15.943325" rightEdge="16.443325" height="0.311" y="-0.633333">
<moveComponent length="1.469" rotation="65.969" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.245"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="17.138186" rightEdge="18.335184" height="0.803" y="0.9599997">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
@ -1370,37 +1364,37 @@
<obstacleData floating="true" moving="false" deadly="false" leftEdge="19.91481" rightEdge="20.83181" height="0.344" y="-1.0533333">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="false" deadly="false" leftEdge="24.024763" rightEdge="24.661764" height="0.497" y="-0.35150003">
<obstacleData floating="false" moving="false" deadly="false" leftEdge="24.024763" rightEdge="24.661764" height="0.446" y="-0.37700003">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.722425" rightEdge="24.977427" height="0.28" y="0.25333324">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.810263" rightEdge="25.116262" height="0.178" y="-0.1733332">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="25.023262" rightEdge="25.30326" height="0.357" y="-0.06666666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.750261" rightEdge="25.056261" height="0.178" y="-0.3866666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.876595" rightEdge="25.156593" height="0.318" y="-0.7333333">
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.923258" rightEdge="25.203257" height="0.318" y="-0.48666686">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="false" moving="true" deadly="false" leftEdge="25.333199" rightEdge="25.833199" height="0.242" y="-0.47900003">
<moveComponent length="5.619" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.224"/>
<moveComponent length="6.237" rotation="90.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="true" triggerDistance="-0.224"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="false" leftEdge="26.534367" rightEdge="27.145367" height="0.293" y="-0.12000001">
<obstacleData floating="true" moving="false" deadly="false" leftEdge="27.261032" rightEdge="27.872032" height="0.293" y="-0.13333334">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="28.905712" rightEdge="29.160713" height="0.344" y="-0.08666667">
<moveComponent length="1.418" rotation="90.0" startOffset="0.318" direction="1.0" speed="0.293" hasPlayerXSpeed="false" triggerDistance="0.0"/>
<obstacleData floating="true" moving="true" deadly="true" leftEdge="30.405722" rightEdge="30.660723" height="0.344" y="-0.10000001">
<moveComponent length="1.418" rotation="90.0" startOffset="0.644" direction="-1.0" speed="0.301" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="8.179015" rightEdge="8.841016" height="0.242" y="0.113333344">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
<obstacleData floating="true" moving="false" deadly="true" leftEdge="24.72806" rightEdge="25.085058" height="0.255" y="-0.8466666">
<moveComponent length="0.0" rotation="0.0" startOffset="0.0" direction="1.0" speed="0.0" hasPlayerXSpeed="false" triggerDistance="0.0"/>
</obstacleData>
</obstacles>
<stars class="java.util.ArrayList">
<positionData x="10.060024" y="0.1933333"/>
<positionData x="16.063366" y="-0.09333336"/>
<positionData x="10.06669" y="0.1733333"/>
<positionData x="19.970032" y="-0.24666664"/>
<positionData x="25.593235" y="-0.17333335"/>
</stars>
<energy x="2.4833322" y="0.9333333"/>
<energy x="6.229997" y="0.8533333"/>
</level>
</levels>
</levelPack>

View File

@ -12,6 +12,8 @@ import android.view.Window;
import android.view.WindowManager;
import android.widget.RelativeLayout;
import com.google.android.gms.ads.MobileAds;
import java.util.ArrayList;
import java.util.List;
@ -80,6 +82,8 @@ public class GameActivity extends Activity implements ExceptionHandler, User.LvU
super.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
MobileAds.initialize(this, "ca-app-pub-7069685539417779~2685294395");
if (!hasGLES20())
throw new Exception("OpenGL ES 2.0 not supported");

View File

@ -0,0 +1,9 @@
package de.frajul.endlessroll.main.ads;
public interface AdLoadingListener {
public void onAdLoaded();
public void onAdFailedToLoad(int errorCode);
}

View File

@ -0,0 +1,23 @@
package de.frajul.endlessroll.main.ads;
import com.google.android.gms.ads.AdListener;
public class CustomAdListener extends AdListener {
private AdLoadingListener adLoadingListener;
public CustomAdListener(AdLoadingListener adLoadingListener) {
super();
this.adLoadingListener = adLoadingListener;
}
@Override
public void onAdLoaded() {
adLoadingListener.onAdLoaded();
}
@Override
public void onAdFailedToLoad(int i) {
adLoadingListener.onAdFailedToLoad(i);
}
}

View File

@ -1,11 +1,20 @@
package de.frajul.endlessroll.main.screens;
import android.view.View;
import android.widget.LinearLayout;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import java.util.concurrent.atomic.AtomicBoolean;
import de.frajul.endlessroll.R;
import de.frajul.endlessroll.levels.Level;
import de.frajul.endlessroll.levels.LevelPack;
import de.frajul.endlessroll.main.GameActivity;
import de.frajul.endlessroll.main.GameLog;
import de.frajul.endlessroll.main.ads.AdLoadingListener;
import de.frajul.endlessroll.main.ads.CustomAdListener;
import de.frajul.endlessroll.views.LevelButton;
import de.frajul.endlessroll.views.LevelButtonOnClickListener;
import de.frajul.endlessroll.views.TopBar;
@ -13,19 +22,29 @@ import de.frajul.endlessroll.views.TopBar;
/**
* Created by Julian on 23.04.2016.
*/
public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnClickListener {
public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnClickListener, AdLoadingListener {
private LevelPack levelPack;
private TopBar topBar;
private LinearLayout topRow;
private LinearLayout bottomRow;
private AdView adView;
private AtomicBoolean waitingForAdResponse;
private AtomicBoolean adLoaded;
public LevelsScreen(GameActivity gameActivity) {
super(ScreenType.LEVELS, gameActivity, R.layout.levels);
topBar = super.createTopBar(R.id.levels_topbar);
topRow = (LinearLayout) layout.findViewById(R.id.levels_top_row);
bottomRow = (LinearLayout) layout.findViewById(R.id.levels_bottom_row);
adView = (AdView) layout.findViewById(R.id.levels_ad_view);
adView.setAdListener(new CustomAdListener(this));
adView.setVisibility(View.GONE);
waitingForAdResponse = new AtomicBoolean(false);
adLoaded = new AtomicBoolean(false);
loadAd();
}
public void onLevelPackSelected(LevelPack levelPack) {
@ -59,10 +78,19 @@ public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnC
bottomRow.addView(button.getView(), params);
}
private void loadAd() {
waitingForAdResponse.set(true);
AdRequest adRequest = new AdRequest.Builder().build();
adView.loadAd(adRequest);
}
@Override
public void prepareToBeShown() {
gameActivity.getSoundManager().menuMusic.start();
if (!adLoaded.get() && !waitingForAdResponse.get())
loadAd();
topBar.update();
build();
}
@ -78,4 +106,19 @@ public class LevelsScreen extends Screen<LinearLayout> implements LevelButtonOnC
if (!level.isLocked())
gameActivity.startGame(levelPack, level);
}
@Override
public void onAdLoaded() {
adLoaded.set(true);
waitingForAdResponse.set(false);
adView.setVisibility(View.VISIBLE);
}
@Override
public void onAdFailedToLoad(int errorCode) {
adLoaded.set(false);
waitingForAdResponse.set(false);
GameLog.i("LevelsScreen-Ad failed to load. ErrorCode=" + errorCode);
adView.setVisibility(View.GONE);
}
}

View File

@ -10,11 +10,24 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/backgrounds_menu_grasslands">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/levels_ad_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
ads:adSize="SMART_BANNER"
ads:adUnitId="ca-app-pub-3940256099942544/6300978111"/>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@drawable/backgrounds_menu_grasslands"
android:layout_above="@id/levels_ad_view"
android:overScrollMode="never"
android:scrollbars="none">
@ -47,4 +60,6 @@
</HorizontalScrollView>
</RelativeLayout>
</LinearLayout>

View File

@ -16,11 +16,6 @@
<color name="message_buttons">#daf10d</color>
<color name="toolbuttonInactiveNotReady">#db911c0f</color>
<color name="toolbuttonInactiveReady">#dbfff200</color>
<color name="toolbuttonActiveNotReady">#e5dc1522</color>
<color name="toolbuttonActiveReady">#db41e42b</color>
<color name="toolbuttonLocked">#db494b49</color>
<color name="toolslotDisabled">#715f5f</color>
<color name="toolslotDisabledSelected">#60715f</color>
<color name="toolslotEnabled">#db41e42b</color>