AccueilAccueil  PortailPortail  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  ConnexionConnexion  



-30%
Le deal à ne pas rater :
LEGO Icons 10318 – Le Concorde à 139,99€
139.99 € 198.99 €
Voir le deal

Partagez
 

 Script de saut ( pour jeu de plateforme )

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeJeu 11 Déc 2008 - 16:01

Bonjour,

Je recherche un script de saut pour les jeux de plateforme ( comme dans Mario Bros ). J'ai entendu dire qu'il y en avait un sur XP mais je ne l'ai pas trouvé.
Mais vous pouvez toujours modifier celui qui est posté sur le forum.

Merci d'avance.

Akakin
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
La Meche
Flibustier Lv.21
Flibustier Lv.21
La Meche


Masculin Age : 30
Inscrit le : 24/05/2008
Messages : 3234

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeJeu 11 Déc 2008 - 16:16

Voici le script sous RPG Maker XP :
Code:
# ▼▲▼ XRXS50. Action-Maps XC. ▼▲▼ built 033010
# by 桜雅 在土

#======================================================
# □ カスタマイズポイント
#======================================================
class XRXS50
#
# Action-Maps を稼動させるマップIDの配列
#
ENABLE_FULL_ACTY_MAPS = [1, 2 , 3 , 5 , 6 , 7 , 8 , 9 ,10 , 11 , 12 , 13]
#
# 「斜め降下」
#
ENABLE_SLIDE_DESCENT = true
#
# 向きジャンプ(true : 向いている方向へジャンプ。
# false : キーが押されている方向へジャンプ。
#
JUMP_AS_KEY = false
end
#======================================================
# ■ Game_Player
#======================================================
class Game_Player < Game_Character
#------------------------------------------------------
# ○ 公開インスタンス変数
#------------------------------------------------------
# 既存
attr_writer :direction_fix
attr_accessor :walk_anime
# 新規
attr_accessor :now_jumps
attr_writer :xrxs50_direction_sidefix
#------------------------------------------------------
# ○ 最大ジャンプ回数
#------------------------------------------------------
def max_jumps
return 1
end
#------------------------------------------------------
# ● 左を向く
#------------------------------------------------------
alias xrxs50_turn_left turn_left
def turn_left
if @xrxs50_direction_sidefix
@direction = 4
else
xrxs50_turn_left
end
end
#------------------------------------------------------
# ● 右を向く
#------------------------------------------------------
alias xrxs50_turn_right turn_right
def turn_right
if @xrxs50_direction_sidefix
@direction = 6
else
xrxs50_turn_right
end
end
end
#======================================================
# ■ Scene_Map
#======================================================
class Scene_Map
#------------------------------------------------------
# ● メイン処理
#------------------------------------------------------
alias xrxs50_main main
def main
# チェック
xrxs50_enable_check
# 呼び戻す
xrxs50_main
end
#------------------------------------------------------
# ● フレーム更新
#------------------------------------------------------
alias xrxs50_update update
def update
# 呼び戻す
xrxs50_update
# フレーム更新 (座標系更新
if @xrxs50_enable
update_coordinates
end
end
#------------------------------------------------------
# ○ フレーム更新 (座標系更新
#------------------------------------------------------
def update_coordinates
if $game_player.passable?($game_player.x,$game_player.y,2)
unless $game_player.moving?
if XRXS50::ENABLE_SLIDE_DESCENT and
Input.press?(Input::RIGHT) and
$game_player.passable?($game_player.x,$game_player.y+1,6)
$game_player.move_lower_right
elsif XRXS50::ENABLE_SLIDE_DESCENT and
Input.press?(Input::LEFT) and
$game_player.passable?($game_player.x,$game_player.y+1,4)
$game_player.move_lower_left
else
$game_player.move_down
end
end
else
$game_player.move_down
$game_player.walk_anime = true unless $game_player.walk_anime
$game_player.now_jumps = 0
if Input.trigger?(Input::X) and
$game_player.now_jumps < $game_player.max_jumps
if XRXS50::JUMP_AS_KEY
direction = $game_player.direction == 4 ? -1 : 1
else
if Input.press?(Input::RIGHT)
direction = 1
elsif Input.press?(Input::LEFT)
direction = -1
else
direction = 0
end
end
$game_player.jump(direction, -2)
$game_player.now_jumps += 1
$game_player.walk_anime = false
end
end
end
#------------------------------------------------------
# ● プレイヤーの場所移動
#------------------------------------------------------
alias xrxs50_transfer_player transfer_player
def transfer_player
# 呼び戻す
xrxs50_transfer_player
# チェック
xrxs50_enable_check
end
#------------------------------------------------------
# ○ XRXS50 が稼動するか判定
#------------------------------------------------------
def xrxs50_enable_check
if XRXS50::ENABLE_FULL_ACTY_MAPS.include?($game_map.map_id)
$game_player.now_jumps = 0 if $game_player.now_jumps.nil?
@xrxs50_enable = true
$game_player.direction_fix = true
$game_player.xrxs50_direction_sidefix = true
else
@xrxs50_enable = false
$game_player.direction_fix = false
$game_player.xrxs50_direction_sidefix = false
end
end
end
Revenir en haut Aller en bas
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeJeu 11 Déc 2008 - 16:23

Merci, bien il n'y a plus qu'a le convertir maintenant.
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeVen 12 Déc 2008 - 18:30

Un petit up.
Je tiens a dire que le script servira pour un tutoriel que je suis en train de créer. Un tutoriel bien utile qui en ravira plus d'un !
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeLun 15 Déc 2008 - 15:48

Encore un up, l'urgence se ressent et s'empire !
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
Invité
Invité
avatar



Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeLun 15 Déc 2008 - 17:40

Je ne comprend pas trop le "plateforme", n'est-il pas possible de le faire en event commun?
Il me semble avoir bricoler un système sans le script sous RMXP, le seul hic, c'est que je n'ai plus mon ordinateur, et donc plus mes données --"
Revenir en haut Aller en bas
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeLun 15 Déc 2008 - 20:36

Merci quand même...
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
ASHKA
Voyageur Lv.10
Voyageur Lv.10
avatar


Masculin Age : 42
Inscrit le : 04/12/2008
Messages : 383

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeLun 15 Déc 2008 - 21:14

Voila, je l'ai adapté pour VX.

Code:
# ▼▲▼ XRXS50. Action-Maps XC. ▼▲▼ built 033010
# by 桜雅 在土

#======================================================
# □ カスタマイズポイント
#======================================================
class XRXS50
#
# Action-Maps を稼動させるマップIDの配列
#
  ENABLE_FULL_ACTY_MAPS = [1, 2 , 3 , 5 , 6 , 7 , 8 , 9 ,10 , 11 , 12 , 13]
#
# 「斜め降下」
#
  ENABLE_SLIDE_DESCENT = true
#
# 向きジャンプ(true : 向いている方向へジャンプ。
# false : キーが押されている方向へジャンプ。
#
  JUMP_AS_KEY = false
end
#======================================================
# ■ Game_Player
#======================================================
class Game_Player < Game_Character
#------------------------------------------------------
# ○ 公開インスタンス変数
#------------------------------------------------------
# 既存
  attr_writer :direction_fix
  attr_accessor :walk_anime
# 新規
  attr_accessor :now_jumps
  attr_writer :xrxs50_direction_sidefix
#------------------------------------------------------
# ○ 最大ジャンプ回数
#------------------------------------------------------
  def max_jumps
    return 1
  end
#------------------------------------------------------
# ● 左を向く
#------------------------------------------------------
  alias xrxs50_turn_left turn_left
  def turn_left
    if @xrxs50_direction_sidefix
      @direction = 4
    else
      xrxs50_turn_left
    end
  end
#------------------------------------------------------
# ● 右を向く
#------------------------------------------------------
  alias xrxs50_turn_right turn_right
  def turn_right
    if @xrxs50_direction_sidefix
      @direction = 6
    else
      xrxs50_turn_right
    end
  end
end
#======================================================
# ■ Scene_Map
#======================================================
class Scene_Map
#------------------------------------------------------
# ● メイン処理
#------------------------------------------------------
  alias xrxs50_main main
  def main
# チェック
    xrxs50_enable_check
# 呼び戻す
    xrxs50_main
  end
#------------------------------------------------------
# ● フレーム更新
#------------------------------------------------------
  alias xrxs50_update update
  def update
# 呼び戻す
    xrxs50_update
# フレーム更新 (座標系更新
    if @xrxs50_enable
      update_coordinates
    end
  end
#------------------------------------------------------
# ○ フレーム更新 (座標系更新
#------------------------------------------------------
  def update_coordinates
#    if $game_player.passable?($game_player.x,$game_player.y,2)
    if $game_player.passable?($game_player.x,$game_player.y+1)
      unless $game_player.moving?
#        if XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::RIGHT) and $game_player.passable?($game_player.x,$game_player.y+1,6)
        if XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::RIGHT) and $game_player.passable?($game_player.x+1,$game_player.y+1)
          $game_player.move_lower_right
#        elsif XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::LEFT) and $game_player.passable?($game_player.x,$game_player.y+1,4)
        elsif XRXS50::ENABLE_SLIDE_DESCENT and Input.press?(Input::LEFT) and $game_player.passable?($game_player.x-1,$game_player.y+1)
          $game_player.move_lower_left
        else
          $game_player.move_down
        end
      end
    else
      $game_player.move_down
      $game_player.walk_anime = true unless $game_player.walk_anime
      $game_player.now_jumps = 0
      if Input.trigger?(Input::X) and $game_player.now_jumps < $game_player.max_jumps
        if XRXS50::JUMP_AS_KEY
          direction = $game_player.direction == 4 ? -1 : 1
      else
        if Input.press?(Input::RIGHT)
          direction = 1
        elsif Input.press?(Input::LEFT)
          direction = -1
        else
          direction = 0
        end
      end
      $game_player.jump(direction, -2)
      $game_player.now_jumps += 1
      $game_player.walk_anime = false
    end
  end
end
#------------------------------------------------------
# ● プレイヤーの場所移動
#------------------------------------------------------
  #alias xrxs50_transfer_player transfer_player
  alias xrxs50_transfer_player update_transfer_player
  def update_transfer_player
  #def transfer_player
# 呼び戻す
    xrxs50_transfer_player
# チェック
    xrxs50_enable_check
  end
#------------------------------------------------------
# ○ XRXS50 が稼動するか判定
#------------------------------------------------------
  def xrxs50_enable_check
    if XRXS50::ENABLE_FULL_ACTY_MAPS.include?($game_map.map_id)
      $game_player.now_jumps = 0 if $game_player.now_jumps.nil?
      @xrxs50_enable = true
      $game_player.direction_fix = true
      $game_player.xrxs50_direction_sidefix = true
    else
      @xrxs50_enable = false
      $game_player.direction_fix = false
      $game_player.xrxs50_direction_sidefix = false
    end
  end
end

ASHKA
Revenir en haut Aller en bas
berka
Maire Lv.9
Maire Lv.9
berka


Masculin Age : 34
Inscrit le : 15/10/2008
Messages : 351

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeLun 15 Déc 2008 - 21:25

zut devancé....

voila... ma version mais le résultat n'est pas très concluant:

Code:
#===================================
# Jeu de plateforme
#---------------------------------------------------------------
# Sur la base XRXS50
#---------------------------------------------------------------
# Par Lordryk converti par berka
#---------------------------------------------------------------
# Les trois premières constantes sont  Modifiables.
#===================================
class Plateforme
  ID_MAP_ACTIVE = [1, 2] # ID des maps où le mode jeu de plateforme Est activé
  DIAGONALES_EN_DESSENTE = true # Peut dessendre en diagonale
  HAUTEUR = 2 # Hauteur du saut en cases
end
#===================================
# Redéfinition de la classe Game_Player
#===================================
class Game_Player < Game_Character
  # Ajout d'une variable inscriptible
  attr_writer :direction_fix                                      # Direction fixe ?
  attr_writer :plateforme_direction_sidefix          # Direction fixe lorsque le héro tombe ?
  # Ajout de deux accessoires
  attr_accessor :walk_anime                                # Position dans l'animation
  attr_accessor :now_jumps                                # En cour de saut ?
  #-------------------------------------------------------------
  # Renvoie du maximum de sauts
  #-------------------------------------------------------------
  def max_jumps;return 2;end
  #-------------------------------------------------------------
  # Redéfinition de la méthode dedéplacement
  # A gauche
  #-------------------------------------------------------------
  alias ancien_turn_left      turn_left
  def turn_left
    # Si la direction est fixe
    @plateforme_direction_sidefix ? @direction = 4 : ancien_turn_left
  end
  #-------------------------------------------------------------
  # Redéfinition de la méthode dedéplacement
  # A droite
  #-------------------------------------------------------------
  alias ancien_turn_right    turn_right
  def turn_right
    # Si la direction est fixe
    @plateforme_direction_sidefix ? @direction = 6 : ancien_turn_right
  end
end
#===================================
# Redéfinition de la classe Scene_Map
#===================================
class Scene_Map
  #-------------------------------------------------------------
  # Redéfinition de la méthode maître
  #-------------------------------------------------------------
  alias ancien_main      start
  def start
    # Vérifie que le mode plateforme est lancé
    plateforme_enable_check
    # Appel l'ancienne méthode
    ancien_main
  end
  #-------------------------------------------------------------
  # Reféfinition de la méthode de mise à jour
  #-------------------------------------------------------------
  alias ancien_update update
  def update
    # Appel l'ancienne méthode de mise à jour
    ancien_update
    # Met à jour les coordonées si le mode
    # Plateforme est actif
    update_coordinates if @plateforme_enable
  end
  #-------------------------------------------------------------
  # Méthode de mise à jour des coordonées
  #-------------------------------------------------------------
  def update_coordinates
    # Si le héro peut dessendre
    if $game_player.passable?($game_player.x,$game_player.y)
      # A moins que le joueur bouge
      unless $game_player.moving?
        if( # Si
              Plateforme::DIAGONALES_EN_DESSENTE and # La dessente en diagonale est active
              Input.press?(Input::RIGHT) and # Que la flèche droite est pressée
              $game_player.passable?($game_player.x,$game_player.y+1) # Que le héro peut se déplacer à droite
          ) # Alors
          # Mouvement bas droite
          $game_player.turn_right
          $game_player.move_lower_right
        elsif ( # Sinon, si
                      Plateforme::DIAGONALES_EN_DESSENTE and # La dessente en diagonale est active
                      Input.press?(Input::LEFT) and # Que la flèche gauche est pressée
                      $game_player.passable?($game_player.x,$game_player.y+1) # Que le héro peut se déplacer à gauche
                ) # Alors
          # Mouvement bas gauche
          $game_player.turn_left
          $game_player.move_lower_left
        else # Sinon
          # Mouvement en bas
          $game_player.move_down
        end # Fin de condition
      end # Fin du a moins que
    else # Si le héros ne peut pas passer
      # Mouvement en bas
      $game_player.move_down
      # Animation activée à moins que ce ne sois fait
      $game_player.walk_anime = true unless $game_player.walk_anime
      # Saut actuel => aucun
      $game_player.now_jumps = 0
      # Si la touche entrer est pressée et que le saut peut être produit
      if Input.trigger?(Input::C) and $game_player.now_jumps < $game_player.max_jumps
        if Input.press?(Input::RIGHT)
          # Direction => droite
          direction = Plateforme::HAUTEUR
        # Si la touche gauche est pressée
        elsif Input.press?(Input::LEFT)
          # Direction => gauche
          direction = -Plateforme::HAUTEUR
          # Sinon
        else
          # Pas de direction
          direction = 0
        end
        # Saut
        $game_player.jump(direction, -Plateforme::HAUTEUR)
        # Sauts actuels auguementé de 1
        $game_player.now_jumps += 1
        # Animation désactivée
        $game_player.walk_anime = false
      end
    end
  end
  #-------------------------------------------------------------
  # Redéfinition de la méthode de téléportation
  #-------------------------------------------------------------
  alias ancien_transfer_player        update_transfer_player
  def update_transfer_player
    # Appel l'ancienne méthode
    ancien_transfer_player
    # Vérifie que le mode plateforme est activé
    plateforme_enable_check
  end
  #-------------------------------------------------------------
  # Vérifie que le mode plateforme est activée
  #-------------------------------------------------------------
  def plateforme_enable_check
    # Si le mode plateforme est activée
    if Plateforme::ID_MAP_ACTIVE.include?($game_map.map_id)
      # Sauts actuels initiés si ce n'est pas fait
      $game_player.now_jumps = 0 if $game_player.now_jumps.nil?
      # Mode plateforme activé
      @plateforme_enable = true
      # Direction fixe activée
      $game_player.direction_fix = true
      # Direction vers le bas annulée
      $game_player.plateforme_direction_sidefix = true
      # Sinon
    else
      # Mode plateforme désactivé
      @plateforme_enable = false
      # Direction fixe désactivée
      $game_player.direction_fix = false
      # Direction vers le bas activée
      $game_player.plateforme_direction_sidefix = false
    end
  end
end
Revenir en haut Aller en bas
http://rpgruby.olympe-network.com
fabY
dYeu retraité prématurément
dYeu retraité prématurément
fabY


Masculin Age : 29
Inscrit le : 09/02/2008
Messages : 5357

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeLun 15 Déc 2008 - 21:58

akakin > Depuis quand on fait des up tous les jours :/ ?

ASHKA > Merci énormément (wah, première fois que je dit ça).

Berka > C'est chiant hein =/ ? Merci à toi aussi pour le geste =D !
Revenir en haut Aller en bas
https://rpg-maker-vx.bbactif.com/
akakin
Corsaire Lv.19
Corsaire Lv.19
avatar


Masculin Age : 30
Inscrit le : 20/08/2008
Messages : 2555

Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitimeMar 16 Déc 2008 - 8:00

Non, regarde les dates des up fabY, un par jour, un jeudi, un vendredi et un lundi.

Perso, je préfère prendre celui de berka, bien qu'ils soient les mêmes, il y a la traduc' sur celui de berka alors. Mais beau boulot a vous deux et merci beaucoup.
Revenir en haut Aller en bas
http://eternara-rpg.1fr1.net/forum.htm
Contenu sponsorisé




Script de saut ( pour jeu de plateforme ) Empty
MessageSujet: Re: Script de saut ( pour jeu de plateforme )   Script de saut ( pour jeu de plateforme ) Icon_minitime

Revenir en haut Aller en bas
 

Script de saut ( pour jeu de plateforme )

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

 Sujets similaires

-
» Script jeu de plateforme sonic [lisez-le Je vous en supplie de toute la fibre de mon être.]
» Script pour jeu de Plateforme
» script de saut
» Script pour communication (chat) & de lueur pour le skin.
» Ajout d'une fonction pour le script de pop-up pour un gain

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
RPG Maker VX :: Entraide :: Scripts :: Requêtes :: Archives-
Créer un forum | ©phpBB | Forum gratuit d'entraide | Signaler un abus | Cookies | Forum gratuit