Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
312 connectés actuellement
30732351 visiteurs depuis l'ouverture
2329 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
❤ 0 Normalement les animations s'affichent uniquement sur des évènements. Ce script permet d'afficher des animations n'importe où sans utiliser d'évènement. Il suffit d'indiquer les coordonnées X et Y et le tour est joué.
Si vous avez du mal avec les coordonnées, cliquez sur l'endroit où vous voulez faire l'animation.
Vous pouvez voir les coordonnées en bas à droite de votre écran.
Le reste est expliqué au début du script.
Le script est à mettre au dessus du main comme d'habitude.
</p>
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
| #=================================
# Animation Partout v1.1
# Script créé par Zeus81
#=================================
#
#
# Manuel d'utilisation :
#
# Faire insérer un script et écrire :
# $game_temp.animations.push([id, hit, x, y])
#
# id = Id de l'animation.
#
# hit = Animation Touché ou Manqué (Voir les réglages des animations).
# Pour Touché -> hit = true
# Pour Manqué -> hit = false
#
# x et y = Position ou sera affichée l'animation.
# On peux mettre des nombres décimaux pour plus de précision.
#
# Exemple d'utilisation :
# id = 1
# hit = true
# x = 14
# y = 7
# $game_temp.animations.push([id, hit, x, y])
#
# Note :
# Dans les animations seuls les "Flash" sur l'écran seront visible, pas ceux sur la cible.
# (Forcement vu qu'il n'y a pas de cible)
# La portée de l'animation ("Haut", "Milieu", "Bas") ne changera rien à sa position.
# Par contre si c'est "Ecran", ce sera comme si l'animation était faite sur n'importe quel évènement.
# Les animations s'affichent uniquement quand on est sur la map (c-à-d pas pendant les combats ou les menus).
class Game_Temp
attr_accessor :animations
alias zeus81_animation_partout_game_temp_initialize initialize
def initialize
zeus81_animation_partout_game_temp_initialize
@animations = []
end
end
class Spriteset_Map
alias zeus81_animation_partout_spriteset_map_initialize initialize
def initialize
@animations_sprites = []
zeus81_animation_partout_spriteset_map_initialize
end
alias zeus81_animation_partout_spriteset_map_dispose dispose
def dispose
@animations_sprites.each {|sprite| sprite.dispose}
zeus81_animation_partout_spriteset_map_dispose
end
alias zeus81_animation_partout_spriteset_map_update update
def update
$game_temp.animations.each {|data| @animations_sprites.push(Sprite_Animation.new(@viewport1, data))}
$game_temp.animations.clear
need_compact = false
for i in 0...@animations_sprites.size
@animations_sprites[i].update
if @animations_sprites[i].disposed?
@animations_sprites[i] = nil
need_compact = true
end
end
@animations_sprites.compact! if need_compact
zeus81_animation_partout_spriteset_map_update
end
end
class Sprite_Animation < RPG::Sprite
def initialize(viewport, data)
super(viewport)
animation($data_animations[data[0]], data[1])
@real_x = data[2] * 128
@real_y = data[3] * 128
end
def update
super
self.x = (@real_x - $game_map.display_x + 3) / 4 + 16
self.y = (@real_y - $game_map.display_y + 3) / 4
self.dispose if @_animation_duration == 0
end
end |
Mis à jour le 4/7/2020.
|
Erol -
posté le 14/08/2010 à 18:38:09 (1 messages postés)
| | Zeus81, t'es un dieu!
C'est pas précisé, mais on peut utiliser les variables pour les coordonnées et l'ID de l'animation, ce qui est hyper pratique!
Exemple:
1
| $game_temp.animations.push([$game_variables[1], true, $game_variables[50], 7]) |
affichera l'animation "\V[1]" aux cordonnées "\V[50]; 7" en mode "touché".
Par contre, utiliser un interrupteur pour remplacer le booléen ne semble pas marcher (ou alors j'utilise pas la bonne commande)
|
loly74 -
posté le 06/02/2012 à 21:55:54 (861 messages postés)
- | Ex Couteau Suisse Agréé | Merci, mais les animations passent sous les images chez moi, c'est assez embêtant...
|
Travaille actuellement sur Roadelicious | Mes Musiques! | Anciens projets : Sylvan Melody, Terkass |Le making, c'est réaliser le meilleur jeu du monde... à vos yeux."Les RTP c'est quand même très limité. Quand on réalise un jeu, on réalise un univers qui va avec, et cet univers il passe beaucoup par les graphismes, et l'identité qu'on leur donne." |
Zeus81 -
posté le 07/02/2012 à 03:26:20 (11071 messages postés)
| | Ah oui, pour la peine j'ai fait une nouvelle version avec une option pour mettre des coordonnées écran (avant c'était des coordonnées map) vu que c'est ce dont t'as besoin, non ?
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
| # Animation Partout v1.3 par Zeus81
#
# Faire insérer un script et écrire :
# $game_temp.animations << [id, hit, x, y, screen]
# id = Id de l'animation.
# hit = Animation Touché ou Manqué (Voir les réglages des animations).
# Pour Touché -> hit = true
# Pour Manqué -> hit = false
# x et y = Position ou sera affichée l'animation.
# On peux mettre des nombres décimaux pour plus de précision.
# screen = true pour considérer la position en pixels par rapport à l'écran.
# false pour la considérer en carreaux par rapport à la map.
# Exemple :
# $game_temp.animations << [1, true, 14, 7, false]
# Note :
# Dans les animations seuls les "Flash" sur l'écran seront visible,
# pas ceux sur la cible (forcement vu qu'il n'y en a pas).
# La portée de l'animation "Haut", "Milieu", "Bas" ne changera rien
# à sa position et si c'est "Ecran", ce sera comme si l'animation
# était faite sur n'importe quel évènement.
# Les animations s'affichent uniquement quand on est sur la map.
class Game_Temp
attr_accessor :animations
alias zeus81_animation_partout_game_temp_initialize initialize
def initialize
zeus81_animation_partout_game_temp_initialize
@animations = []
end
end
class Spriteset_Map
alias zeus81_animation_partout_spriteset_map_initialize initialize
def initialize
@animations_sprites = []
zeus81_animation_partout_spriteset_map_initialize
end
alias zeus81_animation_partout_spriteset_map_dispose dispose
def dispose
@animations_sprites.each {|sprite| sprite.dispose}
zeus81_animation_partout_spriteset_map_dispose
end
alias zeus81_animation_partout_spriteset_map_update update
def update
$game_temp.animations.each {|data| @animations_sprites << Sprite_Animation.new(@viewport3, *data)}
$game_temp.animations.clear
@animations_sprites.each {|sprite| sprite.update}
@animations_sprites.delete_if {|sprite| sprite.disposed?}
zeus81_animation_partout_spriteset_map_update
end
end
class Sprite_Animation
def initialize(viewport, animation, hit, x, y, screen=false)
return unless @animation = $data_animations[animation]
@viewport, @hit, @x, @y, @screen, @frame, @sprites, @bitmap =
viewport, hit, x, y, screen, -1, [],
RPG::Cache.animation(@animation.animation_name, @animation.animation_hue)
end
def dispose
@sprites.each {|sprite| sprite.dispose} if @sprites
@sprites = @animation = nil
end
def disposed?() !@animation end
def update
return unless @animation and Graphics.frame_count % 2 == 0
if (@frame += 1) < @animation.frame_max
if @animation.position == 3
x, y = @viewport.rect.width/2, @viewport.rect.height/2
elsif @screen
x, y = @x, @y
else
x, y = (@x*128-$game_map.display_x+3)/4+16, (@y*128-$game_map.display_y+3)/4
end
sprite_count, cell_data = -1, @animation.frames[@frame].cell_data
@sprites.each {|sprite| sprite.visible = false}
16.times do |i|
next unless pattern = cell_data[i, 0] and pattern != -1
@sprites << Sprite.new(@viewport) unless @sprites[sprite_count+=1]
sprite = @sprites[sprite_count]
sprite.bitmap = @bitmap
sprite.src_rect.set(pattern%5*192, pattern/5*192, 192, 192)
sprite.x = x + cell_data[i, 1]
sprite.y = y + cell_data[i, 2]
sprite.z = 2000
sprite.ox = sprite.oy = 96
sprite.zoom_x = sprite.zoom_y = cell_data[i, 3] / 100.0
sprite.angle = cell_data[i, 4]
sprite.mirror = (cell_data[i, 5] == 1)
sprite.opacity = cell_data[i, 6]
sprite.blend_type = cell_data[i, 7]
sprite.visible = true
end
for timing in @animation.timings
if timing.frame == @frame and (timing.condition == 0 or @hit == (timing.condition == 1))
$game_system.se_play(timing.se)
@viewport.flash(timing.flash_color, timing.flash_duration*2) if timing.flash_scope == 2
end
end
else dispose
end
end
end |
|
VRP024 -
posté le 22/02/2021 à 05:33:08 (24 messages postés)
| | Les mentions #Zeub81# dans le script encore.
Peu utile mais le progrès approche!
|
NanakyTim -
posté le 03/05/2021 à 11:58:58 (23817 messages postés)
| | Ça fait juste office de crédit, c'est complètement inutile, mais dans la mesure où c'est lui qui a codé et partagé ça sans demander rémunération,
tu peux faire comme toutes les personnes sensées et passer outre en le remerciant plutôt.
|
Héros ou Fléau ? Devenez le Roi de Quineroy ! ~ Plongez dans l'univers sombre du Darkans ! ~ Dimens Reis... Allez y faire un tour. ~ Rangez votre chambre ! ~ Avez-vous peur du noir ? ~ Sauvez le futur, en allant dans le passé: BOCALATOR... |
| Chanter l'hyperchleuasme | Les "zeus81_" disséminés un peu partout dans le script ne sont pas des marques de fatuité, ce sont des alias, ils permettent d'éviter les conflits avec d'autres scripts. C'est une bonne pratique en langage Ruby, car une des particularités de ce langage est qu'on peut annuler de l'ancien code en insérant du nouveau code.
|
Es-tu une star ? | Kujira no Hara | Muma|Rope | Polaris 03 | La 7e porte | |
|
|