|
3D-программирование Вопросы, касающиеся программирования 3D мира |
30.04.2013, 22:36
|
#1
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Появление изображения
Помогите сделать так, чтобы изображение появлялось в определённом месте по частям, там где зажата кнопка мыши например, тем самым рисуя к примеру граффити на стене.
|
(Offline)
|
|
01.05.2013, 12:33
|
#2
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Появление изображения
DrawBlockRect image,x,y,rect_x,rect_y,rect_width,rect_height,[frame]
это просто рисовать изображение кусками
для граффити можно генерировать карту прозрачности , заполняя её чёрным цветом
|
(Offline)
|
|
01.05.2013, 14:48
|
#3
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Re: Появление изображения
блин, а можешь пояснить функцию если не сложно)) хочу быть в курсе того, что я делаю)
|
(Offline)
|
|
01.05.2013, 14:59
|
#4
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Появление изображения
хелп блица в помощь , но если у тебя не русский хелп то вот
DrawBlockRect image,x,y,rect_x,rect_y,rect_width,rect_height,[frame]
Параметры
image = указатель рисунка
x = координата x экрана, куда будет выводится рисунок
y = координата y экрана, куда будет выводится рисунок
rect_x = начальная координата x на рисунке
rect_y = начальная координата y на рисунке
rect_width = высота части рисунка
rect_height = ширина части рисунка
frame =кадр рисунка (не обязательно)
Описание
Эта команда позволит Вам отобразить прямоугольную ЧАСТЬ изображения в указанном месте на экране. Прозрачные/скрытые под маской части оригинального изображения будут игнорироваться и также будут видимыми.
Это удобно, например, если игрок открывает что-нибудь. Вы можете загрузить полностью большое изображение, а затем, когда игрок выполняет определенное действие в какой-либо части экрана, Вы можете вставить нужную часть загруженного изображения на это место. Если Вы хотите вывести часть изображения с использованием прозрачности или маски, используйте команду DrawImageRect вместо этой.
|
и еще
DrawImageRect image,x,y,rect_x,rect_y,rect_width,rect_height,[frame]
Параметры
image = указатель рисунка
x = координата x экрана, куда будет выводится рисунок
y = координата y экрана, куда будет выводится рисунок
rect_x = начальная координата x на рисунке
rect_y = начальная координата y на рисунке
rect_width = высота части рисунка
rect_height = ширина части рисунка
frame =кадр рисунка (не обязательно)
Описание
Эта команда позволит Вам отобразить прямоугольную ЧАСТЬ изображения в указанном месте на экране. Прозрачные/скрытые под маской части оригинального изображения будут также прозрачными, как если бы Вы выводили рисунок на экран обычным способом.
Это удобно, например, если игрок открывает что-нибудь. Вы можете загрузить полностью большое изображение, а затем, когда игрок выполняет определенное действие в какой-либо части экрана, Вы можете вставить нужную часть загруженного изображения на это место. Если Вы хотите вывести часть изображения без прозрачности или маски, используйте команду DrawBlockRect вместо этой.
|
|
(Offline)
|
|
01.05.2013, 16:14
|
#5
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Re: Появление изображения
извиняюсь за наглость, но было бы не плохо увидеть её (функцию) на примере, а то я не могу полностью врубить что к чему)
|
(Offline)
|
|
01.05.2013, 17:41
|
#6
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Re: Появление изображения
Сообщение от CostUm
извиняюсь за наглость, но было бы не плохо увидеть её (функцию) на примере, а то я не могу полностью врубить что к чему)
|
В чём проблема?
Блица под рукой нету, но как то так это должно выглядеть (если нужно вывести часть картинки).
...
img = LoadImage("trololo.png");
...
While Not KeyHit(1)
...
DrawImageRect (img, 300, 300, 0, 0, ImageWidth(img)/2, ImageHeight(img)/2);
...
Wend
End
В данном случае на экране в координатах (300; 300) отобразится верхняя левая четверть картинки trololo.png. За точность кода не ручаю, но принцип точно этот.
__________________
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)
|
|
01.05.2013, 18:34
|
#7
|
Бывалый
Регистрация: 23.11.2011
Сообщений: 863
Написано 334 полезных сообщений (для 866 пользователей)
|
Ответ: Появление изображения
ну и сэмплы из хелпа
Пример DrawBlockRect
; Установим графический режим
Graphics 640,480,16
; Создаём пустой рисунок, в котором нарисуем круг
gfxCircle=CreateImage(50,50)
; Нарисуем круг
; предварительные установки перед рисованием
SetBuffer ImageBuffer(gfxCircle)
Color 255,0,0
; Заметьте пустое пространство между кругом и краем рисунка
Oval 10,10,30,30,1
SetBuffer FrontBuffer()
; Сделаем экран белым, чтобы видеть прозрачные участки
ClsColor 255,255,255
Cls
; выводим на экран случайную часть рисунка
While Not KeyHit(1)
; берем случайную часть и выводим в случайные координаты экрана
; и повторяем это в цикле
DrawBlockRect gfxCircle,Rnd(640),Rnd(480),0,0,Rnd(50),Rnd(50),0
Delay 100
Wend
|
Пример DrawImageRect
; Установим графический режим
Graphics 640,480,16
; Создаём пустой рисунок, в котором нарисуем круг
gfxCircle=CreateImage(50,50)
; Нарисуем круг
; предварительные установки перед рисованием
SetBuffer ImageBuffer(gfxCircle)
Color 255,0,0
; Заметьте пустое пространство между кругом и краем рисунка
Oval 10,10,30,30,1
SetBuffer FrontBuffer()
; выводим на экран случайную часть рисунка
While Not KeyHit(1)
; берем случайную часть и выводим в случайные координаты экрана
; и повторяем это в цикле
DrawImageRect gfxCircle,Rnd(640),Rnd(480),0,0,Rnd(50),Rnd(50),0
Delay 100
Wend
Wend
|
|
(Offline)
|
|
02.05.2013, 20:32
|
#8
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Re: Появление изображения
Всё это немного не то, надо чтобы одно изображение рисовалось частями исходя из того, когда я нажимаю кнопку и как вожу мышкой. как то так)
|
(Offline)
|
|
02.05.2013, 23:45
|
#9
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Появление изображения
Как у тебя уже реализовано граффити? Чтобы ответить на твой вопрос нужно знать как ты собираешься показывать изображение (пока что цельное) и уже от этого плясать.
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
02.05.2013, 23:53
|
#10
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Re: Появление изображения
пока никак, я решил зря не начинать, а понять для начала по силам мне придётся это или нет) ну и вот встал с первым вопрос, идея есть, но реализовать как не знаю
|
(Offline)
|
|
02.05.2013, 23:58
|
#11
|
Ференька
Регистрация: 26.01.2007
Адрес: улица Пушкина дом Колотушкина
Сообщений: 10,741
Написано 5,461 полезных сообщений (для 15,675 пользователей)
|
Ответ: Появление изображения
Ну тогда сначала надо было задать вопрос "Как делать граффити чтоб потом можно было потом по частям рисовать". В-общем всё должно быть на чём-то основано, а то миллиард вариантов получится. Я даже не понял, у тебя игра 2D или 3D ?
__________________
Мои проекты:
Анальное Рабство
Зелёный Слоник
Дмитрий Маслов*
Различие**
Клюква**
* — в стадии разработки
** — в стадии проектирования
Для проектов в стадии проектирования приведены кодовые имена
|
(Offline)
|
|
03.05.2013, 00:14
|
#12
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Re: Появление изображения
в 3д
|
(Offline)
|
|
03.05.2013, 00:24
|
#13
|
Разработчик
Регистрация: 08.08.2011
Сообщений: 505
Написано 191 полезных сообщений (для 369 пользователей)
|
Ответ: Появление изображения
Как я понял, у тебя есть стена, ты к ней подходишь(вид от первого лица) и рисуешь графити, нажимая ЛКМ?...
Сделай несколько изображений и меняй текстуру в зависимости от продолжительности нажатия ЛКМ...а вообще описывай подробнее, что ты хочешь сделать? никто ничерта не понял
|
(Offline)
|
|
03.05.2013, 00:26
|
#14
|
ПроЭктировщик
Регистрация: 09.11.2007
Сообщений: 141
Написано одно полезное сообщение
|
Re: Появление изображения
хаха ну ладно
только игра от 3-его лица, но не в этом соль
|
(Offline)
|
|
03.05.2013, 00:31
|
#15
|
Элита
Регистрация: 21.01.2010
Адрес: Россия, Рязанская область, г.Михайлов
Сообщений: 2,067
Написано 1,185 полезных сообщений (для 2,828 пользователей)
|
Ответ: Появление изображения
Может опишешь тогда саму "соль", что бы мы знали как тебе подсказать? Тебе надо что то в стиле GTA: SA (там граффити можно было закрашивать и рисовать ЕМНИП)? Или как в CS 1.6 рисуется? Вариантов реально хренлион, скажи какой нужен тебе?
__________________
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)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 09:28.
|