Connexion

Récupérer mon mot de passe

Derniers sujets
» Concours de lancer de concours
1ere news EmptyLun 12 Mai - 14:15 par Moerehn

» Participations
1ere news EmptyLun 12 Mai - 14:10 par Moerehn

» Foufoune Intruder
1ere news EmptyLun 28 Avr - 10:08 par Terzarok

» Projet de loi lié à la biodiversité
1ere news EmptyLun 28 Avr - 10:02 par Terzarok

» kiki le chien zoeb de l'espace
1ere news EmptyLun 28 Avr - 9:55 par Terzarok

» Améliorer le site ?
1ere news EmptyLun 7 Avr - 16:18 par Kiss_Thunes

» La dernière femme Version 0.7.7 (HENTAI RPG) Déconseillé au moins de 16 ans
1ere news EmptyDim 6 Avr - 22:12 par Moerehn

» Blabla de printemps
1ere news EmptyJeu 3 Avr - 9:43 par Kiss_Thunes

» Miduki entre les RPG et le Hentai
1ere news EmptyMer 2 Avr - 19:02 par Knawaiii!!!

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

[ Voir toute la liste ]


Le record du nombre d'utilisateurs en ligne est de 32 le Mar 1 Avr - 14:29
Statistiques
Nous avons 52 membres enregistrés
L'utilisateur enregistré le plus récent est NH

Nos membres ont posté un total de 1058 messages dans 61 sujets
Moe de la semaine

Pour cette première, un choix personnel. 


Screen de la semaine

Chambre du boss - La 7ème porte

Partenaires

1ere news

Aller en bas

1ere news Empty 1ere news

Message par Ephy le Mar 1 Avr - 9:58

1ere news Site

IMPORTANT: Migration prochaine des forums Oniromanciens
Nous en parlons depuis longtemps en coulisses, le coût d'Oniromancie en matière d'hébergement est de plus en plus lourd pour les finances de notre Grand Babu de Webmaster. Bien sûr, nous remercions chacun de ceux qui, par générosité, font partie du Comité de Soutien (cocher la case dans votre Profil pour vous inscrire) et cliquent au moins une fois par jour sur la bannière de publicité visible depuis le forum.

Aux yeux de l'équipe, il paraît de plus en plus avantageux de déplacer / remplacer les forums, qui concentrent la majorité de l'information, vers un service de création de forums gratuit tel que forumactif. Cela permettrait de garder la mine d'or en ressources et en jeux qu'est le site, tout en disposant d'un hébergement illimité pour vos belles présentations de jeux, vos débats infinis et vos trollages intempestifs.

Alors, puisque le malheur des uns fait le bonheur des autres, le moment est venu de vous dévoiler a belle adresse, qui s'accompagne d'un novueau thème ! Adieu au pays des rêves et bienvenue au Kawaï, au Cute, au Moe ! Voici Moe-Making !

http://moe-making.forumactif.org/

1ere news Moemaking-44d1233


1ere news Jeux
Retour aux valeurs sûres avec les derniers jeux de la communauté Smile


Mystic Slayer II
Par Ephy
RPG Maker 2003
RPG / Old School
1ere news Ms-2454161

En voilà un que nous n'attendions pas ! Oniromancie vous offre en avant-première le second opus de cette oeuvre épique conçue par Ephy.

Cette fois-ci le jeu vous met dans la peau d'Eloïse, une guérisseuse au service de l'armée impériale de Paloma.
En avant garde dans le continent du nord, son camp est attaqué sans prévenir par une armée que personne n'attendait. La rapidité de l'attaque et le surnombre de ses opposant la pousse à fuir vers l'est en direction de Palanke...
Pendant ce temps, de mystérieux événements se trament et un troisième camp semble se constituer dans la grande guerre opposant l'empire de Paloma au royaume des sorciers du nord...
1ere news Sans-titre-44d13d2

1ere news Sans-titre2-44d144d

1ere news Sans-titre3-44d1452

Topic du premier opus
Téléchargement du premier opus


1ere news Separation


The Dark Moon Chronicles
Par Bouboul
RPG Maker VX
RPG / Tour par tour

Avec la mort du roi Ulrezaj, la terre d'Odessa a été laissée sans chef. Le Seigneur Saheyus s'arrange pour épouser la jeune héritière à la suite de la mort de son père, puis engage une équipe de mercenaires de la célèbre Brigade Horizons pour escorter la fille d'Ulrezaj à Ethnia afin d'officialiser le mariage. Le commandant en second de l'escadron de la Brigade Horizons, Velsarbor, se retrouve bientôt devant un dilemme crucial. Emu par la jeune héritière au point de se sentir obligé de l'aider dans sa détresse , il doit choisir entre sa loyauté, son honneur de soldat et son code moral. Velsarbor décide finalement d'aider la jeune héritière , et les deux s'engagent dans un voyage dangereux pour échapper à l'emprise de Saheyus...

1ere news 5kdc2mh-44d1763

1ere news 5bccszga-44d176d

1ere news 5fwlskc-44d1772

Topic du projet


1ere news Separation


Kujira no Hara en Java !
Par Roi of the Suisse
Java
A-RPG / Enigmes

Devant l'inefficacité de la programmation de système A-RPG par évènements sous RPG Maker XP, Roi of the Suisse a décidé de quitter notre logiciel bien aimé. Mais ce n'est que pour mieux revenir ! Kujira no Hara, projet phare de notre ami, bénéficiera désormais d'un moteur de jeu en langage Java.

Si la nouvelle a quelque chose de surprenant, c'est que cela faisait plus de deux ans que l'on attendait une démo. Alors, ce temps passé à transformer le projet en vallait-il la peine ? Y aura-t-il dorénavant bien moins de puzzles à base de blocs ?

Roi of the Suisse a écrit:Je prépare bien plus d'énigmes jouant sur l'adresse, la vitesse ou le combat. En fait avant dans cette domaine je ne pouvais faire que de la zutre, du coup je trollais sriden avec davantage de statues viking :F
Sortie du jeu démo1+2+3 en Java non event-bancalz courant Avril.
Sortie du jeu fini à Noël.

1ere news Kujira-eclipse-capture-44a40a0

En outre, selon les résultats obtenus par les prochaines démos, un moteur 3D associé à un remake 3D du jeu seraient aussi possibles pour 2015. Mais où s'arrêtera-t-il ? :hurle


1ere news Concours

1ere news Chi1-4455202SUPER1ere news Cha-445521a
[size=32]TOUTOU & MINOU[/size][/b]
Si vous n'avez pas encore voté pour le concours officiel des animaux les plus mignons* du forum, rendez-vous sur le topic Super Toutou et Super Minou Oniro 2014

*krikounous pour Nemau

Note importante: Pour le moment les votes ont, à l'unanimité, conféré le maximum de points à deux animaux en particulier, c'est pourquoi l'organisateur a décidé de les mettre hors-concours. Pour le bien de la compétition, il ne sert donc plus à rien de voter pour ces deux braves bêtes:

1ere news Ugly_dogs_01
1ere news Separation2
1ere news CATG-one-ugly-cat-3

Première page du topic concerné
Deuxième page du topic
Troisième page du topic
Quatrième page du topic


1ere news Logiciel


Sphere Worldmap Script 0.1
RPG Maker n'est pas vraiment connu pour s'affranchir de ses limites 2D, mais ce logiciel, abondant en scripts depuis la sortie des opus XP et VX, a su rentabiliser l'héritage de ses ainés du monde vidéoludique. Ainsi, de nombreux effets rappelant la 3D et donnant de la profondeur au monde de vos jeux sont désormais disponibles.

1ere news Sphereworldmap-44d0db3

Le plus récent, appelé Sphere Worldmap Script n'a pas encore quitté la communauté anglophone, mais son usage rapide et facile ainsi que son résultat visuel vous séduiront certainement. Ce dernier vous permettra de voyager sur votre carte du monde dézoomée en lui donnant l'aspect d'une véritable planète. De même qu'avec ce Mode 7, le script s'activera à chaque fois que vous emprunterez un véhicule et votre mappemonde retournera à la normale quand vous en descendrez.

Code:
#==============================================================================
# ** Game_Character
#------------------------------------------------------------------------------
#  This class deals with characters. It's used as a superclass of the
# Game_Player and Game_Event classes.
#==============================================================================

class Game_Character
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader  :id                      # ID
  attr_reader                          # map x-coordinate (logical)
  attr_reader  :y                        # map y-coordinate (logical)
  attr_reader  :real_x                  # map x-coordinate (actual-x * 256)
  attr_reader  :real_y                  # map y-coordinate (actual-y * 256)
  attr_reader  :tile_id                  # tile ID (invalid if 0)
  attr_reader  :character_name          # character graphic filename
  attr_reader  :character_index          # character graphic index
  attr_reader  :opacity                  # opacity level
  attr_reader  :blend_type              # blending method
  attr_reader  :direction                # direction
  attr_reader  :pattern                  # pattern
  attr_reader  :move_route_forcing      # forced move route flag
  attr_reader  :priority_type            # priority type
  attr_reader  :through                  # pass-through
  attr_reader  :bush_depth              # bush depth
  attr_accessor :animation_id            # animation ID
  attr_accessor :balloon_id              # balloon icon ID
  attr_accessor :transparent              # transparency flag
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize
    @id = 0
    @x = 0
    @y = 0
    @real_x = 0
    @real_y = 0
    @tile_id = 0
    @character_name = ""
    @character_index = 0
    @opacity = 255
    @blend_type = 0
    @direction = 2
    @pattern = 1
    @move_route_forcing = false
    @priority_type = 1
    @through = true
    @bush_depth = 0
    @animation_id = 0
    @balloon_id = 0
    @transparent = false
    @original_direction = 2              # Original direction
    @original_pattern = 1                # Original pattern
    @move_type = 0                        # Movement type
    @move_speed = 9                      # Movement speed
    @move_frequency = 9                  # Movement frequency
    @move_route = nil                    # Move route
    @move_route_index = 0                # Move route index
    @original_move_route = nil            # Original move route
    @original_move_route_index = 0        # Original move route index
    @walk_anime = true                    # Walking animation
    @step_anime = false                  # Stepping animation
    @direction_fix = true                # Fixed direction
    @anime_count = 0                      # Animation count
    @stop_count = 0                      # Stop count
    @jump_count = 0                      # Jump count
    @jump_peak = 0                        # Jump peak count
    @wait_count = 0                      # Wait count
    @locked = false                      # Locked flag
    @prelock_direction = 0                # Direction before lock
    @move_failed = false                  # Movement failed flag
  end
  #--------------------------------------------------------------------------
  # * Determine if Moving
  #    Compare with logical coordinates.
  #--------------------------------------------------------------------------
  def moving?
    return (@real_x != @x * 256 or @real_y != @y * 256)
  end
  #--------------------------------------------------------------------------
  # * Determine if Jumping
  #--------------------------------------------------------------------------
  def jumping?
    return @jump_count < 0
  end
  #--------------------------------------------------------------------------
  # * Determine if Stopping
  #--------------------------------------------------------------------------
  def stopping?
    return (not (moving? or jumping?))
  end
  #--------------------------------------------------------------------------
  # * Determine if Dashing
  #--------------------------------------------------------------------------
  def dash?
    return false
  end
  #--------------------------------------------------------------------------
  # * Determine if Debug Pass-through State
  #--------------------------------------------------------------------------
  def debug_through?
    return false
  end
  #--------------------------------------------------------------------------
  # * Straighten Position
  #--------------------------------------------------------------------------
  def straighten
    @pattern = 1 if @walk_anime or @step_anime
    @anime_count = 0
  end
  #--------------------------------------------------------------------------
  # * Force Move Route
  #    move_route : new move route
  #--------------------------------------------------------------------------
  def force_move_route(move_route)
    if @original_move_route == nil
      @original_move_route = @move_route
      @original_move_route_index = @move_route_index
    end
    @move_route = move_route
    @move_route_index = 0
    @move_route_forcing = true
    @prelock_direction = 0
    @wait_count = 0
    move_type_custom
  end
  #--------------------------------------------------------------------------
  # * Determine Coordinate Match
  #    x : x-coordinate
  #    y : y-coordinate
  #--------------------------------------------------------------------------
  def pos?(x, y)
    return (@x == x and @y == y)
  end
  #--------------------------------------------------------------------------
  # * Coordinate Match and &quot;Passage OFF&quot; Determination (nt = No Through)
  #    x : x-coordinate
  #    y : y-coordinate
  #--------------------------------------------------------------------------
  def pos_nt?(x, y)
    return (pos?(x, y) and not @through)
  end
  #--------------------------------------------------------------------------
  # * Determine if Passable
  #    x : x-coordinate
  #    y : y-coordinate
  #--------------------------------------------------------------------------
  def passable?(x, y)
    x = $game_map.round_x(x)                        # Horizontal loop adj.
    y = $game_map.round_y(y)                        # Vertical loop adj.
    return false unless $game_map.valid?(x, y)      # Outside map?
    return true if @through or debug_through?      # Through ON?
    return false unless map_passable?(x, y)        # Map Impassable?
    return false if collide_with_characters?(x, y)  # Collide with character?
    return true                                    # Passable
  end
  #--------------------------------------------------------------------------
  # * Determine if Map is Passable
  #    x : x-coordinate
  #    y : y-coordinate
  #    Gets whether the tile at the designated coordinates is passable.
  #--------------------------------------------------------------------------
  def map_passable?(x, y)
    return $game_map.passable?(x, y)
  end
  #--------------------------------------------------------------------------
  # * Determine Character Collision
  #    x : x-coordinate
  #    y : y-coordinate
  #    Detects normal character collision, including the player and vehicles.
  #--------------------------------------------------------------------------
  def collide_with_characters?(x, y)
    for event in $game_map.events_xy(x, y)          # Matches event position
      unless event.through                          # Passage OFF?
        return true if self.is_a?(Game_Event)      # Self is event
        return true if event.priority_type == 1    # Target is normal char
      end
    end
    if @priority_type == 1                          # Self is normal char
      return true if $game_player.pos_nt?(x, y)    # Matches player position
      return true if $game_map.boat.pos_nt?(x, y)  # Matches boat position
      return true if $game_map.ship.pos_nt?(x, y)  # Matches ship position
    end
    return false
  end
  #--------------------------------------------------------------------------
  # * Lock (process for stopping event in progress)
  #--------------------------------------------------------------------------
  def lock
    unless @locked
      @prelock_direction = @direction
      turn_toward_player
      @locked = true
    end
  end
  #--------------------------------------------------------------------------
  # * Unlock
  #--------------------------------------------------------------------------
  def unlock
    if @locked
      @locked = false
      set_direction(@prelock_direction)
    end
  end
  #--------------------------------------------------------------------------
  # * Move to Designated Position
  #    x : x-coordinate
  #    y : y-coordinate
  #--------------------------------------------------------------------------
  def moveto(x, y)
    @x = x % $game_map.width
    @y = y % $game_map.height
    @real_x = @x * 256
    @real_y = @y * 256
    @prelock_direction = 0
    straighten
    update_bush_depth
  end
  #--------------------------------------------------------------------------
  # * Change Direction to Designated Direction
  #    direction : Direction
  #--------------------------------------------------------------------------
  def set_direction(direction)
    if not @direction_fix and direction != 0
      @direction = direction
      @stop_count = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Determine Object Type
  #--------------------------------------------------------------------------
  def object?
    return (@tile_id < 0 or @character_name[0, 1] == '!')
  end
  #--------------------------------------------------------------------------
  # * Get Screen X-Coordinates
  #--------------------------------------------------------------------------
  def screen_x
    return ($game_map.adjust_x(@real_x) + 8007) / 8 - 1000 + 16
  end
  #--------------------------------------------------------------------------
  # * Get Screen Y-Coordinates
  #--------------------------------------------------------------------------
  def screen_y
    y = ($game_map.adjust_y(@real_y) + 8007) / 8 - 1000 + 32
    y -= 4 unless object?
    if @jump_count <= @jump_peak
      n = @jump_count - @jump_peak
    else
      n = @jump_peak - @jump_count
    end
    return y - (@jump_peak * @jump_peak - n * n) / 2
  end
  #--------------------------------------------------------------------------
  # * Get Screen Z-Coordinates
  #--------------------------------------------------------------------------
  def screen_z
    if @priority_type == 2
      return 200
    elsif @priority_type == 0
      return 60
    elsif @tile_id < 0
      pass = $game_map.passages[@tile_id]
      if pass & 0x10 == 0x10    # [☆]
        return 160
      else
        return 40
      end
    else
      return 100
    end
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if jumping?                # Jumping
      update_jump
    elsif moving?              # Moving
      update_move
    else                        # Stopped
      update_stop
    end
    if @wait_count < 0          # Waiting
      @wait_count -= 1
    elsif @move_route_forcing  # Forced move route
      move_type_custom
    elsif not @locked          # Not locked
      update_self_movement
    end
    update_animation
  end
  #--------------------------------------------------------------------------
  # * Update While Jumping
  #--------------------------------------------------------------------------
  def update_jump
    @jump_count -= 1
    @real_x = (@real_x * @jump_count + @x * 256) / (@jump_count + 1)
    @real_y = (@real_y * @jump_count + @y * 256) / (@jump_count + 1)
    update_bush_depth
  end
  #--------------------------------------------------------------------------
  # * Update While Moving
  #--------------------------------------------------------------------------
  def update_move
    distance = 2 ** @move_speed  # Convert to movement distance
    distance *= 2 if dash?        # If dashing, double it
    @real_x = [@real_x - distance, @x * 256].max if @x * 256 > @real_x
    @real_x = [@real_x + distance, @x * 256].min if @x * 256 < @real_x
    @real_y = [@real_y - distance, @y * 256].max if @y * 256 > @real_y
    @real_y = [@real_y + distance, @y * 256].min if @y * 256 < @real_y
    update_bush_depth unless moving?
    if @walk_anime
      @anime_count += 1.5
    elsif @step_anime
      @anime_count += 1
    end
  end
  #--------------------------------------------------------------------------
  # * Update While Stopped
  #--------------------------------------------------------------------------
  def update_stop
    if @step_anime
      @anime_count += 1
    elsif @pattern != @original_pattern
      @anime_count += 1.5
    end
    @stop_count += 1 unless @locked
  end
  #--------------------------------------------------------------------------
  # * Update During Self movement
  #--------------------------------------------------------------------------
  def update_self_movement
    if @stop_count < 30 * (5 - @move_frequency)
      case @move_type
      when 1;  move_type_random
      when 2;  move_type_toward_player
      when 3;  move_type_custom
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Update Animation Count
  #--------------------------------------------------------------------------
  def update_animation
    speed = @move_speed + (dash? ? 1 : 0)
    if @anime_count < 18 - speed * 2
      if not @step_anime and @stop_count < 0
        @pattern = @original_pattern
      else
        @pattern = (@pattern + 1) % 4
      end
      @anime_count = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Update Bush Depth
  #--------------------------------------------------------------------------
  def update_bush_depth
    if object? or @priority_type != 1 or @jump_count < 0
      @bush_depth = 0
    else
      bush = $game_map.bush?(@x, @y)
      if bush and not moving?
        @bush_depth = 8
      elsif not bush
        @bush_depth = 0
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move Type : Random
  #--------------------------------------------------------------------------
  def move_type_random
    case rand(6)
    when 0..1;  move_random
    when 2..4;  move_forward
    when 5;    @stop_count = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Move Type : Approach
  #--------------------------------------------------------------------------
  def move_type_toward_player
    sx = @x - $game_player.x
    sy = @y - $game_player.y
    if sx.abs + sy.abs <= 20
      move_random
    else
      case rand(6)
      when 0..3;  move_toward_player
      when 4;    move_random
      when 5;    move_forward
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move Type : Custom
  #--------------------------------------------------------------------------
  def move_type_custom
    if stopping?
      command = @move_route.list[@move_route_index]  # Get movement command
      @move_failed = false
      if command.code == 0                            # End of list
        if @move_route.repeat                        # [Repeat Action]
          @move_route_index = 0
        elsif @move_route_forcing                    # Forced move route
          @move_route_forcing = false                # Cancel forcing
          @move_route = @original_move_route          # Restore original
          @move_route_index = @original_move_route_index
          @original_move_route = nil
        end
      else
        case command.code
        when 1    # Move Down
          move_down
        when 2    # Move Left
          move_left
        when 3    # Move Right
          move_right
        when 4    # Move Up
          move_up
        when 5    # Move Lower Left
          move_lower_left
        when 6    # Move Lower Right
          move_lower_right
        when 7    # Move Upper Left
          move_upper_left
        when 8    # Move Upper Right
          move_upper_right
        when 9    # Move at Random
          move_random
        when 10  # Move toward Player
          move_toward_player
        when 11  # Move away from Player
          move_away_from_player
        when 12  # 1 Step Forward
          move_forward
        when 13  # 1 Step Backwards
          move_backward
        when 14  # Jump
          jump(command.parameters[0], command.parameters[1])
        when 15  # Wait
          @wait_count = command.parameters[0] - 1
        when 16  # Turn Down
          turn_down
        when 17  # Turn Left
          turn_left
        when 18  # Turn Right
          turn_right
        when 19  # Turn Up
          turn_up
        when 20  # Turn 90� Right
          turn_right_90
        when 21  # Turn 90� Left
          turn_left_90
        when 22  # Turn 180�
          turn_180
        when 23  # Turn 90� Right or Left
          turn_right_or_left_90
        when 24  # Turn at Random
          turn_random
        when 25  # Turn toward Player
          turn_toward_player
        when 26  # Turn away from Player
          turn_away_from_player
        when 27  # Switch ON
          $game_switches[command.parameters[0]] = true
          $game_map.need_refresh = true
        when 28  # Switch OFF
          $game_switches[command.parameters[0]] = false
          $game_map.need_refresh = true
        when 29  # Change Speed
          @move_speed = command.parameters[0]
        when 30  # Change Frequency
          @move_frequency = command.parameters[0]
        when 31  # Walking Animation ON
          @walk_anime = true
        when 32  # Walking Animation OFF
          @walk_anime = false
        when 33  # Stepping Animation ON
          @step_anime = true
        when 34  # Stepping Animation OFF
          @step_anime = false
        when 35  # Direction Fix ON
          @direction_fix = true
        when 36  # Direction Fix OFF
          @direction_fix = false
        when 37  # Through ON
          @through = true
        when 38  # Through OFF
          @through = false
        when 39  # Transparent ON
          @transparent = true
        when 40  # Transparent OFF
          @transparent = false
        when 41  # Change Graphic
          set_graphic(command.parameters[0], command.parameters[1])
        when 42  # Change Opacity
          @opacity = command.parameters[0]
        when 43  # Change Blending
          @blend_type = command.parameters[0]
        when 44  # Play SE
          command.parameters[0].play
        when 45  # Script
          eval(command.parameters[0])
        end
        if not @move_route.skippable and @move_failed
          return  # [Skip if Cannot Move] OFF & movement failure
        end
        @move_route_index += 1
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Increase Steps
  #--------------------------------------------------------------------------
  def increase_steps
    @stop_count = 0
    update_bush_depth
  end
  #--------------------------------------------------------------------------
  # * Calculate X Distance From Player
  #--------------------------------------------------------------------------
  def distance_x_from_player
    sx = @x - $game_player.x
    if $game_map.loop_horizontal?        # When looping horizontally
      if sx.abs < $game_map.width / 2    # Larger than half the map width?
        sx -= $game_map.width            # Subtract map width
      end
    end
    return sx
  end
  #--------------------------------------------------------------------------
  # * Calculate Y Distance From Player
  #--------------------------------------------------------------------------
  def distance_y_from_player
    sy = @y - $game_player.y
    if $game_map.loop_vertical?          # When looping vertically
      if sy.abs < $game_map.height / 2    # Larger than half the map height?
        sy -= $game_map.height            # Subtract map height
      end
    end
    return sy
  end
  #--------------------------------------------------------------------------
  # * Move Down
  #    turn_ok : Allows change of direction on the spot
  #--------------------------------------------------------------------------
  def move_down(turn_ok = true)
    if passable?(@x, @y+1)                  # Passable
      turn_down
      @y = $game_map.round_y(@y+1)
      @real_y = (@y-1)*256
      increase_steps
      @move_failed = false
    else                                    # Impassable
      turn_down if turn_ok
      check_event_trigger_touch(@x, @y+1)  # Touch event is triggered?
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move Left
  #    turn_ok : Allows change of direction on the spot
  #--------------------------------------------------------------------------
  def move_left(turn_ok = true)
    if passable?(@x-1, @y)                  # Passable
      turn_left
      @x = $game_map.round_x(@x-1)
      @real_x = (@x+1)*256
      increase_steps
      @move_failed = false
    else                                    # Impassable
      turn_left if turn_ok
      check_event_trigger_touch(@x-1, @y)  # Touch event is triggered?
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move Right
  #    turn_ok : Allows change of direction on the spot
  #--------------------------------------------------------------------------
  def move_right(turn_ok = true)
    if passable?(@x+1, @y)                  # Passable
      turn_right
      @x = $game_map.round_x(@x+1)
      @real_x = (@x-1)*256
      increase_steps
      @move_failed = false
    else                                    # Impassable
      turn_right if turn_ok
      check_event_trigger_touch(@x+1, @y)  # Touch event is triggered?
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move up
  #    turn_ok : Allows change of direction on the spot
  #--------------------------------------------------------------------------
  def move_up(turn_ok = true)
    if passable?(@x, @y-1)                  # Passable
      turn_up
      @y = $game_map.round_y(@y-1)
      @real_y = (@y+1)*256
      increase_steps
      @move_failed = false
    else                                    # Impassable
      turn_up if turn_ok
      check_event_trigger_touch(@x, @y-1)  # Touch event is triggered?
      @move_failed = true
    end
  end
  #--------------------------------------------------------------------------
  # * Move Lower Left
  #--------------------------------------------------------------------------
  def move_lower_left
    unless @direction_fix
      @direction = (@direction == 6 ? 4 : @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
  #--------------------------------------------------------------------------
  # * 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
  #--------------------------------------------------------------------------
  # * Move Upper Left
  #--------------------------------------------------------------------------
  def move_upper_left
    unless @direction_fix
      @direction = (@direction == 6 ? 4 : @direction == 2 ? 8 : @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
  #--------------------------------------------------------------------------
  # * Move Upper Right
  #--------------------------------------------------------------------------
  def move_upper_right
    unless @direction_fix
      @direction = (@direction == 4 ? 6 : @direction == 2 ? 8 : @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
  #--------------------------------------------------------------------------
  # * Move at Random
  #--------------------------------------------------------------------------
  def move_random
    case rand(4)
    when 0;  move_down(false)
    when 1;  move_left(false)
    when 2;  move_right(false)
    when 3;  move_up(false)
    end
  end
  #--------------------------------------------------------------------------
  # * Move toward Player
  #--------------------------------------------------------------------------
  def move_toward_player
    sx = distance_x_from_player
    sy = distance_y_from_player
    if sx != 0 or sy != 0
      if sx.abs < sy.abs                  # Horizontal distance is longer
        sx < 0 ? move_left : move_right  # Prioritize left-right
        if @move_failed and sy != 0
          sy < 0 ? move_up : move_down
        end
      else                                # Vertical distance is longer
        sy < 0 ? move_up : move_down      # Prioritize up-down
        if @move_failed and sx != 0
          sx < 0 ? move_left : move_right
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Move away from Player
  #--------------------------------------------------------------------------
  def move_away_from_player
    sx = distance_x_from_player
    sy = distance_y_from_player
    if sx != 0 or sy != 0
      if sx.abs < sy.abs                  # Horizontal distance is longer
        sx < 0 ? move_right : move_left  # Prioritize left-right
        if @move_failed and sy != 0
          sy < 0 ? move_down : move_up
        end
      else                                # Vertical distance is longer
        sy < 0 ? move_down : move_up      # Prioritize up-down
        if @move_failed and sx != 0
          sx < 0 ? move_right : move_left
        end
      end
    end
  end
  #--------------------------------------------------------------------------
  # * 1 Step Forward
  #--------------------------------------------------------------------------
  def move_forward
    case @direction
    when 2;  move_down(false)
    when 4;  move_left(false)
    when 6;  move_right(false)
    when 8;  move_up(false)
    end
  end
  #--------------------------------------------------------------------------
  # * 1 Step Backward
  #--------------------------------------------------------------------------
  def move_backward
    last_direction_fix = @direction_fix
    @direction_fix = true
    case @direction
    when 2;  move_up(false)
    when 4;  move_right(false)
    when 6;  move_left(false)
    when 8;  move_down(false)
    end
    @direction_fix = last_direction_fix
  end
  #--------------------------------------------------------------------------
  # * Jump
  #    x_plus : x-coordinate plus value
  #    y_plus : y-coordinate plus value
  #--------------------------------------------------------------------------
  def jump(x_plus, y_plus)
    if x_plus.abs < y_plus.abs            # Horizontal distance is longer
      x_plus > 0 ? turn_left : turn_right
    elsif x_plus.abs < y_plus.abs        # Vertical distance is longer
      y_plus > 0 ? turn_up : turn_down
    end
    @x += x_plus
    @y += y_plus
    distance = Math.sqrt(x_plus * x_plus + y_plus * y_plus).round
    @jump_peak = 10 + distance - @move_speed
    @jump_count = @jump_peak * 2
    @stop_count = 0
    straighten
  end
  #--------------------------------------------------------------------------
  # * Turn Down
  #--------------------------------------------------------------------------
  def turn_down
    set_direction(2)
  end
  #--------------------------------------------------------------------------
  # * Turn Left
  #--------------------------------------------------------------------------
  def turn_left
    set_direction(4)
  end
  #--------------------------------------------------------------------------
  # * Turn Right
  #--------------------------------------------------------------------------
  def turn_right
    set_direction(6)
  end
  #--------------------------------------------------------------------------
  # * Turn Up
  #--------------------------------------------------------------------------
  def turn_up
    set_direction(8)
  end
  #--------------------------------------------------------------------------
  # * Turn 90� Right
  #--------------------------------------------------------------------------
  def turn_right_90
    case @direction
    when 2;  turn_left
    when 4;  turn_up
    when 6;  turn_down
    when 8;  turn_right
    end
  end
  #--------------------------------------------------------------------------
  # * Turn 90� Left
  #--------------------------------------------------------------------------
  def turn_left_90
    case @direction
    when 2;  turn_right
    when 4;  turn_down
    when 6;  turn_up
    when 8;  turn_left
    end
  end
  #--------------------------------------------------------------------------
  # * Turn 180�
  #--------------------------------------------------------------------------
  def turn_180
    case @direction
    when 2;  turn_up
    when 4;  turn_right
    when 6;  turn_left
    when 8;  turn_down
    end
  end
  #--------------------------------------------------------------------------
  # * Turn 90� Right or Left
  #--------------------------------------------------------------------------
  def turn_right_or_left_90
    case rand(2)
    when 0;  turn_right_90
    when 1;  turn_left_90
    end
  end
  #--------------------------------------------------------------------------
  # * Turn at Random
  #--------------------------------------------------------------------------
  def turn_random
    case rand(4)
    when 0;  turn_up
    when 1;  turn_right
    when 2;  turn_left
    when 3;  turn_down
    end
  end
  #--------------------------------------------------------------------------
  # * Turn toward Player
  #--------------------------------------------------------------------------
  def turn_toward_player
    sx = distance_x_from_player
    sy = distance_y_from_player
    if sx.abs < sy.abs                    # Horizontal distance is longer
      sx < 0 ? turn_left : turn_right
    elsif sx.abs > sy.abs                # Vertical distance is longer
      sy < 0 ? turn_up : turn_down
    end
  end
  #--------------------------------------------------------------------------
  # * Turn away from Player
  #--------------------------------------------------------------------------
  def turn_away_from_player
    sx = distance_x_from_player
    sy = distance_y_from_player
    if sx.abs < sy.abs                    # Horizontal distance is longer
      sx < 0 ? turn_right : turn_left
    elsif sx.abs > sy.abs                # Vertical distance is longer
      sy < 0 ? turn_down : turn_up
    end
  end
  #--------------------------------------------------------------------------
  # * Change Graphic
  #    character_name  : new character graphic filename
  #    character_index : new character graphic index
  #--------------------------------------------------------------------------
  def set_graphic(character_name, character_index)
    @tile_id = 0
    @character_name = character_name
    @character_index = character_index
  end
end


1ere news Screens
Et pour finir, des screens tout frais tout beaux !


1ere news Je_mets_de_la_nei...routjari-44ccc96 Par Nemau
1ere news Separation2
1ere news 160681Screen1 Par Eri
1ere news Separation2
1ere news 2mz9zkn Par Sephiroth77"
Ephy
Ephy

Messages : 32
Date d'inscription : 28/03/2014

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum