William Samy -
posté le 07/11/2012 à 19:44:32 (488 messages postés)
| revenant des vivant. | Domaine concerné: cuisine
Logiciel utilisé: RMXP
Salut c'est moi !
Bon j'ai fait une super-anim-de-la-mort-qui-tue que j'ai enregistré en vidéo .avi, ayant pour idée de l'insérer dans mon projet, en me disant qu'après je trouverai bien un script adéquat sur internet, depuis le temps que RMXP existe.
JE ME SUIS BIEN FAIT BAIS*R.
J'ai trouvé 2 scripts différents, l'un marche à merveille, sauf si le jeu tourne en fullscreen. La vidéo se lit parfaitement quand j'ai ma fenêtre en 640*480 (pas de bug, aucun lag, pas de temps d'attente ni au début ni à la fin).
Mais quand je lance le jeu en plein écran, il en sort automatiquement pour lire la vidéo en mode fenêtre. Une fois que la vidéo est fini, il se remet en plein écran et continue. C'est pas très classe et ça met du temps à sortir et à rerentrer en plein écran. Ce qui au final gâche tout. Je cherche donc une solution pour pouvoir lire mon jeu en plein écran, y compris pour lire les vidéo occasionnelles que j'insère dans mon projet. Et j’aimerais que ça marche pour tout type d'écran évidemment (j'ai un 1920*1080).
- J'ai fouillé et bidouillé le script avec mes quelques connaissances en ruby mais rien à ma vue qui puisse maintenir le plein écran quand la vidéo se lance.
-j'ai tenté de faire alt + Entrée pour mettre le jeu en plein écran PENDANT la lecture de la vidéo. Ca marche plus ou moins car ya des flash noir tout le temps mais la vidéo se met bien en plein écran dans les dimmension du miens. Ce n'est donc pas un problème de résolution de la vidéo, puisque celle-ci peut s'afficher en s'adaptant aux dimensions de mon moniteur.
Bref j'ai fouillé de fond en comble je n'ai trouvé aucune clé au problème.
Donc je voulais savoir si quelqu'un connait bien ce problème et sait le résoudre,
ou si lire des vidéos dans RXMP restera à jamais un fantasme.
EDIT: Voici le script en question:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| class Scene_Movie
def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Graphics\\Movies\\"+movie+".avi"
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end
def bail
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') |
code d'appel: Scene_Movie.new(nomvidéo)
Voici l'autre script, mais il faut en plus indiquer combien de temps dure la vidéo quand on l'appelle.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| class Scene_Movie
def initialize(movie,length)
@movie_name = Dir.getwd()+"\Movies\"+movie+".avi"
@counter = length
end
def main
Graphics.transition
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,"LE_NOM_DE_VOTRE_PROJET").to_s
@movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
@movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@movie.call("play FILE",0,0,0)
loop do
Graphics.update
sleep(1)
Input.update
if Input.trigger?(Input::B)
break
end
@counter = @counter - 1
if @counter == 0
break
end
end
@movie.call("close FILE",0,0,0)
$scene = Scene_Map.new
Graphics.freeze
end
end
|
code d'appel: $scene = Scene_Movie.new(nomvidéo, durée en seconde)
Merci
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Crystal -
posté le 08/11/2012 à 00:58:25 (2113 messages postés)
| | Je pense que poster ledit script aiderait énormément pour un début.
|
Ixsuixwzone -
posté le 08/11/2012 à 08:52:00 (2453 messages postés)
| | Nannnnnn !!! La prophétie parlait d'un homme qui essayerai de faire lire a rm une vidéo en .avi... ON VA TOUS MOURIR !!!!
|
| Âmes Bannies - Demo 0.2 | |
William Samy -
posté le 08/11/2012 à 11:01:30 (488 messages postés)
| revenant des vivant. | Oh, oui pardon,
voilà le script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
| class Scene_Movie
def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Graphics\\Movies\\"+movie+".avi"
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end
def bail
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','') |
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Ixsuixwzone -
posté le 08/11/2012 à 11:07:01 (2453 messages postés)
| | Et le deuxième ?
|
| Âmes Bannies - Demo 0.2 | |
William Samy -
posté le 08/11/2012 à 11:59:06 (488 messages postés)
| revenant des vivant. | l'autre présente moins d'interêt car on doit également indiquer le temps de la vidéo.
Voilà je l'ai mis aussi
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Ixsuixwzone -
posté le 08/11/2012 à 12:08:38 (2453 messages postés)
| | Chose étrange le deuxième script marche chez moi en full screen... Pas pour toi ?
EDIT: A tiens, si la vidéo exede les 15 sec non... Y a effectivement des flash noir puis ca ferme.
Je vais essayer de voir ce qui cause ca
|
| Âmes Bannies - Demo 0.2 | |
William Samy -
posté le 08/11/2012 à 12:24:21 (488 messages postés)
| revenant des vivant. | non moi j'ai plusieurs problème avec le 2ème script:
-quand je lance le projet en mode fenêtre, quand la vidéo se lit il y a des flash noirs toute les seconde environ, c'est moche.
-quand je lance le jeu en fullscreen, lorsque la vidéo démarre ça sort automatiquement du fullscreen et la vidéo se lit dans ses dimension originales (je pense) en haut à gauche de l'écran. Une fois que la vidéo est terminé je reviens en fullscreen automatiquement
-quand je met en fullscreen PENDANT la vidéo, la vidéo continue en plein écran mais avec les même flash noirs toutes les secondes.
je comprend rien
|
Galfart.fr || « L'humanité souffre exactement autant aujourd'hui qu'elle a toujours souffert, elle l'a raffiné et s'illusionne sur son état... c'est la seule différence... » R.Steiner |
Ixsuixwzone -
posté le 08/11/2012 à 14:37:50 (2453 messages postés)
Une erreur est survenue, si le problème persiste merci de le signaler à un administateur.
|
|
|