Картинки, маски и задние планы...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Winitar
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 06.07.2006 (Чт) 20:45
Откуда: Астана

Картинки, маски и задние планы...

Сообщение Winitar » 21.01.2007 (Вс) 13:53

Вопрос - :?: Вопрос краток: "Как убирать на нарисованной, например в Paint'е, картинке задний план?"
Поясняю - :idea: "Рисую для игры, опять же в Paint'е человечка. Вставляю готовую картинку в Basic... Но вот проблема человечек вставляется, даже двигать можно, а заним двигаетя и белый(черный, красный... и т.д.) квадратик!"
Итог - :!: Как сделать, что б человечек ходил один, без всяких квадратиков сзади? :shock:


Может вопрос и туп :oops: , но всё уже перепробовал! Help! :cry: :cry: :cry:

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 21.01.2007 (Вс) 14:34

Задний план убрать не проблема. Но как я понял, картинка выводится или в PictureBox или в Image... Не серьёзно это как-то:) Я бы посоветовал, если интересует создание игр, сразу использовать DirectX, в частности для данного случая DirectDraw.
Salus populi suprema lex

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.01.2007 (Вс) 14:53

Про работу с маской без DX см. http://bbs.vbstreets.ru/viewtopic.php?t=29140
Изображение

JohnK
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 874
Зарегистрирован: 03.08.2002 (Сб) 0:35
Откуда: 48.02` 37.58`

Сообщение JohnK » 21.01.2007 (Вс) 16:54

dr.MIG писал(а):Задний план убрать не проблема. Но как я понял, картинка выводится или в PictureBox или в Image... Не серьёзно это как-то:) Я бы посоветовал, если интересует создание игр, сразу использовать DirectX, в частности для данного случая DirectDraw.

Гм... В paint.exe рисовать, уже не серьезно :lol:
PhotoShop рулит!
SELECT * FROM girls WHERE tits NOT NULL AND age BETWEEN 18 AND 25 ORDER BY Beauty

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 21.01.2007 (Вс) 17:08

Устное предупреждение за бессодержательный флейм-бейт.
Изображение

Winitar
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 06.07.2006 (Чт) 20:45
Откуда: Астана

Сообщение Winitar » 21.01.2007 (Вс) 18:35

tyomitch, извини, опять же повторяюсь - я новичёк... :oops:
А кому предупреждение то?
И что есть бессодержательный флейм-бейт?
---------------------------------------------------------------------
А за советы пасиб! Действительно у вас классный форум!!! :) :) :)

zan
Бывалый
Бывалый
 
Сообщения: 224
Зарегистрирован: 24.08.2006 (Чт) 4:55

Сообщение zan » 22.01.2007 (Пн) 7:15

dr.MIG писал(а):Я бы посоветовал, если интересует создание игр, сразу использовать DirectX, в частности для данного случая DirectDraw.

Ну почему всегда так сложно? Человеку может проще начинать с чего-либо простого... С bitblt, tile’ми там, алгоритмы и т.п.
JohnK писал(а):Гм... В paint.exe рисовать, уже не серьезно :lol:
PhotoShop рулит!

Чем же рулит фотошоп в отличие от paint’а? Pixel’ной графикой то хоть занимались? Иногда проще, и правильнее по цветопередаче нарисовать спрайт 16x16 именно в paint’е...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 22.01.2007 (Пн) 16:10

Winitar писал(а):tyomitch, извини, опять же повторяюсь - я новичёк... :oops:
А кому предупреждение то?
И что есть бессодержательный флейм-бейт?

Предупреждение было JohnK, и оно уже не устное.

zan писал(а):
JohnK писал(а):Гм... В paint.exe рисовать, уже не серьезно :lol:
PhotoShop рулит!

Чем же рулит фотошоп в отличие от paint’а? Pixel’ной графикой то хоть занимались? Иногда проще, и правильнее по цветопередаче нарисовать спрайт 16x16 именно в paint’е...

Предлагаю на этом дискуссию и завершить. Не кормите троллей.
Изображение

Winitar
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 224
Зарегистрирован: 06.07.2006 (Чт) 20:45
Откуда: Астана

Сообщение Winitar » 23.01.2007 (Вт) 18:55

zan писал(а):Ну почему всегда так сложно? Человеку может проще начинать с чего-либо простого... С bitblt, tile’ми там, алгоритмы и т.п.

Не знаешь, где можно найти статейку по всяким там bitblt...?
Я с этим встречался пару раз, но мало чё понял...!! :oops:

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4168
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 23.01.2007 (Вт) 19:22

Winitar
Может это поможет:
http://bbs.vbstreets.ru/viewtopic.php?t=24007

Wolfie
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 213
Зарегистрирован: 06.03.2006 (Пн) 18:52
Откуда: Россия, Москва, СЗАО

Сообщение Wolfie » 24.01.2007 (Ср) 17:48

Да, кстати - чтобы не возится - может проще тогда рисовать не пэинтом а в GIF сохранять како-либо программой, уже без фона - тогда вообще не понадобится дополнительных алгоритмов для очистки фона.
Еще ico неплохой формат для подобного дела - если нет желания ковырять функции и спец. алгоритмы - советую для ico-спрайтов MicroAngelo - удобно и ico любого размера делает (от 8х8 до 128х128))
··•··•••··•··••·•·•·•···••·•••···•···•••·•··•·•··
C:\> per asper ad astra
'ASTRA' answer: Path 'ASPER' Not Found
684 Errare humanum est!
C:\> _

AstSV
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 14.01.2007 (Вс) 15:37

Сообщение AstSV » 27.01.2007 (Сб) 23:33

Я для этих целей сделал контрол, который имеет форму картинки, которую ты в него помещаешь (цвет фона картинки обрезается). Далее ты двигаешь объект не заботясь о том, что под ним окажется.
Вобщем-то сам я использую его для сооздания кнопок и окон произвольной формы.
Но можно использовать и PaintPicture, тогда вот так:
'На форме размести три объекта Picture: Picture1,Picture2,Picture3
'и установи для них свойство AutoRedraw = True и свойство Visible = False
'Для Picture2,Picture3 установи свойство AutoSize = True
'Помести в Picture2 желаемую картинку, например яблоко на белом фоне.
'Помести в Picture3 чёрное яблоко на белом фоне - это маска.
'Желательно, чтобы картинки были bmp или gif.
'
'Запиши и выполни следующий код:

Option Explicit
'
Dim wP As Long 'Ширина картинки и маски
Dim hP As Long 'Высота картинки и маски
'
Dim xT As Long 'Координата-x мышки на форме
Dim yT As Long 'Координата-y мышки на форме
'
Dim wF As Long 'Размеры картинки, которую ты будешь "двигать"
Dim hF As Long
'
Private Sub Form_Load()
'Размеры исходной картинки
wP = Picture2.ScaleWidth
hP = Picture2.ScaleWidth
'Определи размеры картинки, которую ты будешь "двигать",
'например в 2 раза меньше исходной.
wF = wP / 2
hF = hP / 2
'Picture1 служит для временного хранения фона.
Picture1.Width = wF
Picture1.Height = hF
'Скопируем фон в Picture1
'При загрузке xt=0, yt=0
Picture1.PaintPicture Form1.Image, 0, 0, wF, hF, xT, yT, wF, hF, vbSrcCopy
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Восстановим фон
Form1.PaintPicture Picture1.Image, xT, yT, wF, hF, 0, 0, wF, hF, vbSrcCopy
'Скопируем фон
xT = X
yT = Y
Picture1.PaintPicture Form1.Image, 0, 0, wF, hF, X, Y, wF, hF, vbSrcCopy
'Поместим на это место картинку.
Form1.PaintPicture Form1.Picture3.Image, xT, yT, wF, hF, 0, 0, wP, hP, vbMergePaint
Form1.PaintPicture Form1.Picture2.Image, xT, yT, wF, hF, 0, 0, wP, hP, vbSrcAnd
End Sub
'Кликай на форме левой кнопкой мыши.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, SemrushBot и гости: 7

    TopList