Witam, niedawno zacząłem się bawić a Android studio. Staram się korzystać z poradników dostępnych na internecie, leż utknąłem w pewnym momencie i nie potrafię się z niego wykaraskać:
package com.example.gra;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class Mapa11Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_mapa11);
}
public void click(View view) {
switch (view.getId())
{
case R.id.prawastrzalka11:
Intent i = new Intent(Mapa11Activity.this, Walka1Activity.class);
Bundle Bundle = new Bundle();
Bundle.putInt("nr1",0);
Bundle.putInt("nr2",1);
startActivity(i);
break;
case R.id.domenu:
Intent ii = new Intent(Mapa11Activity.this, MainActivity.class);
startActivity(ii);
break;
}
}
}
Mamy tutaj activity mapa11 w którym są dwa case na dwa inne przyciski, prawastrzalka11 jest to aktywność w której gracz przechodzi do menu walki oraz dwa bundle posiadające wartość 1 oraz 0
package com.example.gra;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class Walka1Activity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_walka1);
}
public void click(View view) {
switch (view.getId()) {
case R.id.przycisk_atak1: {
Intent[][] mapa = new Intent[3][4];
mapa[0][0] = new Intent(Walka1Activity.this, Mapa11Activity.class);
mapa[0][1] = new Intent(Walka1Activity.this, Mapa12Activity.class);
// mapa[0][2]=new Intent(Walka1Activity.this, Mapa13Activity.class);
// mapa[0][3]=new Intent(Walka1Activity.this, Mapa14Activity.class);
// mapa[1][0]=new Intent(Walka1Activity.this, Mapa21Activity.class);
// mapa[1][1]=new Intent(Walka1Activity.this, Mapa22Activity.class);
// mapa[1][2]=new Intent(Walka1Activity.this, Mapa23Activity.class);
// mapa[1][3]=new Intent(Walka1Activity.this, Mapa24Activity.class);
// mapa[2][0]=new Intent(Walka1Activity.this, Mapa31Activity.class);
// mapa[2][1]=new Intent(Walka1Activity.this, Mapa32Activity.class);
// mapa[2][2]=new Intent(Walka1Activity.this, Mapa33Activity.class);
// mapa[2][3]=new Intent(Walka1Activity.this, Mapa34Activity.class);
Bundle myBundle = getIntent().getExtras();
int nr1 = myBundle.getInt("nr1");
int nr2 = myBundle.getInt("nr2");
startActivity(mapa[nr1][nr2]);
}
break;
}
}
}
Tutaj mamy aktywność walka, w niej gracz ma się zmierzyć z potworem oraz po walce przejść do lokalizacji położonej odpowiednio w tablicy. Po pobraniu wartości bundla nr1 i nr2 startActivity powinno wyglądać tak:
startActivity(mapa[0][1]);
czyli powinno odpalić się:
mapa[0][1] = new Intent(Walka1Activity.this, Mapa12Activity.class);
przejście do mapy 12, lecz przy pierwszym podejściu do walki cofa mnie do mapy 11, a przy drugim crashuje program. Chciałem zdebugować ale bóg wie dlaczego crashuje wszystko na starcie debugowania. Starałem się dostarczyć najważniejsze informacje wiec mam nadzieje, że zrozumiecie o co mi chodziło.