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

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

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

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 06.02.2007, 16:56   #1
Антихрист
Разработчик
 
Регистрация: 20.01.2007
Сообщений: 485
Написано 182 полезных сообщений
(для 412 пользователей)
Вопрос Диалог картинками

Прошу вас знающие помочь мне =)
как сделать такой код
ЕСЛИ ОБЬЕКТ на расстояние 2метра от другого обьекта то
вывести картинку на экран(игра 3d но просто диалоги больше к 2d) если нажать на 1 то другая картинка если на 2 то другая и.т.д сзаранее спасибо!
(Offline)
 
Ответить с цитированием
Старый 06.02.2007, 17:07   #2
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Диалог картинками

if object1.xpos - object2.xpos <= 2 then
drawimage pic1,100,100
if keydown(2) drawimage pic2,100,100
if keydown(3) drawimage pic3,100,100
end if

ну и так далее....

и не забываем очищать экран cls
(Offline)
 
Ответить с цитированием
Старый 06.02.2007, 17:25   #3
Антихрист
Разработчик
 
Регистрация: 20.01.2007
Сообщений: 485
Написано 182 полезных сообщений
(для 412 пользователей)
Re: Диалог картинками

if object1.xpos - object2.xpos <= 2 then
тут че то не в пер =))) ща попробую но обьяснение не помешают
(Offline)
 
Ответить с цитированием
Старый 06.02.2007, 17:29   #4
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Диалог картинками

это проверка меньше ли (или равно) расстояние между объектом1 и объектом2 по координате Х двух...
(Offline)
 
Ответить с цитированием
Старый 06.02.2007, 17:58   #5
Leito
Танчики Developer
 
Регистрация: 29.01.2007
Сообщений: 539
Написано 16 полезных сообщений
(для 23 пользователей)
Re: Диалог картинками

Raiter, неправильная у тебя проверка если у первого объекта координата меньше второго, то на любом расстоянии диалог включится)
if abs(entityx#(object1) - entityx#(object2)) and abs(entityz#(object1) - entityz#(object2)) <= 2 then

это правда по квадрату проверка, ну ты с корнями похимичь сделаешь по кругу)
(Offline)
 
Ответить с цитированием
Старый 06.02.2007, 18:49   #6
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Диалог картинками

В справке блица смотри функцию EntityDistance.
(Offline)
 
Ответить с цитированием
Старый 07.02.2007, 02:16   #7
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Диалог картинками

Lito, abs(entityx#(object1) - entityx#(object2))<=2, забыл
2alcoSHoLiC +1, хотя когда нужна максимальная скорость и проверка объектов лежащих в одной плоскости, то можно и с корнями помучаться, или вообще их вынести во внешнюю DLL. (я ето проверял, написанная на C++ функция работает на 15% быстрее у меня по-крайней мере).

И, на всякий случай: ВСЮ 2D графику рисовать после renderworld но до flip. P.S. Я понимаю что все вы аццкие программеры, просто, на всякий случай сказал.
(Offline)
 
Ответить с цитированием
Старый 07.02.2007, 02:47   #8
Антихрист
Разработчик
 
Регистрация: 20.01.2007
Сообщений: 485
Написано 182 полезных сообщений
(для 412 пользователей)
Re: Диалог картинками

спасибо за помощь. все работает но как я понял эти картинки создают жуткие лаги =)
(Offline)
 
Ответить с цитированием
Старый 07.02.2007, 02:54   #9
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Диалог картинками

Сообщение от Антихрист
эти картинки создают жуткие лаги =)
поподробнее. никаких лагов это не должно было создавать, если только картини не на весь экран.
а вообще надо какой - нибудь переменной изменять значение при нажатии на кнопку, и отриовывать соответсвующау картинку (ради удобства можно указатели на картинки хранить в массиве) например:
if keydown(2) then show_image=1
if keydown(3) then show_image=2
if keydown(4) then show_image=3
if show_image then drawimage img[show_image],x,y

тогда грузит надо так
global img[10]
img[1]=loadimage(бла-бла-бла)
img[2]=loadimage(бла-бла-бла)
img[3]=loadimage(бла-бла-бла)
...
(Offline)
 
Ответить с цитированием
Старый 07.02.2007, 02:55   #10
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Диалог картинками

ну если лаги и есть то это имхо из-за юзания 2д команд в 3д
можно юзать спрайтовые команды... тогда лагов не будет
(Offline)
 
Ответить с цитированием
Старый 07.02.2007, 17:24   #11
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Диалог картинками

Сообщение от HolyDel
if keydown(2) then show_image=1
if keydown(3) then show_image=2
if keydown(4) then show_image=3
if show_image then drawimage img[show_image],x,y
Чтобы еще проще, можно так сделать:
pressed_key = getkey() - 48    ;49-57 -- ASCII коды для 1-9 соответственно
if pressed_key > 0 and pressed_key < 10 then
    drawimage img[pressed_key], x, y
end if
(Offline)
 
Ответить с цитированием
Старый 08.02.2007, 00:31   #12
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Диалог картинками

Если у тебя диалог как какойто период, в котором происходят только показы картинок, то лечше сделать что при нажатии (не зажатии), делается Цлс, и отрисовывается картинка, ну там ещё текст и что-то ещё, и потом Флип. А в самом цикле Только проверка на кнопки, при нажатии которых, меняется и обновляется экран. Тоесть лагов будет 0, и обновления экрана только при действиях. Если у тебя анимация, то действую подобным путём, только при нажатии делай переменную которая скажет что нужно ещё парочку картинок показать, и уже в цикле показываешь их.
Напряг с думалкой?
(Offline)
 
Ответить с цитированием
Старый 13.10.2007, 20:56   #13
Bagration
Знающий
 
Регистрация: 06.10.2007
Сообщений: 225
Написано 15 полезных сообщений
(для 21 пользователей)
Вопрос Re: Диалог картинками

У меня такой вопрос: как сделать так что бы при нажатии кнопки (не зажатии) появлялось изображение, скажем поле для будущего меню, а то у меня приходиться зажимать лев. кнопку мыши на кнопке которая отвечает за вызов иозбражения. Вот часть кода:

If ImageRectOverlap (cursor,mx,my,384,595,257,47) Then
		DrawImage knopka,384,595,1
		Text 460,595,"Credits"
		DrawImage cursor,mx,my
		 If md1 Then
			 
			DrawImage credits,200,100
			DrawImage knopka,200,300,0
			
			

		End If
End If

Заранее спасибо за ответ!
(Offline)
 
Ответить с цитированием
Старый 13.10.2007, 20:59   #14
Данил
Модератор
 
Аватар для Данил
 
Регистрация: 11.07.2007
Сообщений: 2,910
Написано 686 полезных сообщений
(для 1,694 пользователей)
Re: Диалог картинками

Global test
If ImageRectOverlap (cursor,mx,my,384,595,257,47) Then
		DrawImage knopka,384,595,1
		Text 460,595,"Credits"
		DrawImage cursor,mx,my
		 If md1 Then test = 1
			 

End If

Цикл:
If Test = 1
	DrawImage credits,200,100
	DrawImage knopka,200,300,0
End if
Вроде...
(Offline)
 
Ответить с цитированием
Старый 13.10.2007, 21:30   #15
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: Диалог картинками

А можно вместо "test = 1", написать test = Not test. И тогда будет можно открывать/закрывать.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вот такой диалог у меня недавно был))) Randomize Юмор 7 05.02.2009 14:19
Диалог выбора ОС ABTOMAT Болтовня 11 23.01.2009 23:17
Диалог - Пародия на тему песни Высоцкого ingko Юмор 5 27.11.2007 14:15
Диалог Буша с Конди alcoSHoLiK Юмор 5 17.12.2006 16:15
диалог с окружающими Жека Юмор 8 02.12.2005 21:22


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


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