Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D

Ответ
 
Опции темы
Старый 21.11.2011, 21:39   #16
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Помогите с LoadAnimImage

В фотошопе слепи картинку без всяких разделяющих линий.
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Okay (21.11.2011)
Старый 21.11.2011, 21:57   #17
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Так. Хорошо. Всем спасибо)
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 22:10   #18
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Ах да. Еще вопрос. Вообщем есть изображение. Им можно управлять стрелочками.
Суть вопроса: Какую функцию использовать, чтобы когда нажимаю допустим кнопку. старое изображение удалялось, новое появлялось. Далее когда отпускаю кнопку, появляется опять старое.
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 22:15   #19
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
Okay
Знающий
 
Регистрация: 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
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Смотри. Изображение уже нарисовано. То есть если я нажму кнопку, он нарисует еще одно изображение.
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 22:33   #23
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 22:35   #24
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

А что если сделать так же по кадрам? То есть запускать определенный кадр в то или инное действие? если я нажму кнопку, он будет мне показывать другой кадр. Можно ли так?
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 22:35   #25
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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
Okay
Знающий
 
Регистрация: 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
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Ok. Попробую с кадрами поработать чуть чуть. Так если что не получится, напишу
(Offline)
 
Ответить с цитированием
Старый 21.11.2011, 23:21   #28
St_AnGer
Элита
 
Аватар для St_AnGer
 
Регистрация: 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)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Okay (22.11.2011)
Старый 22.11.2011, 00:01   #29
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Сделал через условие IF. Только теперь не знаю как потом возвратить функцию обратно в 0.
(Offline)
 
Ответить с цитированием
Старый 22.11.2011, 00:32   #30
Okay
Знающий
 
Регистрация: 21.11.2011
Сообщений: 284
Написано 17 полезных сообщений
(для 74 пользователей)
Ответ: Помогите с LoadAnimImage

Сообщение от Okay Посмотреть сообщение
Сделал через условие IF. Только теперь не знаю как потом возвратить функцию обратно в 0.
Пацаны вообще ребята!
Получилось через else Good nice ^_^
Выражаю огромное спасибо всем, кто помог мне в освоение анимации и не много логики)
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 18:18.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com