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

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

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

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

Ответ
 
Опции темы
Старый 19.11.2006, 23:36   #1
Самурай
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений
(для 0 пользователей)
Вопрос Загрузка видео

Можно ли в блитце видео проигрывать? А то, хотел заставки загрузить... но не знаю как, формат *.avi
(Offline)
 
Ответить с цитированием
Старый 19.11.2006, 23:46   #2
Platon
Знающий
 
Регистрация: 04.08.2006
Адрес: Россия
Сообщений: 297
Написано 39 полезных сообщений
(для 70 пользователей)
Re: Загрузка видео

можно, используй функции из раздела 2D справки DirectShow
OpenMovie
CloseMovie
DrawMovie
MovieWidth
MovieHeight
MoviePlaying
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 00:18   #3
Самурай
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Загрузка видео

Спасибо, но он пишет:
Memory access violation
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 01:33   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Загрузка видео

Debug-ер включен?
приводи код, а то х/з из за чего так.
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 01:41   #5
Самурай
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Загрузка видео

Включен, ему не нравиться, то DrawMovie, то MoviePlaying..
код:

Graphics3D 640,480,32,1
SetBuffer BackBuffer()

OpenMovie s=("33.avi")
DrawMovie s


camera=CreateCamera()


light=CreateLight()
RotateEntity light,90,0,0

;грузим пушку
drum=LoadMesh("gun.3ds")

PositionEntity drum,20,-60,100
RotateEntity drum,0,180,0

While Not KeyDown( 1 )
RenderWorld
Updateworld
Flip
Wend

End
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 02:20   #6
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Загрузка видео

MoviePlaying не нашел в твоем коде, выдели жирным

ето, я так понял интродукционный фильм. то есть сначала фильм - потом игра.
делаем так:

s=OpenMovie("33.avi")
; пока проигрывается фильм или никто не нажимает пробел играем фильм
while MoviePlaying(s) or keydown(57)=0
DrawMovie s
flip
wend
дальше идет код игры

p.s. не нашел FreeMovie, если найдеш допиши после Wend/
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 16:11   #7
Самурай
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Загрузка видео

Я его сменил на DrawMovie , тока видео все равно не играется, просто черный экран и все....
(Offline)
 
Ответить с цитированием
Старый 20.11.2006, 19:11   #8
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: Загрузка видео

OpenMovie
CloseMovie
DrawMovie
MovieWidth
MovieHeight
MoviePlaying
Вставь любую из каманд в блиц, выдели её, и два раза нажди F1. В хэлпе прикольно(тупой) пример.
(Offline)
 
Ответить с цитированием
Старый 21.11.2006, 00:02   #9
Самурай
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений
(для 0 пользователей)
Re: Загрузка видео

У мя нету их в хелпе, поэтому я и создал такую тему ты не мог бы копернуть примерчик сюда?
(Offline)
 
Ответить с цитированием
Старый 21.11.2006, 02:51   #10
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Загрузка видео

Вот стандартный пример
; Movie Commands Example
; ======================
; This demonstrates the following commands:
;
; OpenMovie
; MovieHeight
; MovieWidth
; MoviePlaying
; DrawMovie

; Some constants to start with
Const WIDTH = 640
Const HEIGHT = 480

; First of all, set up the graphics
Graphics WIDTH, HEIGHT
SetBuffer BackBuffer()
ClsColor 0,0,0
Color 0,255,0

; Next, open the movie file. Feel free to change this to an AVI or MPEG file.
movie=OpenMovie("media/hat.gif")

; check to see if it loaded okay
If movie=0 Then RuntimeError "Error - Movie not loaded!"
If Not(MoviePlaying(movie)) Then RuntimeError "Error - Movie not playing!"

;Now determine the size of the movie
w=MovieWidth(movie) ; the width of the movie
h=MovieHeight(movie) ; the height of the movie

; Now set up the starting position and timing variables
x=(WIDTH-w)/2 ; the x position of the movie on screen
y=(HEIGHT-h-100)/2 ; the y position of the movie on screen
period=100 ; the interval between frames
time=MilliSecs() ; the time of the last frame update

; And here's the main loop
Repeat

; Wait for the specified period

; GIFs have no timing info, and as such will redraw the next frame on each call to DrawMovie.
; AVIs and MPEGs do have timing info, and as such will redraw the most recent frame on each call to DrawMovie.
; Ergo, this time limiter only has an impact, and is only required for GIFs.
Repeat
; do nothing
Until MilliSecs()-time>=period
time=MilliSecs() ; save the current time for the next frame

; Handle keyboard inputs

; CONTROL adjusts the speed with which we do stuff 
If KeyDown(29) Or KeyDown(157) Then
change=5
Else
change=1
End If

; SHIFT means we're dealing with the size
If KeyDown(42) Or KeyDown(54) Then
If KeyDown(203) And w>change-1 Then w=w-change
If KeyDown(205) And x+w+change
If KeyDown(200) And h>change-1 Then h=h-change
If KeyDown(208) And y+h+change
Else
; otherwise it's the position that we're changing
If KeyDown(203) And x>change-1 Then x=x-change
If KeyDown(205) And x+w+change
If KeyDown(200) And y>change-1 Then y=y-change
If KeyDown(208) And y+h+change
EndIf

; +/- to change the animation speed
If ( KeyDown(13) Or KeyDown(78) ) And period>change Then period=period-change
If ( KeyDown(12) Or KeyDown(74) ) And period
<500 Then period=period+change>
; Redraw the screen, by...

Cls ; clear the screen
DrawMovie movie,x,y,w,h ; draw the movie
; draw the instructions
Text 0,0,"Use the arrow keys to reposition the movie." 
Text 0,20,"Hold SHIFT with the arrow keys to resize." 
Text 0,40,"Use + or - or control the animation speed."
Text 0,60,"Hold CONTROL to resize, move, or change speed faster." 
Text 0,80,"Press ESCAPE to exit."
Text 0,100,"Current Command Syntax: DrawMovie(movie, " + x + ","+ y + "," + w + "," + h + ")"
; Flip the buffers
Flip 

Until KeyHit(1) ; Escape to exit

; Remove the movie from memory before closing down
CloseMovie(movie)

End ; bye!
вот ето работает (проверенно):

Graphics 800,600,32,1
SetBuffer BackBuffer()
s=OpenMovie("it's war.mpg")

While MoviePlaying(s) And KeyDown(57)=0
DrawMovie s,0,0,800,600
Text 10,10,MoviePlaying(s)
Wend
CloseMovie s

Graphics3D 800,600,32,1
;далее идет сама игра
End
(Offline)
 
Ответить с цитированием
Старый 21.11.2006, 03:12   #11
BoB
Мастер
 
Регистрация: 23.03.2006
Сообщений: 909
Написано 180 полезных сообщений
(для 353 пользователей)
Re: Загрузка видео

Сообщение от HolyDel
вот ето работает (проверенно):
И у меня даже работает. Только почему-то видео не показывает(черный экран) и только звук слышно.
(Offline)
 
Ответить с цитированием
Старый 21.11.2006, 08:58   #12
jimon
 
Сообщений: n/a
Re: Загрузка видео

кодеки поставьте
 
Ответить с цитированием
Старый 21.11.2006, 18:34   #13
Самурай
Оператор ЭВМ
 
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений
(для 0 пользователей)
Смущение Re: Загрузка видео

BoB, прав, видео нету, но еси написать так:

s=OpenMovie("33.avi")
; пока проигрывается фильм или никто не нажимает пробел играем фильм
While MoviePlaying(s) Or KeyDown(57)=0
DrawMovie s,0,0,640,480
Text 10,10,MoviePlaying(s)
Flip
Wend

то все работает и видео и звук

ток одна проблема:

Graphics3D 640,480,32,1
SetBuffer BackBuffer()

s=OpenMovie("33.avi")
;заставка
Repeat
DrawMovie s,0,0,640,480
MoviePlaying(s)
Flip
Until MoviePlaying(s)<>1 Or KeyDown(57)<>0
CloseMovie(s)

While Not KeyDown(1)

camera=CreateCamera()



light=CreateLight()
RotateEntity light,90,0,0

;пушка
drum=LoadMesh("gun.3ds")

PositionEntity drum,20,-60,100
RotateEntity drum,0,180,0


RenderWorld
UpdateWorld
Flip
Wend
End

После выключения заставки Escape срабатывает тока с 3 раза, т.е программа не выключается пока несколько раз не нажмешь Еscape, кто знает как это дело исправить?
(Offline)
 
Ответить с цитированием
Старый 22.11.2006, 01:12   #14
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Загрузка видео

А почему камера, свет создаются в цикле? да и меш тоже грузится.
ето все надо вынести за цикл (точнее перед цикл).

camera=CreateCamera()



light=CreateLight()
RotateEntity light,90,0,0

;пушка
drum=LoadMesh("gun.3ds")

PositionEntity drum,20,-60,100
RotateEntity drum,0,180,0

While Not KeyDown(1)
RenderWorld
UpdateWorld
Flip
Wend
End

так что-ли.
(Offline)
 
Ответить с цитированием
Старый 22.11.2006, 17:53   #15
ZanoZa
Элита
 
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений
(для 252 пользователей)
Re: Загрузка видео

Оооооо....в цикл это жестоко
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ищу видео impersonalis Болтовня 6 22.11.2009 20:27
Видео DarkMedveD 3D-программирование 11 28.12.2008 14:39
Видео уроки по 3DS Max sSwSs 3D Моделирование 6 20.12.2007 15:54
Видео + 3Д модель Raiter Болтовня 5 15.03.2007 01:26
Видео в МАХ'се Lexa 3D Моделирование 6 04.11.2005 10:00


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


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