Вниз  Java-программирование (1-ые посты)
- 19.04.2012 / 14:45
Postal
  Пользователь

Postal 
Сейчас: Offline
Вот картинка как сделать чтоб первые 3 шли вправо при этом перебирались фреймы первых трех вторые 3 шли влево при этом перебирались 3 вторых фрейма ну и так далее . Как Подскажите ПОЖАЛУЙСТА :helpme:


Прикрепленные файлы:
Image.png (3.18 кб.) Скачано 180 раз
- 19.04.2012 / 15:35
Magatino
  Администратор

Magatino 
Сейчас: Offline
Dimon638, Псевдо 3D делаешь?
Как в играх на SMD? :)
- 19.04.2012 / 16:05
LPzhelud
  Пользователь

LPzhelud 
Сейчас: Offline
Проект Lombok, или Объявляем войну бойлерплейту
Очень удобная фича для тех, кто понимает
__________________
 Эль Презеденте
- 19.04.2012 / 16:31
Dimon638
  Пользователь

Dimon638 
Сейчас: Offline
Magatino (19.04.2012/15:35)Dimon638, Псевдо 3D делаешь?Как в играх на SMD? :)Да не просто типа rpg'шку делаю, так вот в ней боты друг на друге ходят :gg:
Надо сделать чтобы они правильно сортировались и отображались, но не знаю как (
Может как-нибудь через массив что-ли попробовать? :-/
Вообщем по-всякому буду пробовать :hack:

Изменено Dimon638 (19.04 / 16:33) (всего 1 раз)
- 19.04.2012 / 17:00
Magatino
  Администратор

Magatino 
Сейчас: Offline
Dimon638, Проверка приоритета у тебя отталкивается от этой формулы:
  1. if (y[i]<=y[q]&&x[i]<=x[q])
  2. g.drawImage[img,x[i],y[i],20]
Короче буду доробатывать формулу до робочего состояния :gg:
- 19.04.2012 / 17:00
Andrey
  Пользователь

Andrey 
Сейчас: Offline
Димон совет:сделай столкновение ботов с ботами по периметру,и не надо сортировать
- 19.04.2012 / 17:26
Magatino
  Администратор

Magatino 
Сейчас: Offline
Andrey, Это возможно,лишь в одном,когда столкновение совпадают с разрешением изображений,то есть если у меня боты 80x80,то в столкновении эти параметры должны прописаны.
А если столкновение идёт по параметру 60x60 ,а у меня изображение 80x80,то тут нужна сортировка,короче помнишь ещё в сталкере дерево было большое,а столкновение были лишь в самом низу дерева,в таких случаях нужен приоритет изображений.
- 19.04.2012 / 19:55
Magatino
  Администратор

Magatino 
Сейчас: Offline
Dimon638, Вот что я надумал,сразу пишу я это не проверял и ошибки есть,и ещё,если будешь использовать подобный код,то производительность упадёт :gg:
  1. for (int m=10;m<0;m--)
  2. {
  3. u=0;
  4. for (int i=0;i<10;i++)
  5. {
  6. for (int q=0;q<10;q++)
  7. {
  8. if (i==q)
  9. q++;
  10. if (y[i]<<y[q])
  11. u++;
  12. if (y[i]==y[q])
  13. {
  14. if (x[i]<=x[q])
  15. u++;
  16. }
  17. if (u>=m)
  18. {
  19. g.drawImage (img[i],x[i],y[i],20);
  20. q=20;
  21. i=20;
  22. }
  23. }
  24. }
  25. }

- 19.04.2012 / 21:29
Dimon638
  Пользователь

Dimon638 
Сейчас: Offline
Magatino, Хм, пока ещё не особо вникал в твой код :gg:
------------
Но назрела идейка одна :)
Вообщем пока что обойдусь Y(игрек)-сортировкой, то есть лиж бы боты нормально отображались сверху вниз, а как слева-направо - пока что без разницы) .
  Смысл идейки вот в чём: у каждого бота есть переменная-счётчик, она зависит от того куда идёт бот. Если бот идёт вниз, то счётчик увеличивается, при достижении значения 24(это к примеру) обнуляется и инкрементируется(++;) другая переменная-счётчик.
Таким образом при ходьбе бота по Игрек-координате постоянно отсчитывается сколько он прошёл в клеточках (24 пикселя получается одна клеточка).
То же самое происходит когда он идёт наоборот вверх, только переменная-счётчик уменьшается, при достижении -24 так же обнуляется, а вторая переменная декрементируется(--;) .
И получается, что чем большее значение имеет вторая переменная-счётчик, тем ближе к экрану рисуется бот.
Однако это грубо говоря 40% алгоритма, проблема ещё в том, как собственно нарисовать бота выше других ботов или ниже :gg:
Дело в том, что у меня боты работают через вектор. И сейчас их удалённость от экрана зависит от того, каким по счёту их добавили в вектор. То есть если добавить 5 ботов, то первый добавленный будет сзади всех остальных, второй добавленный будет выше первого, но ниже третьего и так далее. 5-ый разумеется будет выше всех остальных.
Так вот мне кажется что, для того чтобы изменить их "приоритет" нужно перемещать их позиции в векторе.
Например в векторе есть боты A,B,C. Смысл в том, чтобы поменять их местами в векторе, например так C,B,A. Естественно если делать это в соответствии со значениями той самой второй переменной-счётчиком, то по идее боты станут отсортированными по Игрек-координате, то есть рисоваться сверху-вниз и перекрывать друг друга как надо :) .
Так вот, как это можно сделать? :gg: А именно: как можно перемещать объекты в векторе местами? )).
Хотя, пока писал, понял - а ведь на одной клетке могут быть много ботов, блин, получается их же нельзя поместить все вместе в одну "ячейку" вектора :hack: . Облом) . Но в принципе, можно тогда просто их "вытягивать" в векторе(не могу по-другому объяснить). Вроде всё-равно они должны нормально закрываться ботами на нижней клетке.
Ого, скока написал :D
- 20.04.2012 / 14:02
Magatino
  Администратор

Magatino 
Сейчас: Offline
Dimon638, Что вектор и что массив проблема такая же,трудно раставить ту картинку которая должна быть нарисова первой,потом и следующие.
Вот нашёл ошибку в своём коде,знак не правильно поставил for (int m=10;m>0;m--) ,но пока всё равно код не рабочий :gg:
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)