Bild mit ACTION_MOVE auf der x-Achse entlang verschieben

  • Antworten:17
Dennis Lorenz
  • Forum-Beiträge: 22

10.03.2014, 17:56:26 via Website

Hey :)

Bin gerade dabei, ein kleines Android-Spiel zu entwickeln, doch kriege das im Titel Stehende einfach nicht hin. :(
Könntet ihr mir sagen, wie ich das ganze bewerkstelligen könnte ? :)
Oder falls ihr was besseres wüsstet als ACTION_MOVE: Ich bin offen für neue Ratschläge ! ;)

LG

Antworten
Michele
  • Forum-Beiträge: 1.525

10.03.2014, 18:01:34 via Website

Hallo Dennis und Herzlich Willkommen im Forum.


Du willst also ein Bild bewegen?
Magst du erstmal etwas von deinem Code zeigen.
So kann man dir besser sagen wie du am besten vor zugehen hast.


LG

impjor

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

10.03.2014, 18:40:19 via Website

ja :) aber kein ImageView ;)

1if (event.type == MotionEvent.ACTION_MOVE) {
2 Graphics g = game.getGraphics();
3 int x = (int) event.x;
4 int y = 198;
5 if (inBound(event, character)) {
6 g.drawImage(currentSprite = characterMove, x, y);
7 }

Also ich möchte, dass, wenn das Bild "character" angezeigt und verschoben wird, dann "characterMove" angezeigt wird. Also so, dass es aussieht, als würde das Männchen laufen ;)
Ich hoffe mal, es ist verständlich, was ich meine :)

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.03.2014, 18:42:10 via Website

Was ist denn der chrakter bzw. was hat der für Bedeutung und was ist das für ne Variable?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

10.03.2014, 18:47:00 via Website

ein Bild ;)
1Graphics g = game.getGraphics();
2 Assets.character = g.newImage("character.png", ImageFormat.ARGB8888);
3 Assets.characterMove = g.newImage("characterMove.png", ImageFormat.ARGB8888);

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.03.2014, 18:51:31 via Website

ich verstehe dein Vorhaben noch nicht genau. Bitte erkläre es und erläutere dabei dein problem

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

10.03.2014, 18:57:47 via Website

Man sieht ein Männchen (character). Ich möchte dieses nun nach links oder rechts, also nur auf der x-Achse verschieben. Während ich es verschiebe, soll "character" zu "characterMove" wechseln (Bei "characterMove" sind die Beine anders, sodass es ausieht, als ob das Männchen laufen würde).

Antworten
Pascal P.
  • Admin
  • Forum-Beiträge: 11.286

10.03.2014, 19:00:44 via Website

Und was ist dein Problem dabei?

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

10.03.2014, 19:04:52 via App

Ich weiß nicht, wie ich das programmieren soll.

Antworten
Michele
  • Forum-Beiträge: 1.525

10.03.2014, 19:13:44 via Website

???

x += 2;

x -= 2;

So vielleicht?

LG

— geändert am 10.03.2014, 19:17:43

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

10.03.2014, 19:24:40 via App

Ja das ist ja nur der wechsel, aber wie bekomm ich es hin, dass ich das männchen überhaupt erst ziehen/bewegen kann ?

Antworten
Fabian Simon
  • Forum-Beiträge: 359

12.03.2014, 14:22:11 via Website

Mit welcher eingabe funktion soll sich den das männchen bewegen.
Ein steuerkeruz.
Per Handybewegung ?
...

— geändert am 12.03.2014, 14:22:21

Antworten
impjor
  • Forum-Beiträge: 1.793

12.03.2014, 18:51:27 via App

Du könntest zum ziehen einen OnTouchListener auf das ImageView setzen und dann errechnen in welche Richtung sich der Finger bewegt hat und das ImageView nachschieben.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

12.03.2014, 20:29:28 via Website

@Fabian Simon: Das Männchen soll sich dort hin bewegen, wo ich es mit meinem Finger hinziehe.

@impjor: Daran habe ich auch schon gedacht, bloß das geht nicht, da ich kein ImageView verwende.

LG

Antworten
impjor
  • Forum-Beiträge: 1.793

12.03.2014, 21:44:19 via App

Stimmt :) Aber du hast ja eine View in der der Charakter gezeichnet wird. Dann kannst du trotzdem im OnTouchListener dieser View prüfen, ob der Finger im Bereich des Charakters getippt wurde und dann die x/y Werte ggf. verändern.

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

13.03.2014, 15:51:43 via Website

So lasse ich ein Bild anzeigen:

1Graphics g = game.getGraphics();
2g.drawImage(currentSprite = characterMove, 333, 198);

Wie kann ich nun einen Touch auf "currentSprite" erkennen ?

Antworten
impjor
  • Forum-Beiträge: 1.793

13.03.2014, 15:55:14 via Website

Du kannst einen TouchListener auf die gesamte View setzen: game.setOnTouchListener(...);

In disem kannst du dann prüfen ob die View getouched wurde. Pseudo mäßig:

1if (touch_x >= sprite_x && touch_x <= sprite_x + sprite_width) {
2if (touch_y >= sprite_y && touch_y <= sprite_y + sprite_height) {
3...
4}
5}

LG

Liebe Grüße impjor.

Für ein gutes Miteinander: Unsere Regeln
Apps für jeden Einsatzzweck
Stellt eure App vor!

Antworten
Dennis Lorenz
  • Forum-Beiträge: 22

13.03.2014, 16:53:53 via Website

Alles klar.

Vielen Dank :)

Antworten