![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Все верно.
Простой обход по массиву с помощью двух циклов отражает количество всех размещений с возвратом. Где n равен длине массива, а k равен 2, тк размещение при проверка у нас -- из двух элементов. Обсчет идет таким образом: проверка столкновения A с B проверка столкновения B с A Нас же в этой задаче интересует количество всех сочетаний. И, например, вот такой код: var array : Array = [1,2,3,4,5,6,7,8,9,10]; var numItems : int = array.length; for(var i : int = 0; i < numItems; i++) { var itemA : int = array[i]; for(var j : int = i + 1; j < numItems; j++) { var itemB : int = array[j]; trace("Столкновение " + itemA + " и " + itemB); } } Столкновение 1 и 2 Столкновение 1 и 3 Столкновение 1 и 4 Столкновение 1 и 5 Столкновение 1 и 6 Столкновение 1 и 7 Столкновение 1 и 8 Столкновение 1 и 9 Столкновение 1 и 10 Столкновение 2 и 3 Столкновение 2 и 4 Столкновение 2 и 5 Столкновение 2 и 6 Столкновение 2 и 7 Столкновение 2 и 8 Столкновение 2 и 9 Столкновение 2 и 10 Столкновение 3 и 4 Столкновение 3 и 5 Столкновение 3 и 6 Столкновение 3 и 7 Столкновение 3 и 8 Столкновение 3 и 9 Столкновение 3 и 10 Столкновение 4 и 5 Столкновение 4 и 6 Столкновение 4 и 7 Столкновение 4 и 8 Столкновение 4 и 9 Столкновение 4 и 10 Столкновение 5 и 6 Столкновение 5 и 7 Столкновение 5 и 8 Столкновение 5 и 9 Столкновение 5 и 10 Столкновение 6 и 7 Столкновение 6 и 8 Столкновение 6 и 9 Столкновение 6 и 10 Столкновение 7 и 8 Столкновение 7 и 9 Столкновение 7 и 10 Столкновение 8 и 9 Столкновение 8 и 10 Столкновение 9 и 10
__________________
9 из 10 голосов в моей голове сказали наркотикам "НЕТ" Мои ачивки: художник-паразит. Последний раз редактировалось ChuwY; 22.11.2013 в 13:33. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 22
|
ChuwY, верно, если необходимо проверять столкновения каждого с каждым, вполне сгодится и один массив, но artem2033 спрашивал о двух массивах объектов, где столкновения проверяются только между объектами разных массивов. artem2033, код ALeXVoz и Hauts должен работать правильно, если массивы не попутали.
|
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
private function createJoint():void { var joints:Array = new Array(); var objForJoints:Array = new Array(); //var obj:Array = new Array(); for (var i:int = 0; i < lvl.numChildren; i++) { switch(lvl.getChildAt(i).name) { case "Box_Dynamic": { objForJoints.push(lvl.getChildAt(i)); break; } case "Box_Static": { objForJoints.push(lvl.getChildAt(i)); break; } case "Joint": { joints.push(lvl.getChildAt(i)); break; } } } for (var j:int = 0; j < joints.length; j++) { for (i = 0; i < objForJoints.length; i++) { if (objForJoints[i].hitTestPoint(joints[j].x, joints[j].y, false)) { trace("Столкновение " + i + " и " + j); } } } } http://keep4u.ru/full/2cdebe7f48345c...7d67bf620.html А мне нужно чтобы вывел значения без повторений. Последний раз редактировалось artem2033; 23.11.2013 в 19:13. |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Вам уже ответили выше.
Последний раз редактировалось MikroAcse; 23.11.2013 в 20:28. |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
Я скрин вам показал и там в выводе он 2 раза повторил одинаковые значения а мне нужно только 1 раз.
|
|
|||||
|
Регистрация: Feb 2012
Сообщений: 1,540
|
Специально для Вас открываю FlashDevelop, копипащу туда код и, о чудо!, объекты не повторяются:
var joints:Array = [0, 1, 2, 3]; var objForJoints:Array = [0, 1, 2, 3]; for(var j : int = 0; j < joints.length; j++) { for(var i : int = j + 1; i < objForJoints.length; i++) { trace(i + " и " + j); } } Цитата:
var joints:Array = [0, 1]; var objForJoints:Array = [0, 1]; for(var j : int = 0; j < joints.length; j++) { for(var i : int = j + 1; i < objForJoints.length; i++) { trace(i + " и " + j); } } Цитата:
|
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
ну да с trace работает нормально но если вот так(objForJoints[i].hitTestPoint(joints[j].x, joints[j].y, false)) то уже нет
|
|
|||||
|
Я создал прототип вашего проекта (судя по скрину и коду). Но у меня работало всё корректно.
Сделайте упрощённый исходник и покажите лучше, а то вообще не понять, почему у вас не работает правильно. |
|
|||||
|
Регистрация: Nov 2013
Сообщений: 75
|
http://fi1les.m1ail.r1u/8C85570D3E9F...F0B306C4E51998 -ссылка в ней as3 файл, fla и nape. звёздочек. Единицы уберёте из ссылки, кроме последней.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:02. |
|
|
« Предыдущая тема | Следующая тема » |
|
|