Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
49 / 44 / 8
Регистрация: 06.09.2010
Сообщений: 419

Как в играх реализуется анимация?

09.12.2012, 15:40. Показов 2353. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотел узнать, как в спрайтовых играх реализуется анимация?
Если я правильно понял, то в зависимости от действий мы просто подставляем разные гифки, на которых показана анимация... Так?
И если я делаю красивый лоадбар. по которому например раз в пять секунд пробегает огонь, то я просто поверх лоадбара накладываю гифку с прозрачным фотоном и вуаля?

И если есть, можете скинуть примеры на джава хоть какой-то анимации?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.12.2012, 15:40
Ответы с готовыми решениями:

Кто знает как создается анимация в пиксельных играх?
Я не знаю как другие программисты создают анимацию удара оружия, т.е. я имею представления, примерно, просто рисуются отдельные изображения...

Анимация в сетевых играх
Как в сетевой игре сделать анимацию, т.е. передать анимацию от одного клиента к другом, просто анимацию я уже умею делать, так же умею...

Как реализуется многопоточность в VB?
Подскажите плз как реализуется многопоточность в VB, если конечно здесь таковая имеется.

2
 Аватар для lowercase
213 / 202 / 85
Регистрация: 09.05.2012
Сообщений: 494
14.12.2012, 02:05
Лучший ответ Сообщение было отмечено Neon-z как решение

Решение

анимация реализируется с помощью таймера и отдельных картинок кадров, которые меняются через определнный промежуток времени. и вообще, если не ошибаюсь, без таймеров иру врятли получится написать. даже 2D аркаду в которой простой мячик будет прыгать на месте.
зачем нужен таймер? да затем, что на разном железе, одна и та же игра будет то "летать"(в случаее с более новым железом) то "ползать"(в случае с машинами на которых железо уже старенькое). поэтому все рализируется таймером который позволяет делать ту или ининную операцию спустя определенный интервал врмени.

могу скинуть пример как я делал анимацию пакмана. но это дело было на C# windows forms. вообще говоря делать подобное через формы и стандартные компоненты - это плохой подход. разве что в целях общего развития и понимания того как устроен сам процесс. для реального же создания игр следует использовать специальные наборы api для работы с графикой(например, opengl, только не знаю можно ли java его использовать).

... но если уж говорить о формах, то я делал примерно так:
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
class AnimatedObject extends Control {
    private int index;
    private Image[] frames;
    
    public AnimatedObject(Images[] frames){
        this.frames = frames.clone();
        index = 0;
    }
    public void doSomething(){
        // тут мы заставляем персонажа, машинку, или что-то другое
        // двигатся, прыгать, ехать, и вообще что-то делать
 
        // далее вызываем изменение картинки(анимации) 
        // персонажа, машинки или чего-то еще
        doAnimation();
    }
    protected void doAnimation(){
        // тут просто меняем фрейм который рисуется.
        // или вообще можно создать один Image(спрайт) вместо масива
        // и менять не индекс фрейма, а координаты.
        if(index >= frames.length - 1)
            index = 0;
        else 
            index++
        // ну и прорисовку нового фрейма вызываем.
        repaint();
    }
    @Override
    protected void paintComponent(Graphics g){
        // тут рисуем frames[index];
        // к сожалению не интерисовался как прорисовать
        // Image на Graphics, но думаю это не сложно
    }
    
}
как-то так. вообще я сам не очень силен в этой области. просто был когдато энтузизам для написания своей игры, но, ксожалению, лень взяла гору
1
49 / 44 / 8
Регистрация: 06.09.2010
Сообщений: 419
14.12.2012, 09:10  [ТС]
В Java есть OpenGl - JOGL называется
То есть всю красивую анимацию можно и нужно рисовать покадрово с помощью OpenGL?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2012, 09:10
Помогаю со студенческими работами здесь

Как реализуется шифрование
Здравствуйте, можете понятным языком (с понятными комментариями) написать, что нужно делать, чтобы зашифровать данные, расположенные в...

Как реализуется типичный итератор?
Хочется для своего списка написать класс-итератор. Вопрос: от какого класса лучше всего наследоваться, как лучше всего организовать...

Dragable рисунок, как реализуется?
Добрый день, подскажите куда капнуть и на чем хоть делать, такую вещь, как картинку которую возможно перетягивать мышью, для примера...

Как реализуется стилизация элемента?
Здравствуйте, подскажите пожалуйста, стилизация элементов в каком месте кода прописывается?? Ниже приведен код, куда например нужно...

Как реализуется поиск по сайту?
Как реализуется поиск по сайту? Через базы данных? Если да, то как справляются с нагрузкой? Или она не велика будет?


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
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