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

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

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

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

Ответ
 
Опции темы
Старый 20.04.2011, 18:43   #1
Drayfer
Нуждающийся
 
Регистрация: 14.02.2011
Адрес: Украина, Луганск
Сообщений: 67
Написано 0 полезных сообщений
(для 0 пользователей)
Проблема с DrawImage

Я так понимаю структура использования DrawImage такая:

Graphics3D 640,480
SetBuffer BackBuffer() 
:здесь какой-то код
Global img = LoadImage("captain1.jpg")

While Not KeyHit(1) 
;здесь какой-то код
UpdateWorld
RenderWorld
Picture()
Flip
Wend

Function Picture()
	While Not KeyHit(2) 
		DrawImage img,0,0
		Flip
	Wend
End Function
1. Но почему на выводимом изображении, там где есть черный цвет - он становится как прозрачным и сквозь него видно мой последний кадр моего игрового мира - до того как вывелась эта картинка на экран?

2. И хотя может это и не важно, но все равно: почему в тех местах, где видно мой игровой мир, тот последний кадр жутко дергается, а не останавливается в спокойном недвижимом кадре?

Хотелось бы получить ответ на первый вопрос приемущественно.
(Offline)
 
Ответить с цитированием
Старый 20.04.2011, 19:39   #2
Mhyhr
Бывалый
 
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений
(для 858 пользователей)
Ответ: Проблема с DrawImage

Привет! План таков!
1) MaskImage, почитай про эту функцию.
2) Честно говоря, какой-то страшный у тебя код. Православнее так:
Graphics3D 640,480
SetBuffer BackBuffer
() 
Global 
img LoadImage("captain1.jpg")

MaskImage(img,100,100,100); Теперь прозрачный цвет серо-какой-то

While Not KeyHit(1
    ;
как-бэ очистка
    Cls
();

    ;
здесь логика
    
if(KeyHit(2)) then ILikeDrugs();


    ;
здесь как-бэ 3д обновка-отрисовка
    UpdateWorld
    RenderWorld

    
;здесь как-бэ 2д отрисовка DrawImage img,0,0

    
Здесь буферы флип-флип и выводится на монитор.
    
Flip()
Wend

Function ILikeDrugs()
    While 
Not KeyHit(2
    
Cls();

    
RenderWorld
    DrawImage img
,0,0
    Flip
    Wend
End 
Function 

Последний раз редактировалось Mhyhr, 21.04.2011 в 13:26.
(Offline)
 
Ответить с цитированием
Старый 21.04.2011, 12:35   #3
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Проблема с DrawImage

Охлол Один другого не лучше

MAIN_MENU_1%=0
img1=LoadImage("image.png")
maskimage img1,100,100,100
Repeat
	RenderWorld()
	UpdateWorld()
	'Теперь очередь 2D
	If(KeyHit(2)) MAIN_MENU_1=Not MAIN_MENU_1
	If(MAIN_MENU_1)
		DrawImage(img1,0,0)
	EndIf 
	Flip
Until KeyHit(1)
End
PS судя по коду автора он отел сделать как раз это
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
tormoz (22.04.2011)
Старый 21.04.2011, 13:25   #4
Mhyhr
Бывалый
 
Регистрация: 06.04.2009
Сообщений: 612
Написано 276 полезных сообщений
(для 858 пользователей)
Ответ: Проблема с DrawImage

Не не не судя по коду, автор хотел отдельную функцию с блекджеком и циклом))
(Offline)
 
Ответить с цитированием
Старый 21.04.2011, 23:44   #5
Reizel
Задрот
 
Аватар для Reizel
 
Регистрация: 24.07.2009
Адрес: Ивановская область, г. Кинешма
Сообщений: 1,574
Написано 407 полезных сообщений
(для 863 пользователей)
Ответ: Проблема с DrawImage

Та не, это ж очевидный бред
(Offline)
 
Ответить с цитированием
Старый 23.04.2011, 03:20   #6
Colossus
Разработчик
 
Аватар для Colossus
 
Регистрация: 12.10.2008
Адрес: Самара
Сообщений: 437
Написано 55 полезных сообщений
(для 92 пользователей)
Ответ: Проблема с DrawImage

подожди, а нахрена тебе 2 флипа то? конечно изображение будет дергаться, потому что мир "выворачивается" 2 раза)) если у тебя вызов функции идет между RenderWorld и Flip то в функции не нужно прописывать команду Flip еще раз

З.Ы, и зачем тебе в функции еще один цикл? когда RenderWorld и Flip уже находятся в цикле? ))

удачи
__________________
Пекарня: Intel Core i3 - 3240(3.40Ghz), ram 8 gb, video Gigabyte Nvidia GeForce GTX 650 1gb

Лэптоп : Intel Core i3 - 2365(1.40Ghz), ram 4gb, video Int Intel HD3000(512mb)

Мой набор: 3ds Max 9 + Xors3d(Blitz3d) + Photoshop
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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