| Bonjour à tous,
Je souhaite que ce message soit lu le plus possible, c'est la raison pour laquelle l'écriture est si grande.
J'ai repris RPG Maker depuis quelques jours en espérant que des améliorations avaient été apportées depuis ma dernière utilisation (au environ de la sortie de RPG Maker XP, je crois...)
Bref, quelle déception...
Alors j'ai effectué quelques recherches et notamment sur la 2D isométrique. J'ai essayé qqs scripts dont celui plus haut, mais pas vraiment convaincu : un temps de chargement plus long, un script lourd et complexe... Afin de résoudre cela, j'ai donc utilisé ma petite tête !
Pourquoi créer un script après tout ? Pourquoi ne pas modifier directement les scripts system ?
C'est ce que j'ai fait !
Premièrement dans Game_Player :
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
| #--------------------------------------------------------------------------
# * Processing of Movement via input from the Directional Buttons
#--------------------------------------------------------------------------
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
case Input.dir8
when 1
move_lower_left
when 2
move_down
when 3
move_lower_right
when 4
move_left
when 6
move_right
when 7
move_upper_left
when 8
move_up
when 9
move_upper_right
end
end |
Ceci ajoute 4 nouvelles directions donnant ainsi un effet 3D (2D iso, vous avez compris ^^)
Mais le problème, c'est que les mouvements en diagonale sont d'un angle de 45° (x+1 entraîne y+1)
Et bien il suffit de changer l'incrément dans Game_Character :
Vers la fin, vous trouverez tous les move_left, move_lower_left, move_upper_left...
Pour move_lower_right par exemple :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| #--------------------------------------------------------------------------
# * Move Lower Right
#--------------------------------------------------------------------------
def move_lower_right
unless @direction_fix
@direction = (@direction == 4 ? 6 : @direction == 8 ? 2 : @direction)
end
if (passable?(@x, @y+1) and passable?(@x+1, @y+1)) or
(passable?(@x+1, @y) and passable?(@x+1, @y+1))
@x += 1
@y += 1
increase_steps
@move_failed = false
else
@move_failed = true
end
end |
il suffit de remplacer
par :
1
2
| @x += 1
@y += 0,333333 |
par exemple.
Et voilà un perso qui bouge dans tous les sens !
Bon je vous l'accorde, les ressources proposées par défaut dans le RTP ne sont pas en iso.
J'ai donc cherché (beaucoup, beaucoup...) pour finalement trouver des RTP rippés de DOFUS, le MMORPG. Leur style ressemble au cel-shading et ont une géométrie de type isométrique.
Plus besoin par conséquent de script
PS : si vous souhaitez les liens, envoyer un message privé.
|