Closed mec799 closed 2 years ago
When an object collides with the other, it has to send it to another page with Intent, but it throws it from the application, I get a timer nullpointer exception error in logcat records. How can I fix this problem? I described it as follows ;
`package com.mec.hikobabarun;
import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout;
import android.annotation.SuppressLint; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.TextView;
import java.util.Timer; import java.util.TimerTask;
public class OyunEkrani extends AppCompatActivity { private TextView textViewBaslamak ; private TextView skor ; private ImageView hiko ; private ImageView dondurma ; private ImageView karpuz ; private ImageView ordek ; private ConstraintLayout cl ; //POZİSYONLAR private int hikoX; private int hikoY ; private int dondurmaX; private int dondurmaY; private int ordekX; private int ordekY; private int karpuzX; private int karpuzY; //KONTROLLER private boolean dokunmaKontrol = false ; private boolean baslangicKontrol = false ; //BOYUTLAR private int ekranGenisligi ; private int ekranYuksekligi ; private int hikoYuksekligi ; private int hikoGenisligi ; //Hızlar private int hikoHız ; private int karpuzHız ; private int dondurmaHız ; private int ordekHız ;
private Timer timer = new Timer(); private final Handler handler = new Handler(); private int sayi ; @SuppressLint("ClickableViewAccessibility") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_oyun_ekrani); textViewBaslamak = findViewById(R.id.textViewBaslamak); skor = findViewById(R.id.skor); hiko = findViewById(R.id.hiko); dondurma = findViewById(R.id.dondurma); karpuz = findViewById(R.id.karpuz); ordek = findViewById(R.id.ordek); cl = findViewById(R.id.cl); final MediaPlayer ses = MediaPlayer.create(this, R.raw.hikoses); dondurma.setX(-80); dondurma.setY(-80); karpuz.setX(-80); karpuz.setY(-80); ordek.setX(-80); ordek.setY(-80); cl.setOnTouchListener((View.OnTouchListener) (v, event) -> { if (baslangicKontrol){ if(event.getAction() == MotionEvent.ACTION_DOWN){ dokunmaKontrol = true; } if(event.getAction() == MotionEvent.ACTION_UP){ dokunmaKontrol = false; } } else{ textViewBaslamak.setVisibility(View.INVISIBLE); baslangicKontrol = true ; hikoX = (int) hiko.getX(); hikoY = (int) hiko.getY(); hikoYuksekligi = (int) hiko.getHeight(); hikoGenisligi = (int) hiko.getWidth(); ekranYuksekligi = (int) cl.getHeight(); ekranGenisligi = (int) cl.getWidth(); timer.schedule(new TimerTask() { @SuppressLint("ClickableViewAccessibility") @Override public void run() { handler.post(() -> { hikoHareketEttirme(); cisimleriHareketEttir(); carpismaKontrol(); }); } }, 0 , 20); } return true; }); } public void hikoHareketEttirme (){ hikoHız = Math.round(ekranYuksekligi/60); if(dokunmaKontrol){ hikoY -= hikoHız ; } else { hikoY += hikoHız ; } if(hikoY <= 0 ){ hikoY = 0; } if(hikoY >= ekranYuksekligi- hikoYuksekligi){ hikoY = ekranYuksekligi- hikoYuksekligi; } hiko.setY(hikoY); } public void cisimleriHareketEttir(){ ordekHız = Math.round(ekranGenisligi/40); karpuzHız = Math.round(ekranGenisligi/50); dondurmaHız = Math.round(ekranGenisligi/60); ordekX -= ordekHız ; if(ordekX < 0 ){ ordekX = ekranGenisligi +20 ; ordekY = (int) Math.floor(Math.random()*ekranYuksekligi); } ordek.setX(ordekX); ordek.setY(ordekY); karpuzX -= karpuzHız ; if(karpuzX < 0 ){ karpuzX = ekranGenisligi +20 ; karpuzY = (int) Math.floor(Math.random()*ekranYuksekligi); } karpuz.setX(karpuzX); karpuz.setY(karpuzY); dondurmaX -= dondurmaHız ; if(dondurmaX < 0 ){ dondurmaX = ekranGenisligi +20 ; dondurmaY = (int) Math.floor(Math.random()*ekranYuksekligi); } dondurma.setX(dondurmaX); dondurma.setY(dondurmaY); } public void carpismaKontrol (){ int karpuzMerkezX = karpuzX + karpuz.getWidth()/2 ; int karpuzMerkezY = karpuzY + karpuz.getHeight()/2; if(0 <= karpuzMerkezX && karpuzMerkezX <= hikoGenisligi && hikoY <= karpuzMerkezY && karpuzMerkezY <= hikoY+hikoYuksekligi){ final MediaPlayer sesa = MediaPlayer.create(this, R.raw.dri); sesa.start(); sayi+=15 ; karpuzX = -10 ; } int dondurmaMerkezX = dondurmaX + dondurma.getWidth()/2 ; int dondurmaMerkezY = dondurmaY + dondurma.getHeight()/2; if(0 <= dondurmaMerkezX && dondurmaMerkezX <= hikoGenisligi && hikoY <= dondurmaMerkezY && dondurmaMerkezY <= hikoY+hikoYuksekligi){ final MediaPlayer sesa = MediaPlayer.create(this, R.raw.dri); sesa.start(); sayi+=10 ; dondurmaX = -10 ; } int ordekMerkezX = ordekX + ordek.getWidth()/2 ; int ordekMerkezY = ordekY + ordek.getHeight()/2; if(0 <= ordekMerkezX && ordekMerkezX <= hikoGenisligi && hikoY <= ordekMerkezY && ordekMerkezY <= hikoY+hikoYuksekligi){ final MediaPlayer ses = MediaPlayer.create(this, R.raw.hikoses); ses.start(); timer.cancel(); timer = null; Intent intent = new Intent(OyunEkrani.this , SonucEkrani.class); intent.putExtra("sayi", sayi) ; startActivity(intent); } skor.setText(String.valueOf(sayi)); }
}`
When an object collides with the other, it has to send it to another page with Intent, but it throws it from the application, I get a timer nullpointer exception error in logcat records. How can I fix this problem? I described it as follows ;
`package com.mec.hikobabarun;
import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout;
import android.annotation.SuppressLint; import android.content.Intent; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Handler; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.TextView;
import java.util.Timer; import java.util.TimerTask;
public class OyunEkrani extends AppCompatActivity { private TextView textViewBaslamak ; private TextView skor ; private ImageView hiko ; private ImageView dondurma ; private ImageView karpuz ; private ImageView ordek ; private ConstraintLayout cl ; //POZİSYONLAR private int hikoX; private int hikoY ; private int dondurmaX; private int dondurmaY; private int ordekX; private int ordekY; private int karpuzX; private int karpuzY; //KONTROLLER private boolean dokunmaKontrol = false ; private boolean baslangicKontrol = false ; //BOYUTLAR private int ekranGenisligi ; private int ekranYuksekligi ; private int hikoYuksekligi ; private int hikoGenisligi ; //Hızlar private int hikoHız ; private int karpuzHız ; private int dondurmaHız ; private int ordekHız ;
}`