Bienvenue visiteur !
|
Statistiques
Liste des membres
Contact
Mentions légales
235 connectés actuellement
30731968 visiteurs depuis l'ouverture
1946 visiteurs aujourd'hui
Partenaires
Tous nos partenaires
Devenir partenaire
|
NanakyTim -
posté le 28/11/2015 à 00:11:23 (23817 messages postés)
| | Domaine concerné: Script Logiciel utilisé: RMXP Salut !
Ce problème est un peu similaire à l'ancien que j'avais où je voulais autoriser ou non de passer les messages...
J'utilise un script de transition à la zelda que voici:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
| #==============================================================================
# ** Classic Zelda Screen Transitions
#------------------------------------------------------------------------------
# * Created by: albertfish
# * Version: 1.0
# * Last edited: September 7, 2010
#------------------------------------------------------------------------------
# Version History:
# Version 1.0: September 7, 2010
# - Initial release
#------------------------------------------------------------------------------
# Description:
# This script mimics the screen transitions found in the 2D Zelda Games.
#------------------------------------------------------------------------------
# Features:
# - Separeated a large map in to small screen size parts and adds a smooth
# transition between the parts.
#------------------------------------------------------------------------------
# Install Instructions:
# Place this script above the main script and below the default scripts.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc.
# It's used within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias af_czst_ssm_init initialize
def initialize
@x = ($game_player.x - $game_player.x % 20) * 128
@y = ($game_player.y - $game_player.y % 15) * 128
@amount_x = 0
@amount_y = 0
@scrolling = false
@prev_x = $game_player.x
@prev_y = $game_player.y
$game_map.display_x = @x
$game_map.display_y = @y
af_czst_ssm_init
end
#--------------------------------------------------------------------------
# * Scroll Right
#--------------------------------------------------------------------------
def scroll_right
@x += 128
@amount_x -= 1
if @amount_x <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Left
#--------------------------------------------------------------------------
def scroll_left
@x -= 128
@amount_x += 1
if @amount_x >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Up
#--------------------------------------------------------------------------
def scroll_up
@y -= 96
@amount_y -= 1
if @amount_y <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Down
#--------------------------------------------------------------------------
def scroll_down
@y += 96
@amount_y += 1
if @amount_y >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
alias af_czst_ssm_update update
def update
if !@scrolling
# Determine if the screen needs to scroll left or right
if $game_player.x % 20 == 0 && ($game_player.x - 19) * 128 > $game_map.display_x
@amount_x = 20
@scrolling = true
@prev_x += 1
elsif $game_player.x % 20 == 19 && ($game_player.x) * 128 < $game_map.display_x
@amount_x = -20
@scrolling = true
@prev_x -= 1
end
# Determine if the screen needs to scroll up or down
if $game_player.y % 15 == 0 && ($game_player.y - 14) * 128 > $game_map.display_y
@amount_y = -20
@scrolling = true
@prev_y += 1
elsif $game_player.y % 15 == 14 && ($game_player.y) * 128 < $game_map.display_y
@amount_y = 20
@scrolling = true
@prev_y -= 1
end
else @scrolling
# Scroll either left or right
if @amount_x > 0
scroll_right
elsif @amount_x < 0
scroll_left
end
# Scroll either up or down
if @amount_y < 0
scroll_down
elsif @amount_y > 0
scroll_up
end
$game_player.x = @prev_x
$game_player.y = @prev_y
end
$game_map.display_x = @x
$game_map.display_y = @y
@prev_x = $game_player.x
@prev_y = $game_player.y
af_czst_ssm_update
end
end
class Game_Character
def x=(x)
@x = x
end
def y=(y)
@y = y
end
end |
J'aimerais pouvoir désactiver ce script quand je veux (par exemple à l'aide d'une commande script ou d'un interrupteur associé), afin de pouvoir avoir le scrolling de base de RM sur certaines maps.
En événementiel ça ressemblerait à quelque chose du genre "condition, si l'interrupteur X est sur on, alors tout le script est bon, sinon end" mais je sais pas si c'est possible
J'ai essayé de faire ça par moi-même en changeant tous les false en true et inversement pour voir si ça désactivait le script, mais ça empêche juste l'écran de suivre le héros quand il sort de ce dernier (mais il reste figé, et ne revient donc pas à la normale).
Donc voilà, si quelqu'un a une solution je lui filerai un bocal en cadeau.
|
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... |
arttroy -
posté le 28/11/2015 à 15:11:19 (2394 messages postés)
| Just working | Ben tu peux certainement gérer ça en englobant ton update ligne 90 dans une condition genre :
1
2
3
4
5
| def update
if $game_switches[xx] == true
ce que contient ton update
end
end |
Techniquement si l'interrupteur xx est désactivé ça devrait empêcher le script de fonctionner.
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
NanakyTim -
posté le 28/11/2015 à 15:44:30 (23817 messages postés)
| | Je viens d'essayer, l'écran reste entièrement figé (visuellement) tant que l'interrupteur n'est pas activé. Et en plus quand une transition s'effectue, ça génère un bug du script.
|
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... |
arttroy -
posté le 28/11/2015 à 16:51:08 (2394 messages postés)
| Just working | ok ok bon du coup faut faire la même manip mais ailleurs je regarde...
Edit : Essaies en englobant seulement la condition if !@scrolling (ligne 92 à 128 incluses)
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
arttroy -
posté le 29/11/2015 à 02:37:40 (2394 messages postés)
| Just working | Ben désolé mais je vois pas...
|
Anti-inconstructivité / Pétition pour que le mot making soit inscrit dans le dictionnaire ? |
| Narrer l'autocatégorème | Tu ferais mieux de chercher un script pour faire des maps qui ne finissent pas au fond du classement des screens de la semaine.
(bon d'accord je fais mon bâtard là xD en plus elles sont tout à fait honnêtes tes maps)
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
NanakyTim -
posté le 29/11/2015 à 23:53:50 (23817 messages postés)
| | xD
Plus sérieusement je need de l'aide pour ce problème de script (bon ça va c'est pas urgent non plus, mais je préfère avoir l'esprit tranquille dès maintenant)
BONJOUR À TOUS !
Après plus d'un an j'ai toujours pas réussi à résoudre ce "problème" qui m'empêcherait de continuer mon jeu comme je le souhaite (d'autant que j'approche à grand pas de la zone qui nécessite un scrolling différent). Je sollicite l'aide de tous les meilleurs scripteurs d'Oniromancie danke pleaze.
P.-S. freazyx vous suce si vous trouvez la solution.
|
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... |
| Narrer l'autocatégorème | (désolé pour le HS mais : je suis plié de rire après avoir lu la phrase en petit x'D)
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
freazyx -
posté le 01/02/2017 à 00:33:36 (1341 messages postés)
| boss | Oui l'enfoiray en a profité ! Je lui ai dit, "dis que tu suces, ça marche", il a fait ça... ENFOIRAY.
|
mon projet : ici | twitter | Une dictature, mais une dictature juste... Votez Bocaux Haram ! |
kanatos -
posté le 02/02/2017 à 08:43:06 (293 messages postés)
| cute rabbit | Hello NanakyTim,
Je ne sais pas si c'est ça que tu voulais, en gros tu peux changer d'activer/désactiver ton script à l'aide d'un interrupteur.
Dis moi si ça marche sur ton projet.
remplace ton script original par celui_ci:
code source :
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
#switch off scroll_zelda by kanatos
#pour les utilisateurs :
#L'interrupteur pour activer/désactiver le script est l'interrupteur "1"
#si vous voulez changer l'interrupteur qui active/desactive, changez la valeur #de $game_switches[1]
#à la ligne 42 par la valeur que vous voulez.
#==============================================================================
# ** Classic Zelda Screen Transitions
#------------------------------------------------------------------------------
# * Created by: albertfish
# * Version: 1.0
# * Last edited: September 7, 2010
#------------------------------------------------------------------------------
# Version History:
# Version 1.0: September 7, 2010
# - Initial release
#------------------------------------------------------------------------------
# Description:
# This script mimics the screen transitions found in the 2D Zelda Games.
#------------------------------------------------------------------------------
# Features:
# - Separeated a large map in to small screen size parts and adds a smooth
# transition between the parts.
#------------------------------------------------------------------------------
# Install Instructions:
# Place this script above the main script and below the default scripts.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc.
# It's used within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias af_czst_ssm_init initialize
def initialize
@stop_zelda_scroll=$game_switches[1]
@x = ($game_player.x - $game_player.x % 20) * 128
@y = ($game_player.y - $game_player.y % 15) * 128
@amount_x = 0
@amount_y = 0
@scrolling = false
@prev_x = $game_player.x
@prev_y = $game_player.y
$game_map.display_x = @x
$game_map.display_y = @y
af_czst_ssm_init
end
#--------------------------------------------------------------------------
# * Scroll Right
#--------------------------------------------------------------------------
def scroll_right
@x += 128
@amount_x -= 1
if @amount_x <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Left
#--------------------------------------------------------------------------
def scroll_left
@x -= 128
@amount_x += 1
if @amount_x >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Up
#--------------------------------------------------------------------------
def scroll_up
@y -= 96
@amount_y -= 1
if @amount_y <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Down
#--------------------------------------------------------------------------
def scroll_down
@y += 96
@amount_y += 1
if @amount_y >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
alias af_czst_ssm_update update
def update
if !@scrolling
# Determine if the screen needs to scroll left or right
if $game_player.x % 20 == 0 && ($game_player.x - 19) * 128 > $game_map.display_x
@amount_x = 20
@scrolling = true
@prev_x += 1
elsif $game_player.x % 20 == 19 && ($game_player.x) * 128 < $game_map.display_x
@amount_x = -20
@scrolling = true
@prev_x -= 1
end
# Determine if the screen needs to scroll up or down
if $game_player.y % 15 == 0 && ($game_player.y - 14) * 128 > $game_map.display_y
@amount_y = -20
@scrolling = true
@prev_y += 1
elsif $game_player.y % 15 == 14 && ($game_player.y) * 128 < $game_map.display_y
@amount_y = 20
@scrolling = true
@prev_y -= 1
end
else @scrolling
# Scroll either left or right
if @amount_x > 0
scroll_right
elsif @amount_x < 0
scroll_left
end
# Scroll either up or down
if @amount_y < 0
scroll_down
elsif @amount_y > 0
scroll_up
end
$game_player.x = @prev_x
$game_player.y = @prev_y
end
if (!@stop_zelda_scroll)
$game_map.display_x = @x
$game_map.display_y = @y
@prev_x = $game_player.x
@prev_y = $game_player.y
end
af_czst_ssm_update
end
end
class Game_Character
def x=(x)
if (!@stop_zelda_scroll)
@x = x
end
end
def y=(y)
if(!@stop_zelda_scroll)
@y = y
end
end
end
|
L'interrupteur évènementiel qui active/désactive le script est à la ligne 42.Si tu veux pas que ça soit l'interrupteur 1, change la valeur 1 par celle que tu veux ^^
1
| @stop_zelda_scroll=$game_switches[1] |
J'ai essayé, ça marchait plutôt bien mais je pense on peut avoir un code plus optimal.
J'ai placé une variable boolean pour activer/désactiver l'avance de la map à la ligne 137 et l'avance du personnage à la ligne 149 pour les curieux .
|
NanakyTim -
posté le 02/02/2017 à 10:04:00 (23817 messages postés)
| | Je l'ai essayé et...
Chez moi ça marche pas
J'ai essayé sur deux maps de taille différentes avec deux interrupteurs différents (en changeant bien la ligne 42).
Edit:
En fait ça marche si on active/désactive l'interrupteur "manuellement", en passant par le menu F9. Mais bizarrement si on le fait via un event qui active ou non l'interrupteur, le problème persiste.
Redit:
C'est corrigé ! J'ai viré la ligne 42 qui définissait un truc en rapport à l'interrupteur, pour y mettre l'interrupteur lui-même aux lignes tout en bas. Je sais pas trop pourquoi mais ça fonctionne comme ça, du coup tant mieux.
Pour ceux qui veulent, voilà le code:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
| #switch off scroll_zelda by kanatos
#pour les utilisateurs :
#L'interrupteur pour activer/désactiver le script est l'interrupteur "70"
#si vous voulez changer l'interrupteur qui active/desactive, changez la valeur #de $game_switches[70]
#aux lignes 138, 146 et 153 par la valeur que vous voulez.
#==============================================================================
# ** Classic Zelda Screen Transitions
#------------------------------------------------------------------------------
# * Created by: albertfish
# * Version: 1.0
# * Last edited: September 7, 2010
#------------------------------------------------------------------------------
# Version History:
# Version 1.0: September 7, 2010
# - Initial release
#------------------------------------------------------------------------------
# Description:
# This script mimics the screen transitions found in the 2D Zelda Games.
#------------------------------------------------------------------------------
# Features:
# - Separeated a large map in to small screen size parts and adds a smooth
# transition between the parts.
#------------------------------------------------------------------------------
# Install Instructions:
# Place this script above the main script and below the default scripts.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc.
# It's used within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias af_czst_ssm_init initialize
def initialize
@x = ($game_player.x - $game_player.x % 20) * 128
@y = ($game_player.y - $game_player.y % 15) * 128
@amount_x = 0
@amount_y = 0
@scrolling = false
@prev_x = $game_player.x
@prev_y = $game_player.y
$game_map.display_x = @x
$game_map.display_y = @y
af_czst_ssm_init
end
#--------------------------------------------------------------------------
# * Scroll Right
#--------------------------------------------------------------------------
def scroll_right
@x += 128
@amount_x -= 1
if @amount_x <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Left
#--------------------------------------------------------------------------
def scroll_left
@x -= 128
@amount_x += 1
if @amount_x >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Up
#--------------------------------------------------------------------------
def scroll_up
@y -= 96
@amount_y -= 1
if @amount_y <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Down
#--------------------------------------------------------------------------
def scroll_down
@y += 96
@amount_y += 1
if @amount_y >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
alias af_czst_ssm_update update
def update
if !@scrolling
# Determine if the screen needs to scroll left or right
if $game_player.x % 20 == 0 && ($game_player.x - 19) * 128 > $game_map.display_x
@amount_x = 20
@scrolling = true
@prev_x += 1
elsif $game_player.x % 20 == 19 && ($game_player.x) * 128 < $game_map.display_x
@amount_x = -20
@scrolling = true
@prev_x -= 1
end
# Determine if the screen needs to scroll up or down
if $game_player.y % 15 == 0 && ($game_player.y - 14) * 128 > $game_map.display_y
@amount_y = -20
@scrolling = true
@prev_y += 1
elsif $game_player.y % 15 == 14 && ($game_player.y) * 128 < $game_map.display_y
@amount_y = 20
@scrolling = true
@prev_y -= 1
end
else @scrolling
# Scroll either left or right
if @amount_x > 0
scroll_right
elsif @amount_x < 0
scroll_left
end
# Scroll either up or down
if @amount_y < 0
scroll_down
elsif @amount_y > 0
scroll_up
end
$game_player.x = @prev_x
$game_player.y = @prev_y
end
if (!$game_switches[70])
$game_map.display_x = @x
$game_map.display_y = @y
@prev_x = $game_player.x
@prev_y = $game_player.y
end
af_czst_ssm_update
end
end
class Game_Character
def x=(x)
if (!$game_switches[70])
@x = x
end
end
def y=(y)
if (!$game_switches[70])
@y = y
end
end
end
|
J'ai mis l'interrupteur 70 mais vous pouvez bien évidemment le changer.
En tout cas mille fois merci Kanatos, ça me sera super utile.
|
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... |
kanatos -
posté le 02/02/2017 à 15:11:22 (293 messages postés)
| cute rabbit | Genial si ça marche
|
freazyx -
posté le 04/02/2017 à 00:15:01 (1341 messages postés)
| boss | Nemau est d'accord pour prendre ma place, une petite preview de ce qu'il fait.....
|
mon projet : ici | twitter | Une dictature, mais une dictature juste... Votez Bocaux Haram ! |
| Narrer l'autocatégorème | T'as fini d'utiliser mes gifs ou de les détourner ?! xD
|
Quel RPG Maker choisir ? • Ocarina of Time PC • Polaris 03 |
freazyx -
posté le 04/02/2017 à 01:25:35 (1341 messages postés)
| boss | Il est vieuxeuh celui là ! J'avais galéré en plus.
|
mon projet : ici | twitter | Une dictature, mais une dictature juste... Votez Bocaux Haram ! |
NanakyTim -
posté le 25/02/2017 à 13:39:46 (23817 messages postés)
| | Désolé de vous embêter encore une fois, mais là je sèche complètement
Script entier:
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
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
| #switch off scroll_zelda by kanatos
#pour les utilisateurs :
#L'interrupteur pour activer/désactiver le script est l'interrupteur "1"
#si vous voulez changer l'interrupteur qui active/desactive, changez la valeur #de $game_switches[1]
#à la ligne 42 par la valeur que vous voulez.
#==============================================================================
# ** Classic Zelda Screen Transitions
#------------------------------------------------------------------------------
# * Created by: albertfish
# * Version: 1.0
# * Last edited: September 7, 2010
#------------------------------------------------------------------------------
# Version History:
# Version 1.0: September 7, 2010
# - Initial release
#------------------------------------------------------------------------------
# Description:
# This script mimics the screen transitions found in the 2D Zelda Games.
#------------------------------------------------------------------------------
# Features:
# - Separeated a large map in to small screen size parts and adds a smooth
# transition between the parts.
#------------------------------------------------------------------------------
# Install Instructions:
# Place this script above the main script and below the default scripts.
#==============================================================================
#==============================================================================
# ** Spriteset_Map
#------------------------------------------------------------------------------
# This class brings together map screen sprites, tilemaps, etc.
# It's used within the Scene_Map class.
#==============================================================================
class Spriteset_Map
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias af_czst_ssm_init initialize
def initialize
@x = ($game_player.x - $game_player.x % 20) * 128
@y = ($game_player.y - $game_player.y % 15) * 128
@amount_x = 0
@amount_y = 0
@scrolling = false
@prev_x = $game_player.x
@prev_y = $game_player.y
$game_map.display_x = @x
$game_map.display_y = @y
af_czst_ssm_init
end
#--------------------------------------------------------------------------
# * Scroll Right
#--------------------------------------------------------------------------
def scroll_right
@x += 128
@amount_x -= 1
if @amount_x <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Left
#--------------------------------------------------------------------------
def scroll_left
@x -= 128
@amount_x += 1
if @amount_x >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Up
#--------------------------------------------------------------------------
def scroll_up
@y -= 96
@amount_y -= 1
if @amount_y <= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Scroll Down
#--------------------------------------------------------------------------
def scroll_down
@y += 96
@amount_y += 1
if @amount_y >= 0
@scrolling = false
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
alias af_czst_ssm_update update
def update
if !@scrolling
# Determine if the screen needs to scroll left or right
if $game_player.x % 20 == 0 && ($game_player.x - 19) * 128 > $game_map.display_x
@amount_x = 20
@scrolling = true
@prev_x += 1
elsif $game_player.x % 20 == 19 && ($game_player.x) * 128 < $game_map.display_x
@amount_x = -20
@scrolling = true
@prev_x -= 1
end
# Determine if the screen needs to scroll up or down
if $game_player.y % 15 == 0 && ($game_player.y - 14) * 128 > $game_map.display_y
@amount_y = -20
@scrolling = true
@prev_y += 1
elsif $game_player.y % 15 == 14 && ($game_player.y) * 128 < $game_map.display_y
@amount_y = 20
@scrolling = true
@prev_y -= 1
end
else @scrolling
# Scroll either left or right
if @amount_x > 0
scroll_right
elsif @amount_x < 0
scroll_left
end
# Scroll either up or down
if @amount_y < 0
scroll_down
elsif @amount_y > 0
scroll_up
end
$game_player.x = @prev_x
$game_player.y = @prev_y
end
if (!$game_switches[70])
$game_map.display_x = @x
@prev_x = $game_player.x
end
if (!$game_switches[63])
$game_map.display_y = @y
@prev_y = $game_player.y
end
af_czst_ssm_update
end
end
class Game_Character
def x=(x)
if (!$game_switches[70])
@x = x
end
end
def y=(y)
if (!$game_switches[63])
@y = y
end
end
end
|
Portion importante:
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
| $game_player.x = @prev_x
$game_player.y = @prev_y
end
if (!$game_switches[70])
$game_map.display_x = @x
@prev_x = $game_player.x
end
if (!$game_switches[63])
$game_map.display_y = @y
@prev_y = $game_player.y
end
af_czst_ssm_update
end
end
class Game_Character
def x=(x)
if (!$game_switches[70])
@x = x
end
end
def y=(y)
if (!$game_switches[63])
@y = y
end
end
end
|
En fait, j'ai divisé le code de Kanatos en deux interrupteurs, pour gérer les axes X et Y de du scrolling et faire un truc très sympa:
En rouge: les limites des mouvements de scrolling.
En rose: les limites par rapport à la détection en event des pos X et Y du héros.
Sauf qu'en pratique ça me fait n'importe quoi dès que je franchis certaines lignes roses (donc interrupteur 63 "TRANSITION Y"). Et ça n'a rien à voir avec le fait que le personnage court, j'ai essayé en marchant et le résultat est le même
J'ai tout essayé en event, activer les deux interrupteurs puis désactiver X juste après, ce genre de magouilles, rien n'y fait.
Si quelqu'un a une suggestion, un début de piste, je suis preneur.
|
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... | Index du forum > Entraide > [RESOLU] [RMXP] Transition Zelda / Caméra loufoque
|
|
|