Connexion
Derniers sujets
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité Aucun
Le record du nombre d'utilisateurs en ligne est de 32 le Mar 1 Avr - 14:29
Statistiques
Nous avons 52 membres enregistrésL'utilisateur enregistré le plus récent est NH
Nos membres ont posté un total de 1058 messages dans 61 sujets
Partenaires
1ere news
Page 1 sur 1
1ere news
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 !
https://moe-making.forumgaming.fr/
Retour aux valeurs sûres avec les derniers jeux de la communauté
Mystic Slayer II
Par Ephy
RPG Maker 2003
RPG / Old School
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...
Topic du premier opus
Téléchargement du premier opus
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...
Topic du projet
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.
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
SUPER
[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:
Première page du topic concerné
Deuxième page du topic
Troisième page du topic
Quatrième page du topic
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.
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 "Passage OFF" 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
Et pour finir, des screens tout frais tout beaux !
Par Nemau
Par Eri
Par Sephiroth77"
Ephy- Messages : 32
Date d'inscription : 28/03/2014
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|
Lun 12 Mai - 14:15 par Moerehn
» Participations
Lun 12 Mai - 14:10 par Moerehn
» Foufoune Intruder
Lun 28 Avr - 10:08 par Terzarok
» Projet de loi lié à la biodiversité
Lun 28 Avr - 10:02 par Terzarok
» kiki le chien zoeb de l'espace
Lun 28 Avr - 9:55 par Terzarok
» Améliorer le site ?
Lun 7 Avr - 16:18 par Kiss_Thunes
» La dernière femme Version 0.7.7 (HENTAI RPG) Déconseillé au moins de 16 ans
Dim 6 Avr - 22:12 par Moerehn
» Blabla de printemps
Jeu 3 Avr - 9:43 par Kiss_Thunes
» Miduki entre les RPG et le Hentai
Mer 2 Avr - 19:02 par Knawaiii!!!