Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 3

Нужно исправить метод, который обновляет текстуры

27.08.2015, 17:17. Показов 661. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Сразу извинюсь за формулировку вопроса.
У меня есть конструктор(отдельный класс ScrollHandler), в котором я устанавливаю местоположение моих текстур и реализую их обновление. Проблема с условием для обновления. Нужно, чтобы обновлялся и фон, и деревья. (У меня Y-вниз система).
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public ScrollHandler(float yPos) {
    frontGrass1 = new Grass(0, 0, 22, 800, SCROLL_SPEED);
    backGrass1 = new Grass(0, frontGrass1.getTailY(), 22, 800, SCROLL_SPEED);
    frontGrass2 = new Grass(460, 0, 22, 800, SCROLL_SPEED);
    backGrass2 = new Grass(460, frontGrass2.getTailY(), 22, 800, SCROLL_SPEED);
 
    frontBg = new Grass(0, 0, 480, 800, SCROLL_SPEED);
    backBg = new Grass(0, frontBg.getTailY(), 480, 800, SCROLL_SPEED);
 
    Tree1 = new Tree(0, -210, 240, 19, SCROLL_SPEED, yPos);
    Tree2 = new Tree(0, Tree1.getTailY() - TREE_GAP, 240, 19, SCROLL_SPEED, yPos);
    Tree3 = new Tree(0, Tree2.getTailY() - TREE_GAP, 240, 19, SCROLL_SPEED, yPos);
}
И есть класс, который устанавливает логику для обновления.(Чтобы обновить движущийся фон, нужно условие >0, чтобы обновлять деревья, нужно условие >800. Мне нужно, чтобы обновлялись оба).
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
public Scrollable(float x, float y, int width, int height, float scrollSpeed) {
        position = new Vector2(x, y);
        velocity = new Vector2(0, scrollSpeed);
        this.width = width;
        this.height = height;
        isScrolledDown = false;
    }
 
    public void update(float delta) {
        position.add(velocity.cpy().scl(delta));
        // Если объект Scrollable более не виден. Чтобы обновить движущийся фон, нужно условие >0, чтобы обновлять деревья, нужно условие >800. Мне нужно, чтобы обновлялись оба.
        if (position.y - height > 800) {
            isScrolledDown = true;
        }
    }
 
    // Reset: Нужно переопределять в дочернем классе, если необходимо описать
    // другое поведение
    public void reset(float newY) {
        position.y = newY;
        isScrolledDown = false;
    }
 
    // Методы доступа к переменным класса
    public boolean isScrolledDown() {
        return isScrolledDown;
    }
 
    public float getTailY() {
        return (position.y - height);
    }
И метод в классе ScrollHandler, который и отвечает за реализацию обновления.
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
public void update(float delta) {
        // обновляем все объекты
        frontGrass1.update(delta);
        backGrass1.update(delta);
        frontGrass2.update(delta);
        backGrass2.update(delta);
        frontBg.update(delta);
        backBg.update(delta);
        Tree1.update(delta);
        Tree2.update(delta);
        Tree3.update(delta);
        // проверяем кто из объектов за левой границей
        // и соответственно сбрасываем параметры этого объекта
 
        // трава
        if (frontGrass1.isScrolledDown()) {
            frontGrass1.reset(backGrass1.getTailY());
        } else if (backGrass1.isScrolledDown()) {
            backGrass1.reset(frontGrass1.getTailY());
        }
 
        if (frontGrass2.isScrolledDown()) {
            frontGrass2.reset(backGrass2.getTailY());
        } else if (backGrass2.isScrolledDown()) {
            backGrass2.reset(frontGrass2.getTailY());
        }
 
        //Фон
        if (frontBg.isScrolledDown()) {
            frontBg.reset(backBg.getTailY());
        } else if (backBg.isScrolledDown()) {
            backBg.reset(frontBg.getTailY());
        }
 
        // Деревья
        if (Tree1.isScrolledDown()) {
            Tree1.reset(Tree3.getTailY() - TREE_GAP);
        } else if (Tree2.isScrolledDown()) {
            Tree2.reset(Tree1.getTailY() - TREE_GAP);
        } else if (Tree3.isScrolledDown()) {
            Tree3.reset(Tree2.getTailY() - TREE_GAP);
        }
    }
P.S. Надеюсь объяснил проблему понятно. Если нет, то напишите в комментариях, я постараюсь уточнить. Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2015, 17:17
Ответы с готовыми решениями:

Скрипт обновляет страницу, нужно доработать
Скрипт обновляет любую страницу в браузере опера через заданный промежуток времени, в других браузерах не проверял. Можно ли обновлять...

Нужно создать метод, который
1. Создать метод, который определяет, входит ли список LI в список L2; 2. Создать метод, который вставляет в непустой список L, элементы...

Исправить метод, который возвращает неверное значение
Подскажите пожалуйста как переписать этот метод чтоб он возвращал переменную с (здесь не видно ее инициализации) public static int...

4
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
27.08.2015, 17:33
Swerps, это под Андроид?
0
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 3
27.08.2015, 17:37  [ТС]
KEKCoGEN, да, но я не думаю, что вопрос относится именно к андроиду.
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
27.08.2015, 18:27
Swerps, в чем вопрос то? Вы привели кучу кода и не задали вопрос
0
0 / 0 / 0
Регистрация: 27.08.2015
Сообщений: 3
28.08.2015, 18:48  [ТС]
KEKCoGEN, как добавить обновление текстур класса Grass?

Добавлено через 23 часа 29 минут
Все, решил, можно удалять.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.08.2015, 18:48
Помогаю со студенческими работами здесь

Нужно вызвать через сторонний метод(в другом классе,который в другом файле) метод в форме
public void Print_Inform(int numb1,int znak,int numb2) { switch(znak) { case 1: label2.Text = "+"; break; case...

Нужно исправить ошибку(Метод Хорд)
Здравствуйте,помогите пожалуйста исправить ошибку в проге для нахождения корня методом хорд,две недели маюсь - ничего не выходит,заранее...

Метод быстрой сортировки: нужно исправить!
Помогите исправить ошибку. Само задание описано в комментах в программе, но написанная мной функция неверно отсортировывает массив D. Это...

Метод касательной (Ньютона). Нужно исправить программу
Program kasat; var a,b,x,eps:real;n:integer; function f (x:real):real; begin f:=sqr(x)*x-(12*x)+9; end; function f1...

Триггер, который обновляет данные об осмотрах объектов недвижимости
Создать триггер, который бы обновлял данные об осмотрах объектов недвижимости(таблица Viewing). Данные о последнем осмотре внести во...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru