Kevin Wrasse
- Forum-Beiträge: 3
08.12.2010, 13:33:33 via Website
08.12.2010 13:33:33 via Website
Hallo,
ich übe gerade an einem kleinen Adventure-Game und benutze dafür die Candroid-Game-Engine.
Nun ist es so, dass ich für den ContentView einer Activity eine View-Klasse aufrufe, welche einen Touch-Listener enthält. Ich möchte erstmal durch einen Druck auf den Screen die Activity mitsamt View beende und zur Ursprungs-Activity zurückkehre (was ich momentan nur über den Back-Button erreiche).
Die aufrufende Klasse wird ja mit dem Context übergeben, liegt aber dann im Typ Context vor. Dieser hat keine Methode zum beenden.
Hier etwas Code:
Die Activity:
Der View:
Danke für die Hilfe,
Kevin
ich übe gerade an einem kleinen Adventure-Game und benutze dafür die Candroid-Game-Engine.
Nun ist es so, dass ich für den ContentView einer Activity eine View-Klasse aufrufe, welche einen Touch-Listener enthält. Ich möchte erstmal durch einen Druck auf den Screen die Activity mitsamt View beende und zur Ursprungs-Activity zurückkehre (was ich momentan nur über den Back-Button erreiche).
Die aufrufende Klasse wird ja mit dem Context übergeben, liegt aber dann im Typ Context vor. Dieser hat keine Methode zum beenden.
Hier etwas Code:
Die Activity:
1package de.serious.skillmaster.game.activities;
2
3import de.serious.skillmaster.game.views.Intro;
4import de.serious.skillmaster.game.views.LapScreen_View;
5import de.serious.skillmaster.game.views.Room1;
6import android.content.Context;
7import android.os.Bundle;
8import at.bartinger.candroid.CandroidActivity;
9
10public class Game_Screen extends CandroidActivity
11{
12 private Context myContext;
13 //private DisplayMetrics dm;
14
15 public static int gamelevel;
16
17 protected void onCreate(Bundle savedInstanceState)
18 {
19 this.myContext = this;
20 setFullscreen(true);
21
22 //dm = new DisplayMetrics();
23 //getWindowManager().getDefaultDisplay().getMetrics(dm);
24 super.onCreate(savedInstanceState);
25
26 switch (gamelevel)
27 {
28 case 1:
29 Intro in = new Intro (myContext);
30 setContentView(in);
31 break;
32
33 case 2:
34 Room1 gv = new Room1 (myContext);
35 setContentView(gv);
36 break;
37
38 case 3:
39 LapScreen_View lsv = new LapScreen_View (myContext);
40 setContentView(lsv);
41 break;
42
43 default :
44 break;
45 }
46
47 }
48
49}
2
3import de.serious.skillmaster.game.views.Intro;
4import de.serious.skillmaster.game.views.LapScreen_View;
5import de.serious.skillmaster.game.views.Room1;
6import android.content.Context;
7import android.os.Bundle;
8import at.bartinger.candroid.CandroidActivity;
9
10public class Game_Screen extends CandroidActivity
11{
12 private Context myContext;
13 //private DisplayMetrics dm;
14
15 public static int gamelevel;
16
17 protected void onCreate(Bundle savedInstanceState)
18 {
19 this.myContext = this;
20 setFullscreen(true);
21
22 //dm = new DisplayMetrics();
23 //getWindowManager().getDefaultDisplay().getMetrics(dm);
24 super.onCreate(savedInstanceState);
25
26 switch (gamelevel)
27 {
28 case 1:
29 Intro in = new Intro (myContext);
30 setContentView(in);
31 break;
32
33 case 2:
34 Room1 gv = new Room1 (myContext);
35 setContentView(gv);
36 break;
37
38 case 3:
39 LapScreen_View lsv = new LapScreen_View (myContext);
40 setContentView(lsv);
41 break;
42
43 default :
44 break;
45 }
46
47 }
48
49}
Der View:
1package de.serious.skillmaster.game.views;
2
3import android.content.Context;
4import at.bartinger.candroid.CandroidSurfaceView;
5import at.bartinger.candroid.background.FixedBackground;
6import at.bartinger.candroid.background.MultibleBackground;
7import at.bartinger.candroid.renderer.SurfaceRenderer;
8import at.bartinger.candroid.texture.Texture;
9import at.bartinger.candroid.texture.TextureAtlas;
10import at.bartinger.candroid.texture.TextureManager;
11
12public class Intro extends CandroidSurfaceView
13{
14 private SurfaceRenderer spriteRenderer;
15
16 public static boolean running = true;
17
18 Texture intro;
19
20 FixedBackground intro_fix;
21
22 MultibleBackground room1_MBg;
23
24
25 public Intro(Context context)
26 {
27 super(context);
28
29 spriteRenderer = new SurfaceRenderer();
30
31 intro = new Texture("graphics/explosion_andro_text1.png");
32
33 TextureAtlas atlas = new TextureAtlas();
34 atlas.addTexture(intro);
35 TextureManager.load(context, atlas);
36
37 intro_fix = new FixedBackground(intro);
38 spriteRenderer.setBackground(intro_fix);
39
40 setRendererAndStart(spriteRenderer);
41 }
42
43 @Override
44 public void onTouchDown (int touchX, int touchY, int pressure)
45 {
46//Hier weiß ich nicht weiter.
47 }
48
49 @Override
50 public void recycle()
51 {
52 intro.recycle();
53 }
54}
2
3import android.content.Context;
4import at.bartinger.candroid.CandroidSurfaceView;
5import at.bartinger.candroid.background.FixedBackground;
6import at.bartinger.candroid.background.MultibleBackground;
7import at.bartinger.candroid.renderer.SurfaceRenderer;
8import at.bartinger.candroid.texture.Texture;
9import at.bartinger.candroid.texture.TextureAtlas;
10import at.bartinger.candroid.texture.TextureManager;
11
12public class Intro extends CandroidSurfaceView
13{
14 private SurfaceRenderer spriteRenderer;
15
16 public static boolean running = true;
17
18 Texture intro;
19
20 FixedBackground intro_fix;
21
22 MultibleBackground room1_MBg;
23
24
25 public Intro(Context context)
26 {
27 super(context);
28
29 spriteRenderer = new SurfaceRenderer();
30
31 intro = new Texture("graphics/explosion_andro_text1.png");
32
33 TextureAtlas atlas = new TextureAtlas();
34 atlas.addTexture(intro);
35 TextureManager.load(context, atlas);
36
37 intro_fix = new FixedBackground(intro);
38 spriteRenderer.setBackground(intro_fix);
39
40 setRendererAndStart(spriteRenderer);
41 }
42
43 @Override
44 public void onTouchDown (int touchX, int touchY, int pressure)
45 {
46//Hier weiß ich nicht weiter.
47 }
48
49 @Override
50 public void recycle()
51 {
52 intro.recycle();
53 }
54}
Danke für die Hilfe,
Kevin
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.