Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Mixoonix
0 / 0 / 0
Регистрация: 05.05.2017
Сообщений: 2
#1

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

05.05.2017, 20:15. Просмотров 169. Ответов 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 (игра гонки) (Программирование Android):

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

ListView: сбивается содержимое ImageView элемента при скроллинге + как сделать выделение пункта списка при нажатии? - Программирование Android
1. Есть свой класс ContactsSimpleCursorAdapter, в методе public void bindView(View view, Context context, Cursor c) которого происходит...

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

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

Как обработать нажатие на ImageView? - Программирование Android
Ребят, не пойму в чем ошибка, как обработать нажатие на картинку? public class MainActivity extends ActionBarActivity implements...

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

3
_Night_Scream_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 616
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_
76 / 75 / 8
Регистрация: 08.08.2013
Сообщений: 616
06.05.2017, 15:02 #4
Mixoonix, когда "только начал" пишут Hello,World.
Есть 3 источника которые надо посетить, прежде чем сюда идти

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

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

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

Как расширить ImageView через java? - Программирование Android
Необходимо по чекбоксу менять для картинки параметр: android:layout_width="wrap_content" на android:layout_width="fill_content" и...

Как задать относительный размер ImageView? - Программирование Android
Есть 9 ImageView, которые расположены в RelativeLayout При этом на экране в 4 дюйма они нужного размера, но на экране в 7 или 10 они...

Как осуществить заполнение свободного ImageView? - Программирование Android
Доброго времени суток! Есть 6 ImageView по щелчку на которые должно добавляться изображение из галереи. Так же есть возможность сделать...

Возможно использовать ImageView как кнопку? - Программирование Android
Возможно использовать ImageView как кнопку? Если да то как?


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

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

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