|
21.11.2011, 21:39
|
#16
|
Разработчик
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений (для 670 пользователей)
|
Ответ: Помогите с LoadAnimImage
В фотошопе слепи картинку без всяких разделяющих линий.
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
21.11.2011, 21:57
|
#17
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Так. Хорошо. Всем спасибо)
|
(Offline)
|
|
21.11.2011, 22:10
|
#18
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Ах да. Еще вопрос. Вообщем есть изображение. Им можно управлять стрелочками.
Суть вопроса: Какую функцию использовать, чтобы когда нажимаю допустим кнопку. старое изображение удалялось, новое появлялось. Далее когда отпускаю кнопку, появляется опять старое.
|
(Offline)
|
|
21.11.2011, 22:15
|
#19
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Помогите с LoadAnimImage
рисовать нужное изображение при нажатии клавиши, а при НЕ нажатии - рисовать другое. Что то вроде такого
If KeyDown(27)
DrawImage img1, 10, 10
Else
DrawImage img2, 10, 10
End If
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
21.11.2011, 22:24
|
#20
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
While Not KeyDown(1)
Cls
DrawImage mario,xm,ym
DrawImage pein,x,y
DrawImage cur,MouseX(),MouseY()
If KeyDown(200) Then
y = y - 1
EndIf
If KeyDown(208) Then
y = y + 1
EndIf
If KeyDown(203) Then
x = x - 1
EndIf
If KeyDown(205) Then
x = x + 1
EndIf
В действиях пробовал вставлять freeimage. Выдает ошибку.
|
(Offline)
|
|
21.11.2011, 22:28
|
#21
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Помогите с LoadAnimImage
FreeImage выдаёт ошибку потому что ты удаляешь изображение в цикле, т.е. не один раз. И зачем удалять? Рисуй просто как я сказал (когда надо одну, а когда ненадо - на её же месте другую).
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
21.11.2011, 22:32
|
#22
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Смотри. Изображение уже нарисовано. То есть если я нажму кнопку, он нарисует еще одно изображение.
|
(Offline)
|
|
21.11.2011, 22:33
|
#23
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
|
(Offline)
|
|
21.11.2011, 22:35
|
#24
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
А что если сделать так же по кадрам? То есть запускать определенный кадр в то или инное действие? если я нажму кнопку, он будет мне показывать другой кадр. Можно ли так?
|
(Offline)
|
|
21.11.2011, 22:35
|
#25
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Помогите с LoadAnimImage
эмм... Я не понял сразу о чём ты. Делай CLS вначале цикла. Должно помочь.
упд. Моя невнимательность, клс есть.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
21.11.2011, 22:36
|
#26
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Graphics 800,600
SetBuffer BackBuffer()
AppTitle "The Big Fighter"
Global x = 300
Global y = 300
Global xm = 400
Global ym = 400
Global frmSparks, tmrSparks
Global cadr = 0
Global pein = LoadImage("pein.bmp")
Global mario = LoadImage("mario.bmp")
Global cur = LoadImage("cursor.bmp")
Global pein_run = LoadAnimImage("pein_run.bmp",65,65,cadr,3)
MaskImage mario,0,0,0
MaskImage pein,0,0,0
While Not KeyDown(1)
Cls
DrawImage mario,xm,ym
DrawImage pein,x,y
DrawImage cur,MouseX(),MouseY()
If KeyDown(200) Then
y = y - 1
EndIf
If KeyDown(208) Then
y = y + 1
EndIf
If KeyDown(203) Then
x = x - 1
EndIf
If KeyDown(205) Then
x = x + 1
EndIf
HidePointer
Flip
Wend
End
|
(Offline)
|
|
21.11.2011, 22:45
|
#27
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Ok. Попробую с кадрами поработать чуть чуть. Так если что не получится, напишу
|
(Offline)
|
|
21.11.2011, 23:21
|
#28
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Помогите с LoadAnimImage
Сообщение от Okay
Смотри. Изображение уже нарисовано. То есть если я нажму кнопку, он нарисует еще одно изображение.
|
при том коде что ты написал, если ты нажмёшь кнопку 200 (вверх) - он не нарисует новое, а сдвинет твоё изображение на экране вверх (соответственно уменьшив координату Y). С другими кнопками соответственно их условию работы. Не пойму сути проблемы, твой код рабочий (и работает как надо вроде бы).
По LoadAnimImage - тут вроде всё легко.
1) Грузишь последовательность кадров:
pein_run = LoadAnimImage("pein_run.bmp", 65, 65, [номер первого кадра], [флаги изображения])
2) вводишь какую то переменную считающую кадры изображения (например frame% ) и переменную считающую интервал смены кадра (допустим frameTime% );
3) в цикле отображаешь твоё изображение с помощью DrawImage (допустим кадров было 3):
If MilliSecs() > frameTime + 100 Then
frameTime = MilliSecs()
frame = ( frame + 1 ) Mod 3; 3 - количество кадров
End If
DrawImage pein_run, x, y, frame
Всё должно прекрасно работать. Помоему это есть в базовых примерах блица. Сори если код немного не верный будет - с телефона пишу уже засыпая.
__________________
Main PC:
Intel Core i5 4260U 1.44 GHz + LPDDR3 1x4096 1600 MHz + Intel HD Graphics 5000.
Asus Ёжик T101-MT:
Intel Atom N-570 1.66 Ghz + DDR2 2x1024 800 Mhz + Intel GMA 3150 128 Mb DDR2
Скачать Doom 2D: Remake v0.3.8a
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
22.11.2011, 00:01
|
#29
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Сделал через условие IF. Только теперь не знаю как потом возвратить функцию обратно в 0.
|
(Offline)
|
|
22.11.2011, 00:32
|
#30
|
Знающий
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений (для 74 пользователей)
|
Ответ: Помогите с LoadAnimImage
Сообщение от Okay
Сделал через условие IF. Только теперь не знаю как потом возвратить функцию обратно в 0.
|
Пацаны вообще ребята!
Получилось через else Good nice ^_^
Выражаю огромное спасибо всем, кто помог мне в освоение анимации и не много логики)
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:18.
|