forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Появление изображения (http://forum.boolean.name/showthread.php?t=18129)

CostUm 30.04.2013 22:36

Появление изображения
 
Помогите сделать так, чтобы изображение появлялось в определённом месте по частям, там где зажата кнопка мыши например, тем самым рисуя к примеру граффити на стене.:SOS:

tirarex 01.05.2013 12:33

Ответ: Появление изображения
 
DrawBlockRect image,x,y,rect_x,rect_y,rect_width,rect_height,[frame]

это просто рисовать изображение кусками

для граффити можно генерировать карту прозрачности , заполняя её чёрным цветом

CostUm 01.05.2013 14:48

Re: Появление изображения
 
блин, а можешь пояснить функцию если не сложно)) хочу быть в курсе того, что я делаю)

tirarex 01.05.2013 14:59

Ответ: Появление изображения
 
хелп блица в помощь , но если у тебя не русский хелп то вот

Цитата:

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 вместо этой.


CostUm 01.05.2013 16:14

Re: Появление изображения
 
извиняюсь за наглость, но было бы не плохо увидеть её (функцию) на примере, а то я не могу полностью врубить что к чему)

St_AnGer 01.05.2013 17:41

Ответ: Re: Появление изображения
 
Цитата:

Сообщение от CostUm (Сообщение 258237)
извиняюсь за наглость, но было бы не плохо увидеть её (функцию) на примере, а то я не могу полностью врубить что к чему)

В чём проблема?

Блица под рукой нету, но как то так это должно выглядеть (если нужно вывести часть картинки).

Код:

...
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. За точность кода не ручаю, но принцип точно этот.

tirarex 01.05.2013 18:34

Ответ: Появление изображения
 
ну и сэмплы из хелпа

Пример 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

CostUm 02.05.2013 20:32

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

ABTOMAT 02.05.2013 23:45

Ответ: Появление изображения
 
Как у тебя уже реализовано граффити? Чтобы ответить на твой вопрос нужно знать как ты собираешься показывать изображение (пока что цельное) и уже от этого плясать.

CostUm 02.05.2013 23:53

Re: Появление изображения
 
пока никак, я решил зря не начинать, а понять для начала по силам мне придётся это или нет) ну и вот встал с первым вопрос, идея есть, но реализовать как не знаю

ABTOMAT 02.05.2013 23:58

Ответ: Появление изображения
 
Ну тогда сначала надо было задать вопрос "Как делать граффити чтоб потом можно было потом по частям рисовать". В-общем всё должно быть на чём-то основано, а то миллиард вариантов получится. Я даже не понял, у тебя игра 2D или 3D ?

CostUm 03.05.2013 00:14

Re: Появление изображения
 
в 3д

DarkInside 03.05.2013 00:24

Ответ: Появление изображения
 
Как я понял, у тебя есть стена, ты к ней подходишь(вид от первого лица) и рисуешь графити, нажимая ЛКМ?...
Сделай несколько изображений и меняй текстуру в зависимости от продолжительности нажатия ЛКМ...а вообще описывай подробнее, что ты хочешь сделать? никто ничерта не понял

CostUm 03.05.2013 00:26

Re: Появление изображения
 
хаха ну ладно
только игра от 3-его лица, но не в этом соль

St_AnGer 03.05.2013 00:31

Ответ: Появление изображения
 
Может опишешь тогда саму "соль", что бы мы знали как тебе подсказать? Тебе надо что то в стиле GTA: SA (там граффити можно было закрашивать и рисовать ЕМНИП)? Или как в CS 1.6 рисуется? Вариантов реально хренлион, скажи какой нужен тебе?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot