knighty Chevalier (niveau 5)
Messages postés : 133 Date d'inscription : 30/01/2013 Jauge LPC :
| Sujet: [VX] Défilement de l'écran amélioré Dim 24 Mar 2013 - 18:51 | |
| Hello Je partage ici un petit script assez sympathique que j'utilise pour mon projet . LOGICIEL : RPG MAKER VX AUTEUR : Inconnu (C'est un script japonnais, donc si quelqu'un a entendu parler de l'auteur, je lui serai reconnaissant de se manifester. Je ne retrouve plus l'adresse du site sur lequel on le trouvait) FONCTIONNEMENT : Ce script permet de modifier légèrement le déplacement de l'écran. En effet, au lieu de s'arrêter brutalement lorsqu'il se déplace, il ralentit et s'arrête de façon beaucoup plus fluide. ça n'a l'air de rien, mais l'effet est très joli. Ce script ne nécessite aucune ressources, ni aucune notion en programmation. Il est extrêmement simple à mettre en place. INSTALLATION : Copiez simplement le script au dessus de "Main". C'est tout. Vous pouvez également modifier la vitesse de défilement aux lignes 17-18, mais trop l'augmenter fait planter le projet. CODE : - Code:
-
#============================================================================== # # ・スクロールを遅延させて滑らかにします。 # [仕様]マップループが有効の場合、遅延スクロールは無効になります。 # #------------------------------------------------------------------------------ # # 更新履歴 # ◇0.9p→1.0 # スクロールが微妙にずれる不具合を修正 # #============================================================================== # ■ Game_Map #============================================================================== class Game_Map # スクロールスピード 大きいほど遅くなります SPEED_X = 20 SPEED_Y = 16 # 解像度 W = 横マス H = 縦マス DISPLAY_W = 17 DISPLAY_H = 13 #-------------------------------------------------------------------------- # ★ スクロール計算 #-------------------------------------------------------------------------- def display_move(n, m, speed) a = (n * (speed - 1) + m) / speed a -= 1 if n > m ; a += 1 if n < m return a end #-------------------------------------------------------------------------- # ★ エイリアス #-------------------------------------------------------------------------- alias initialize_str00 initialize def initialize initialize_str00 @display_sx = 0 @display_sy = 0 @parallax_ssx = 0 @parallax_ssy = 0 end alias setup_str00 setup def setup(map_id) setup_str00(map_id) @display_sx = 0 @display_sy = 0 @parallax_ssx = 0 @parallax_ssy = 0 end alias update_scroll_str00 update_scroll def update_scroll @display_x = display_move(@display_x, @display_sx, SPEED_X) @display_y = display_move(@display_y, @display_sy, SPEED_Y) r = (@parallax_loop_x) @parallax_x = display_move(@parallax_x, @parallax_ssx, SPEED_X) unless r r = (@parallax_loop_y) @parallax_y = display_move(@parallax_y, @parallax_ssy, SPEED_Y) unless r update_scroll_str00 end #-------------------------------------------------------------------------- # ★ 再定義 #-------------------------------------------------------------------------- def set_display_pos(x, y) @display_sx = (x + @map.width * 256) % (@map.width * 256) @display_sy = (y + @map.height * 256) % (@map.height * 256) @display_x = @display_sx @display_y = @display_sy @parallax_ssx = x @parallax_ssy = y @parallax_x = x @parallax_y = y end def scroll_down(distance) if loop_vertical? @display_sy += distance @display_sy %= @map.height * 256 @parallax_ssy += distance @display_y = @display_sy else last_y = @display_sy @display_sy = [@display_sy + distance, (height - DISPLAY_H) * 256].min @display_y = display_move(@display_y, @display_sy, SPEED_Y) unless @parallax_loop_y @parallax_ssy += @display_sy - last_y @parallax_y = display_move(@parallax_y, @parallax_ssy, SPEED_Y) end end end def scroll_left(distance) if loop_horizontal? @display_sx += @map.width * 256 - distance @display_sx %= @map.width * 256 @parallax_ssx -= distance @display_x = @display_sx else last_x = @display_sx @display_sx = [@display_sx - distance, 0].max @display_x = display_move(@display_x, @display_sx, SPEED_X) unless @parallax_loop_x @parallax_ssx += @display_sx - last_x @parallax_x = display_move(@parallax_x, @parallax_ssx, SPEED_X) end end end def scroll_right(distance) if loop_horizontal? @display_sx += distance @display_sx %= @map.width * 256 @parallax_ssx += distance @display_x = @display_sx else last_x = @display_sx @display_sx = [@display_sx + distance, (width - DISPLAY_W) * 256].min @display_x = display_move(@display_x, @display_sx, SPEED_X) unless @parallax_loop_x @parallax_ssx += @display_sx - last_x @parallax_x = display_move(@parallax_x, @parallax_ssx, SPEED_X) end end end def scroll_up(distance) if loop_vertical? @display_sy += @map.height * 256 - distance @display_sy %= @map.height * 256 @parallax_ssy -= distance @display_y = @display_sy else last_y = @display_sy @display_sy = [@display_sy - distance, 0].max @display_y = display_move(@display_y, @display_sy, SPEED_Y) unless @parallax_loop_y @parallax_ssy += @display_sy - last_y @parallax_y = display_move(@parallax_y, @parallax_ssy, SPEED_Y) end end end end
Voilà, ce sera tout |
|
Invité Invité
| Sujet: Re: [VX] Défilement de l'écran amélioré Dim 24 Mar 2013 - 18:54 | |
| |
|
Brandobscure001 Paladin (niveau 1)
Messages postés : 544 Date d'inscription : 02/08/2011 Jauge LPC :
| Sujet: Re: [VX] Défilement de l'écran amélioré Mar 26 Mar 2013 - 13:18 | |
| Merci |
|
Choco-sama Ancien staffeux
Messages postés : 3012 Date d'inscription : 19/10/2009 Jauge LPC :
| Sujet: Re: [VX] Défilement de l'écran amélioré Mar 26 Mar 2013 - 14:22 | |
| Merci du partage, hop des points |
|
Contenu sponsorisé
| Sujet: Re: [VX] Défilement de l'écran amélioré | |
| |
|