Начинающий
-
Автор темы
- #1
Всем привет, многие наверно видели партиклы в гуи у некоторых читов (пример WintWare). Хотел бы подробнее разьяснить как работает данная система и как лучше ее реализовать.
Начнем с того что нам нужно тело для наших партиклов, напишем его.
Вот и весь код, не забывайте что это все писалось на ходу и не имело заготовки, так же мы обошлись без дополнительного листа на удаление партиклов. Всем спасибо.
Начнем с того что нам нужно тело для наших партиклов, напишем его.
constructor:
public class particle {
static LinkedList<particle> particles = new LinkedList<>(); //используем для эффективности
int x; //для координаты точек
int y; //для координаты точек
public particle() {
this.x = random(1, Minecraft.getInstance().getWindow().getWidth()); //рандом от 1 до конца width монитора
this.y = getWindow().getHeight(); //псевдо код (нижняя сторона монитора)
}
public static void particleAdd() {
particles.add(new particle()); //добавляем партиклы
}
public static void onRender() {
for(particle part : particles) {
//сделаем проверку на удаления
if(part.y <= 0) {
particles.remove(part);
break; //используем оператор для завершение цикла (пофиксит краш при удаление)
}
utils.circle(part.x, part.y, 5, Color.WHITE); //рендерим круг
}
}
//Создадим метод рандома для того чтобы партиклы появлялись в разном диапозоне на экране
public static int random(int start, int end) {
end -= start;
return (int) (Math.random() * ++end) + start;
}
//теперь создадим анимацию передвижения частиц в верх
public static void particleAnimation() {
for(particle part : particles) {
part.y -= 25; //используем это значение для того чтобы они не спамились и быстро удалялись
}
}
}