LODM (L'Oasis des Makers)
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.

LODM (L'Oasis des Makers)

Forum d'étude sur le Making RMXP
 
AccueilPortailRechercherDernières imagesS'enregistrerConnexion
Le Deal du moment :
Cartes Pokémon 151 : où trouver le ...
Voir le deal

 

 Gérer des Charas ARPG

Aller en bas 
3 participants
AuteurMessage
Roys
Guide
Guide
Roys


Nombre de messages : 111
Age : 52
Projet Principal : Le Crépuscule des Dieux
Aide Recherchée pour : des chara aRPG
Surnom : Scripteur Monomaniaque
Date d'inscription : 24/02/2007

Gérer des Charas ARPG Empty
MessageSujet: Gérer des Charas ARPG   Gérer des Charas ARPG Icon_minitimeSam 19 Mai - 15:03

Bonjour

Pour RMXP on trouve rarement (très rarement) des charas arpg, excepté pour la vue en 2d de face.
J'espère initier ici une collection de différents charas héros ou ennemis qui permettrait des actions en temps rééls

Un des inconvénients du système de RM pour les charas est que leurs pieds doivent être en bas au milieu de la case correspondant à leur frame. Pourquoi est ce un problème en arpg ? Car nous n'avons plus de place pour dessiner les attaques vers le bas.
Pour remedier a ceci, nous avons besoin d'un nouveau template:
Gérer des Charas ARPG Charac10

Comme vous pouvez le constater la ligne au milieu de la frame est surélevée. Cette ligne est la position des pieds de votre chara. Ainsi nous avons la place, sur les frames vers le bas, de dessiner une attaque longue.
Le chara est donc au milieu de la frame avec une case de libre tout autour de lui ce qui permet des attaques dans tout les sens

Très bien , mais maintenant il faut changer le code de RM, avec ceci vous allez pouvoir afficher tranquillement votre nouveau template.
"Oui mais moi j'avais d'anciens charas avec l'ancien template qui m'allaient très bien!"
Pas de problème le script gère les 2 systèmes, c'est très simple, si la hauteur de l'image de votre chara est égale à sa largeur, alors c'est le nouveau template qui s'applique, sinon c'est l'ancien.
Ainsi pour appliquer le nouveau template il vous suffit de faire des chara de meme hauteur et largeur:Par exemple un chara 384 par 384.

Remplacer l'update de sprite_character par ceci
Code:
#--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    # If tile ID, file name, or hue are different from current ones
    if @tile_id != @character.tile_id or
      @character_name != @character.character_name or
      @character_hue != @character.character_hue
      # Remember tile ID, file name, and hue
      @tile_id = @character.tile_id
      @character_name = @character.character_name
      @character_hue = @character.character_hue
      # If tile ID value is valid
      if @tile_id >= 384
        self.bitmap = RPG::Cache.tile($game_map.tileset_name,
          @tile_id, @character.character_hue)
        self.src_rect.set(0, 0, 32, 32)
        self.ox = 16
        self.oy = 32
      # If tile ID value is invalid
      else
        self.bitmap = RPG::Cache.character(@character.character_name,
          @character.character_hue)
        @cw = bitmap.width / 4
        @ch = bitmap.height / 4
        self.ox = @cw / 2
        self.ox = @cw / 2
        # Ajustement pour nouveau tempalte
        self.oy = (bitmap.width==bitmap.height ? @ch*2/3 : @ch)
        # fin
      end
    end
    # Set visible situation
    self.visible = (not @character.transparent)
    # If graphic is character
    if @tile_id == 0
      # Set rectangular transfer
      sx = @character.pattern * @cw
      sy = (@character.direction - 2) / 2 * @ch
      self.src_rect.set(sx, sy, @cw, @ch)
    end
    # Set sprite coordinates
    self.x = @character.screen_x
    self.y = @character.screen_y
    self.z = @character.screen_z(@ch)
    # Set opacity level, blend method, and bush depth
    self.opacity = @character.opacity
    self.blend_type = @character.blend_type
    self.bush_depth = @character.bush_depth
    # Animation
    if @character.animation_id != 0
      animation = $data_animations[@character.animation_id]
      animation(animation, true)
      @character.animation_id = 0
    end
  end

Il ne reste plus qu'a spriter
Voici, quelques exemples avec Arshes, fait par Sora dark, issus de la version beta test de mon projet
Gérer des Charas ARPG Ch_wal10
Gérer des Charas ARPG Ch_wal11
Gérer des Charas ARPG Ch_wal13
Revenir en haut Aller en bas
https://lodm.forumactif.com
TLN
Chercheur
TLN


Nombre de messages : 23
Age : 34
Projet Principal : Un truk secret :D
Date d'inscription : 18/03/2007

Gérer des Charas ARPG Empty
MessageSujet: Re: Gérer des Charas ARPG   Gérer des Charas ARPG Icon_minitimeSam 16 Juin - 2:52

Si j'puis m'permettre pourquoi ne pas distinguer nouveau template et ancien template en fonction du nom du chara ?
J'sais pas, si pas exemple le nom du chara commence par "NT_" (NT pour "Nouveau Template").

En plus ça se fait facilement avec un truc du genre :

Code:
if @name.split(_)[0] == "NT"
Revenir en haut Aller en bas
dams999




Nombre de messages : 12
Date d'inscription : 12/05/2007

Gérer des Charas ARPG Empty
MessageSujet: Re: Gérer des Charas ARPG   Gérer des Charas ARPG Icon_minitimeDim 17 Juin - 2:42

C'est nickel comme script, vive les zelda^^.
Mais peut on choisir la taille du perso en fonction également ? Avec une option size ou dans le genre,et définir le mouvement d'un perso plus grand en changeant la référence de la taille de déplacement de 32 a la base ?
Revenir en haut Aller en bas
Contenu sponsorisé





Gérer des Charas ARPG Empty
MessageSujet: Re: Gérer des Charas ARPG   Gérer des Charas ARPG Icon_minitime

Revenir en haut Aller en bas
 
Gérer des Charas ARPG
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
LODM (L'Oasis des Makers) :: Groupe pour Scripts :: Système aRPG-
Sauter vers:  
Ne ratez plus aucun deal !
Abonnez-vous pour recevoir par notification une sélection des meilleurs deals chaque jour.
IgnorerAutoriser