Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Mixoonix
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 2
1

Как сделать столкновение ImageView (игра гонки)

05.05.2017, 20:15. Просмотров 195. Ответов 3
Метки нет (Все метки)

Как сделать столкновение ImageView ? У меня есть 3 машины, одна на месте стоит, я ее перемещаю влево и вправо , а другие сверху вниз едут, сделано как анимация, для двух машинок , которые едут сверху . Вот в чем и вопрос, как сделать столкновение этих ImageView и потом вышло сообщение о том что игра законченна???
Вот код если нужен:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
package com.example.users.kyrsrace;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
 
public class ActivityMaintwo extends AppCompatActivity implements View.OnTouchListener {
private ImageView mImageView;
private ViewGroup mMoveLayout;
private int mX;
private int mY;
private ImageView mImageView2, mImageView3;
private Animation fallingAnimation, upAnimation;
private ImageView curFallingImageView;
 
 
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_maintwo);
 
mMoveLayout = (ViewGroup) findViewById(R.id.move);
mImageView.setImageResource(R.drawable.e2bd1a842900b31b026ea070bd9497be);
 
 
//Создаем программно RelativeLayout с параметрами 100*100:
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(60, 60);
 
//Применяем эти параметры к нашему изображению:
mImageView.setLayoutParams(layoutParams);
//И настраиваем ему слушателя (обработчик) прикосновений:
mImageView.setOnTouchListener(this);
mImageView2 = (ImageView) findViewById(R.id.image2);
mImageView3 = (ImageView) findViewById(R.id.image3);
fallingAnimation = AnimationUtils.loadAnimation(this,
R.anim.falling_down);
upAnimation = AnimationUtils.loadAnimation(this, R.anim.falling_up);
 
fallingAnimation.setAnimationListener(animationFallingListener);
upAnimation.setAnimationListener(animationUpListener);
 
curFallingImageView = mImageView2;
mImageView2.startAnimation(fallingAnimation);
mImageView2.setVisibility(View.VISIBLE);
 
 
 
}
//Обрабатываем прикосновения к объекту:
public boolean onTouch(View view, MotionEvent event) {
 
//Определение координат через getRawX() и getRawY() дает
//координаты по отношению к размерам экрана устройства:
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
 
//ACTION_DOWN срабатывает при прикосновении к экрану,
//здесь определяется начальное стартовое положение объекта:
case MotionEvent.ACTION_DOWN:
RelativeLayout.LayoutParams lParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
mX = X - lParams.leftMargin;
mY = Y - lParams.topMargin;
break;
 
//ACTION_MOVE обрабатывает случившиеся в процессе прикосновения изменения, здесь
//содержится информация о последней точке, где находится объект после окончания действия прикосновения ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.leftMargin = X - mX;
layoutParams.topMargin = Y - mY;
layoutParams.rightMargin = -250;
layoutParams.bottomMargin = -250;
view.setLayoutParams(layoutParams);
break;
}
return true;
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mImageView2.clearAnimation();
mImageView3.clearAnimation();
}
Animation.AnimationListener animationFallingListener = new Animation.AnimationListener() {
 
@Override
public void onAnimationEnd(Animation arg0) {
// TODO Auto-generated method stub
if (curFallingImageView == mImageView2) {
mImageView2.startAnimation(upAnimation);
} else if (curFallingImageView == mImageView3) {
mImageView3.startAnimation(upAnimation);
}
}
 
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
 
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
};
 
Animation.AnimationListener animationUpListener = new Animation.AnimationListener() {
 
@Override
public void onAnimationEnd(Animation animation) {
// TODO Auto-generated method stub
if (curFallingImageView == mImageView2) {
curFallingImageView = mImageView3;
mImageView3.startAnimation(fallingAnimation);
mImageView2.setVisibility(View.INVISIBLE);
mImageView3.setVisibility(View.VISIBLE);
} else if (curFallingImageView == mImageView3) {
curFallingImageView = mImageView2;
mImageView2.startAnimation(fallingAnimation);
mImageView2.setVisibility(View.VISIBLE);
mImageView3.setVisibility(View.INVISIBLE);
}
}
 
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
 
@Override
public void onAnimationStart(Animation animation) {
// TODO Auto-generated method stub
}
};
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2017, 20:15
Ответы с готовыми решениями:

Как сделать границы в пространстве ImageView при прокрутке изображения
Как сделать границы в пространстве ImageView при прокрутке большого изображения...

ListView: сбивается содержимое ImageView элемента при скроллинге + как сделать выделение пункта списка при нажатии?
1. Есть свой класс ContactsSimpleCursorAdapter, в методе public void...

Скопировать картинку из одной ImageView в другую ImageView
В ImageView поставлена картинка методом setImageResource. По нажатию на неё,...

ImageView в активити, можно ли сделать масштабирование "пальцами"?
Можно ли сделать чтоб ImageView (с номинальным размером на весь экран) в...

Как обработать нажатие ImageView
Создаю программу на Андроиде. И сразу столкнулся с проблемой. Почему то не...

3
_Night_Scream_
80 / 77 / 11
Регистрация: 08.08.2013
Сообщений: 631
05.05.2017, 20:29 2
Mixoonix, надо оформлять код в теги, читать невозможно.
Обычно в игре есть игровой цикл в котором всё просчитывается.
Так же в android есть такая штука как rect, с помощью которого можно узнавать есть ли пересечение с другим rect.
Эти rect'ы можно получить из ImageView's и в цикле узнавать произошло ли пересечение.
А вообще это всё гуглится очень легко, сначало учись гуглить.
0
Mixoonix
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 2
06.05.2017, 14:55  [ТС] 3
Я только начал пользоваться Android Studio, половину не знаю, вот и прошу помочь с этим, так как сам в тупике уже
0
_Night_Scream_
80 / 77 / 11
Регистрация: 08.08.2013
Сообщений: 631
06.05.2017, 15:02 4
Mixoonix, когда "только начал" пишут Hello,World.
Есть 3 источника которые надо посетить, прежде чем сюда идти

1) startandroid.ru
2) http://www.fandroid.info/
3) http://developer.alexanderklimov.ru

На этих сайтах есть платные уроки\курсы, советую.

А ответ на твой вопрос я дал....
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2017, 15:02

Как обработать нажатие на ImageView?
Ребят, не пойму в чем ошибка, как обработать нажатие на картинку? public...

Как расширить ImageView через java?
Необходимо по чекбоксу менять для картинки параметр:...

Как реализовать переворачивание ImageView в Android?
Добрый день! Подскажите, кто знает как реализовать анимацию переворачивания...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru