Hallo zusammen
Ich habe folgendes Problem und zwar ich möchte ein kleines Game machen mit dem man per Druck dem Gegner Schaden zufügt.
Jedoch schaffe ich es nicht das die Gesundheit des Gegners verringert wird
Die HP des Gegners sind per TextView links oben angezeigt die ID des TextViews ist enemyHealthBar.
Mein Projekt besteht aus mehreren Activitys und für den Kampf habe ich ein extra Activity names fight erstellt.
Habe das Projekt gelöscht und neu angefangen und jetzt alles nach Gedächtnis wieder hergestellt, jedoch jetzt kommt ne NullPointerException dazu wird wohl zu spät sein heute
Hier mein Code:
Code
package com.skyzy_studios.prototyp;
import android.content.Intent;
import android.graphics.Typeface;
import android.media.Image;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.ImageView;
import android.widget.TextView;
import org.w3c.dom.Text;
public class Fight extends AppCompatActivity implements View.OnTouchListener {
private Typeface ttf;
private int enemyHealth = 100;
private int myDamage = 10;
public TextView health;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// fullscreen
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_fight);
// Schriftart
ttf = Typeface.createFromAsset(getAssets(), "fonts/swtor.ttf");
((TextView)findViewById(R.id.enemyHealthBar)).setTypeface(ttf);
findViewById(R.id.enemyHealthBar).setOnTouchListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_fight, menu);
return true;
}
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
fight(enemyHealth, myDamage);
health.setText(Integer.toString(enemyHealth));
}
return false;
}
public int fight(int enemyHealth, int myDamage) {
enemyHealth = enemyHealth - myDamage;
return enemyHealth;
}
// Back Button
public void startBack(View view) {
Intent startBackIntent = new Intent(this, NewGame.class);
startActivity(startBackIntent);
}
}
Alles anzeigen