|
3D-программирование Вопросы, касающиеся программирования 3D мира |
19.11.2006, 23:36
|
#1
|
Оператор ЭВМ
Регистрация: 23.10.2006
Сообщений: 36
Написано 0 полезных сообщений (для 0 пользователей)
|
Загрузка видео
Можно ли в блитце видео проигрывать? А то, хотел заставки загрузить... но не знаю как, формат *.avi
|
(Offline)
|
|
19.11.2006, 23:46
|
#2
|
Знающий
Регистрация: 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
|
☭
Регистрация: 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
|
☭
Регистрация: 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
|
☭
Регистрация: 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
|
Мастер
Регистрация: 23.03.2006
Сообщений: 909
Написано 180 полезных сообщений (для 353 пользователей)
|
Re: Загрузка видео
Сообщение от HolyDel
вот ето работает (проверенно):
|
И у меня даже работает. Только почему-то видео не показывает(черный экран) и только звук слышно.
|
(Offline)
|
|
21.11.2006, 08:58
|
#12
|
|
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
|
☭
Регистрация: 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
|
Элита
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений (для 252 пользователей)
|
Re: Загрузка видео
Оооооо....в цикл это жестоко
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
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.
|