Sanke für Android

cHUCKn0RRIS

Mitglied
Hi

Bin ein Anfänger (???:L) und habe ein Sanke programmiert (Java code). Dies würde ich jetzt gerne für android machen. Habe mir schon android sdk und so heruntergeladen. Aber was muss ich noch ändern?
Und wo finde ich die befehle zum Beispiel wenn man Handy neigt, oder über optischen Trackball fahrt soll es....

(möchte es für HTC Desire machen, wäre aber geil wenn man so machen könnte das es auf allen geht, und möchte ein menü machen, bei dem man zweichen neigensteuerung, und trackabll umstellen kann)

Vielen Dank!!!

Java:
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Timer;
import java.util.TimerTask;

import javax.swing.*;

public class snake2 extends JFrame {
	private static final long serialVersionUID = 1L;

	int speed = 5;
	int felder = 40;
	private snakePanel sp;
	public Schlange schlange;
	public String richtung;
	public pos apfel = new pos();
	Timer timer = new Timer();
	Task task;
	boolean verloren = false;
	int score = 0;

	public static void main(String[] args) {
		new snake2();
	}

	private snake2() {
		schlange = new Schlange();
		initGui();
		// task = new Task(schlange, sp, this);
		reset();

		this.addKeyListener(new KeyListener() {

			@Override
			public void keyPressed(KeyEvent arg0) {
				if (arg0.getKeyCode() == KeyEvent.VK_UP
						&& schlange.letzterichtung != "unten") {
					richtung = "oben";
				} else if (arg0.getKeyCode() == KeyEvent.VK_LEFT
						&& schlange.letzterichtung != "rechts") {
					richtung = "links";
				} else if (arg0.getKeyCode() == KeyEvent.VK_DOWN
						&& schlange.letzterichtung != "oben") {
					richtung = "unten";
				} else if (arg0.getKeyCode() == KeyEvent.VK_RIGHT
						&& schlange.letzterichtung != "links") {
					richtung = "rechts";
				} else if (arg0.getKeyCode() == KeyEvent.VK_ENTER) {
					if (verloren) {
						neustart();
					}
				}

				// if (arg0.getKeyCode() == KeyEvent.VK_P) {
				// apfellegen();
				// }
				// if (arg0.getKeyCode() == KeyEvent.VK_O) {
				// schlange.länge++;
				// }
				//
				// if (arg0.getKeyCode() == KeyEvent.VK_H) {
				// verlieren();
				// }
			}

			@Override
			public void keyReleased(KeyEvent arg0) {
				// TODO Auto-generated method stub

			}

			@Override
			public void keyTyped(KeyEvent arg0) {
				// TODO Auto-generated method stub

			}

		});

	}

	private void reset() {
		richtung = "rechts";
		apfellegen();
		score = 0;
		task = new Task(schlange, sp, this);
		timer.schedule(task, 1000, 400 / speed);
		
	}

	public void apfellegen() {
		apfel.x = (int) (Math.random() * felder);
		apfel.y = (int) (Math.random() * felder);

		boolean gut = true;
		do {
			gut = true;
			for (int i = 0; i < schlange.länge; i++) {
				if (apfel.x == schlange.position[i].x
						&& apfel.y == schlange.position[i].y) {
					apfel.x = (int) (Math.random() * felder);
					apfel.y = (int) (Math.random() * felder);
					gut = false;
				}
			}
		} while (!gut);
	}

	private void initGui() {
		// setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		sp = new snakePanel(schlange, apfel);
		sp.setGrösse(felder);
		sp.setBackground(Color.WHITE);
		this.add(sp);
		// this.setSize(1020, 1520);// noch genau einstelen
		this.pack();
		this.setVisible(true);
	}

	public void verlieren() {
		sp.verloren = true;
		verloren = true;
		sp.repaint();
		task.cancel();
	}

	public void neustart() {
		schlange.reset();
		reset();
		sp.verloren = false;
		verloren = false;
		sp.repaint();
	}
}

class Task extends TimerTask {
	Schlange schlange;
	snakePanel sp;
	snake2 sn2;

	public Task(Schlange schlange, snakePanel sp, snake2 sn2) {
		this.schlange = schlange;
		this.sp = sp;
		this.sn2 = sn2;
	}

	public void run() {
		schlange.fahren(sn2.richtung);
		sp.repaint();
		if (draussen()) {
			sn2.verlieren();
		}
		if (überfahren()) {
			sn2.verlieren();
		}
		if (schlange.position[0].x == sn2.apfel.x
				&& schlange.position[0].y == sn2.apfel.y) {
			schlange.länge += 4;
			sn2.apfellegen();
			sn2.score += 10;
			sp.setScore(sn2.score);
		}
	}

	private boolean überfahren() {
		for (int i = 1; i < schlange.länge; i++) {
			if (schlange.position[0].x == schlange.position[i].x
					&& schlange.position[0].y == schlange.position[i].y) {
				return true;
			}
		}
		return false;
	}

	private boolean draussen() {

		if (schlange.position[0].x >= sn2.felder || schlange.position[0].x < 0
				|| schlange.position[0].y >= sn2.felder
				|| schlange.position[0].y < 0) {
			return true;
		}

		return false;
	}
}


Java:
public class Schlange {

	pos[] position = new pos[10000];
	int länge;
	String letzterichtung;

	Schlange() {
		reset();
	}

	public void reset() {
		länge = 10;
		letzterichtung = "rechts";

		for (int i = 0; i < position.length; i++) {
			position[i] = new pos();

		}

		for (int i = 0; i < länge; i++) {
			position[i].x = 10;
			position[i].y = 10;
		}

	}

	void fahren(String richtung) {

		pos zs1 = new pos(); // zwischenspeicher
		pos zs2 = new pos();
		zs1.x = position[0].x;
		zs1.y = position[0].y;

		if (richtung.equals("oben")) {
			position[0].y += -1;
		} else if (richtung.equals("links")) {
			position[0].x += -1;
		} else if (richtung.equals("unten")) {
			position[0].y += 1;
		} else {
			position[0].x += 1;
		}

		for (int i = 1; i < länge; i++) {

			zs2.x = position[i].x;
			zs2.y = position[i].y;
			position[i].x = zs1.x;
			position[i].y = zs1.y;
			zs1.x = zs2.x;
			zs1.y = zs2.y;

		}
		letzterichtung = richtung;

	}

}

class pos {
	public int x;
	public int y;

	pos() {
		x = -1;
		y = -1;
	}
}


Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;

public class snakePanel extends JPanel {

	private static final long serialVersionUID = 1L;
	Schlange schlange;
	int grösse = 20;
	private pos apfel;
	boolean verloren = false;
	int score = 0;

	snakePanel(Schlange schlange, pos apfel) {
		this.schlange = schlange;
		this.apfel = apfel;
	}

	public void paintComponent(Graphics g) {
		super.paintComponent(g);

		paintsnake(g);
		paintpoint(g);
		Score(g);

		if (verloren) {
			paintverlieren(g);
		}
	}

	public void setScore(int score) {
		this.score = score;
	}

	private void paintverlieren(Graphics g) {
		Image img;
		String path = "siehabenverloren.png";
		img = getToolkit().getImage(path);
		g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);

	}

	private void paintpoint(Graphics g) {
		Image img;
		String path = "apple.jpg";
		img = getToolkit().getImage(path);
		g.drawImage(img, apfel.x * grösse, apfel.y * grösse, grösse, grösse,
				this);

	}

	public void Score(Graphics g) {
		g.drawString("Score: " + String.valueOf(score), this.getWidth() - 70,
				20);
	}

	private void paintsnake(Graphics g) {

		Image img;
		String path;

		for (int i = 0; i < schlange.länge; i++) {
			if (i == 0) {

				if (schlange.letzterichtung.equals("oben")) {
					path = "schlangechopf.oben.jpg";
				} else if (schlange.letzterichtung.equals("rechts")) {
					path = "schlangechopf.rechts.jpg";
				} else if (schlange.letzterichtung.equals("unten")) {
					path = "schlangechopf.unten.jpg";
				} else {
					path = "schlangechopf.links.jpg";
				}

			} else {
				path = "schlangemuster.jpg";
			}

			img = getToolkit().getImage(path);
			g.drawImage(img, schlange.position[i].x * grösse,
					schlange.position[i].y * grösse, grösse, grösse, this);

		}
	}

	public void setGrösse(int felder) {
		this.setPreferredSize(new Dimension(grösse * felder, grösse * felder));
	}
}
 
T

Tomate_Salat

Gast
1.) Konventionen einhalten:
Klassen=>UpperCamelCase
Variablen/Methoden=>lowerCamelCase
(schau dir mal den Link in meiner Signatur an)
2.) ein deutsches Tutorial habe ich noch nicht gefunden, aber im Internet finden sich einige Quellen auf Englisch.

Edith auf der google-seite gibt es sogar ein Snake-Beispiel
 
Zuletzt bearbeitet von einem Moderator:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kazudemruzo Android API/Library für externe Entwickler zur Verfügung stellen Android & Cross-Platform Mobile Apps 7
C Consent für Admob mit ump / funding choices Android & Cross-Platform Mobile Apps 6
B Was fehlt mir hier für diese Klasse? ich habe es mit (>>> ... <<<) markiert. Android & Cross-Platform Mobile Apps 4
J SharedPreferences für User-Session Android & Cross-Platform Mobile Apps 2
M Barrierefreie Appentwicklung für Android - Suche Codebeispiele Android & Cross-Platform Mobile Apps 8
I App für Fire HD entwickeln Android & Cross-Platform Mobile Apps 3
T Bringen mir die Java-Basics irgendetwas für die Android-Programmierung Android & Cross-Platform Mobile Apps 4
L Textfeld für Dezimalzahl mit Vorzeichen Android & Cross-Platform Mobile Apps 2
J Android Datenbank Klasse nur für CRUD-Operation, oder auch mehr ? Android & Cross-Platform Mobile Apps 8
B Android Projekt für Android und IOS erstellen? Android & Cross-Platform Mobile Apps 5
J Impressumspflicht für App, wenn ich kein Unternehmer bin? Android & Cross-Platform Mobile Apps 13
T Android Equalizer für Android Android & Cross-Platform Mobile Apps 3
L Zeitstempel für Sensordaten bekommen Android & Cross-Platform Mobile Apps 3
L Android Texterkennung für Android? Android & Cross-Platform Mobile Apps 1
L Android Chart API für Android Android & Cross-Platform Mobile Apps 0
T Android Datenbankverbindung in Service für Push Notification Android & Cross-Platform Mobile Apps 0
R Android USB Treiber für Huawei Android & Cross-Platform Mobile Apps 1
M Hilfe bei App Programmierung für Android Android & Cross-Platform Mobile Apps 1
B Script für Android Android & Cross-Platform Mobile Apps 1
H Datenprotokoll für Graphview Android & Cross-Platform Mobile Apps 2
M Android Obfuscation für Strings Android & Cross-Platform Mobile Apps 8
S Bilder mit fester grösse für verschiedene Android Endgeräte Android & Cross-Platform Mobile Apps 2
D Android Layout für alle Geräte Android & Cross-Platform Mobile Apps 4
A String[] für Lisadapter Android & Cross-Platform Mobile Apps 4
D Lib für (Desktop-)Java und Android schreiben Android & Cross-Platform Mobile Apps 7
J MySQL Simulation für Android App Android & Cross-Platform Mobile Apps 2
kaoZ Tutorial .xml Layouting für z.B ListView elemente Android & Cross-Platform Mobile Apps 7
W Java Editor für Android +Emulator Android & Cross-Platform Mobile Apps 7
M 20 Image Button für jede Auflösung positionieren Android & Cross-Platform Mobile Apps 3
L Android ActionBar mit unterschiedlichen Farben für Tabs Android & Cross-Platform Mobile Apps 3
S Voraussetzungen für Android-Apps Android & Cross-Platform Mobile Apps 7
R Sinnvoller Ablageort für Leveldaten Android & Cross-Platform Mobile Apps 8
B App bei Play-Store für bestimmte auflösungen anbieten? Android & Cross-Platform Mobile Apps 3
G extends Activity für Berechnungen? Android & Cross-Platform Mobile Apps 7
H Progrämmchen für Symbian Android & Cross-Platform Mobile Apps 4
G wiederkehrenden Wert für Design in XML ablegen Android & Cross-Platform Mobile Apps 2
L Android SearchBox für Custom Listview Android & Cross-Platform Mobile Apps 5
T Android KontrollApp für Nitrado Server Android & Cross-Platform Mobile Apps 2
L Android Eine Kleinigkeit für Profis Android & Cross-Platform Mobile Apps 2
G Android C++ Quellcode für Android Geräte compilieren Android & Cross-Platform Mobile Apps 2
T Zeit in zwei Zahlen für Widget zerlegen Android & Cross-Platform Mobile Apps 2
J Apps für Android programmieren - Android Handy notwendig oder reicht Simulator? Android & Cross-Platform Mobile Apps 3
A Android SimpleDateFormat gibt für Date unter android anderes Datum zurück als in Std. Java Android & Cross-Platform Mobile Apps 2
H Android Landscape Modus für App dektivieren Android & Cross-Platform Mobile Apps 3
M Frage zu Java Programm für Windows Mobile 6.5 Android & Cross-Platform Mobile Apps 2
H Welches JDK für Huawei G7002? Android & Cross-Platform Mobile Apps 6
C Panel/View für Android Android & Cross-Platform Mobile Apps 3
Kukulkan Welche Mindestanforderungen (JDK) für Android und BB? Android & Cross-Platform Mobile Apps 8
G Views für verschiedenen Bildschirmgroeßen Android & Cross-Platform Mobile Apps 2
thE_29 Widget für verpasste Anruf + SMS Android & Cross-Platform Mobile Apps 2
A Android Android Parameter für VM Android & Cross-Platform Mobile Apps 7
O Entwickler für Java Anwendungen auf Handy gesucht! Android & Cross-Platform Mobile Apps 3
S JButton in GUI für Handys? Android & Cross-Platform Mobile Apps 3
M Welche Datenbank für J2ME? Android & Cross-Platform Mobile Apps 5
D Event für Tastensperre? Android & Cross-Platform Mobile Apps 3
G WTK für Nokia Android & Cross-Platform Mobile Apps 2
P bestimmte API für XDA ORBIT2 Android & Cross-Platform Mobile Apps 3
S Idee gesucht für ein kleines Programm Android & Cross-Platform Mobile Apps 3
M ein image pixel für pixel aufbauen : setPixel() ? Android & Cross-Platform Mobile Apps 1
M Handyprogramm für U-Bahn-Fahrplan für Siemens SK65 Android & Cross-Platform Mobile Apps 2
J Empfehlungen für ME-Anfänger Android & Cross-Platform Mobile Apps 2
K Anwendung für Handy programmieren Android & Cross-Platform Mobile Apps 1
P Java für PDA DELL Axim 51 Android & Cross-Platform Mobile Apps 4
M Virtuelle Machiene für PDA Android & Cross-Platform Mobile Apps 8
B Programm für NokiaComunicator erstellen Android & Cross-Platform Mobile Apps 2
K Programme für Handy erstellen Android & Cross-Platform Mobile Apps 3
M Java-Programme für Handy auf Desktop-PC ausführen Android & Cross-Platform Mobile Apps 4
T Für Handy Game die Sprache umschreiben? Android & Cross-Platform Mobile Apps 24
M java game für handy mit grahi. oberfläche Android & Cross-Platform Mobile Apps 1
D java.security.MessageDigest (für ME?) Android & Cross-Platform Mobile Apps 1
N Unser Team such Coder für Spieleprojekte Android & Cross-Platform Mobile Apps 8
B WTK für Sony Ericsson? Android & Cross-Platform Mobile Apps 7
S JAVA für java-mobiltelefone Android & Cross-Platform Mobile Apps 14
J Benachrichtigung Freigabe ab Android 14 Android & Cross-Platform Mobile Apps 1
J Android Benachrichtigung zum Zeitpunkt ers Android & Cross-Platform Mobile Apps 15
J Das Beispiel von Android erzeugt Fehler Android & Cross-Platform Mobile Apps 8
J Zeitdifferenzen unter Android 7 (API < 26) berechnen Android & Cross-Platform Mobile Apps 4
W Netzwerk Verbindungen Java Android Android & Cross-Platform Mobile Apps 107
Z Android IntelliJ Android & Cross-Platform Mobile Apps 2
M Repository bei Room-Database in Android Studio (Java) Android & Cross-Platform Mobile Apps 2
Android App auf das eigene Handy bekommen Android & Cross-Platform Mobile Apps 3
Alex IV Android App erstellen Android & Cross-Platform Mobile Apps 3
OnDemand CrossPlatform Kotlin iOs/Android Datenverbrauch Android & Cross-Platform Mobile Apps 2
W In Android Studio Integer an andere activities übergeben Android & Cross-Platform Mobile Apps 2
wladp Android Studio Room Database Android & Cross-Platform Mobile Apps 1
N "Schöne" Datatable in Android und setzen von Parametern von Textview im Code Android & Cross-Platform Mobile Apps 5
N Android game programmieren Android & Cross-Platform Mobile Apps 5
T Android Studio: Einen Button in einer For Schleife verwenden Android & Cross-Platform Mobile Apps 2
K BLE Komunikation mit Android studio und esp32 Android & Cross-Platform Mobile Apps 5
G Android UDP Kommunikation Android & Cross-Platform Mobile Apps 1
M Paper DB wird in Android Studio nicht erkannt Android & Cross-Platform Mobile Apps 7
J Android zugrif auf Thread nach Handy drehen. Android & Cross-Platform Mobile Apps 10
T Android Android Augmented Faces in Java. Neue Landmarks erstellen Android & Cross-Platform Mobile Apps 1
K Android Android In-App-Purchase lädt nicht Android & Cross-Platform Mobile Apps 0
Besset Android http request an interne ip adresse funktioniert nicht Android & Cross-Platform Mobile Apps 8
J Is Android Development Head First Outdated? Android & Cross-Platform Mobile Apps 3
J Android Android Datenbankverbindung zum Raspberry Pi Android & Cross-Platform Mobile Apps 1
lolcore Android Studio -Download Documentation for Android SDK Android & Cross-Platform Mobile Apps 0
S Sinnvollste weg eine SQLite DB mit Android auslesen Android & Cross-Platform Mobile Apps 7
W Problem mit Android Studio Android & Cross-Platform Mobile Apps 0

Ähnliche Java Themen

Neue Themen


Oben