[Aide] Map en Isometrique
Bon, j'ai grillé l'arnaque du script : il a pas fait tant que ça le mec.
Dans les mouvements que les persos à le droit, il y en a DEJA 8 à la base dans VX. Il a juste changer les déplacements par case par ceux en diagonale en faites.
( Bon, je dis "il a juste", mais j'y avais pas penser.. xD )
Bon, je continue, même si j'la sens mal...
Quand au script de déplacement 8 directions le Watchinofoye ( je suis pas sur que c'est lui qui l'a posté ), c'est EXACTEMENT le même, version XP... >< J'suis pas dans la m**** , me faudrait un déplacement par pixel pour bien faire.
Dans les mouvements que les persos à le droit, il y en a DEJA 8 à la base dans VX. Il a juste changer les déplacements par case par ceux en diagonale en faites.
( Bon, je dis "il a juste", mais j'y avais pas penser.. xD )
Bon, je continue, même si j'la sens mal...
Quand au script de déplacement 8 directions le Watchinofoye ( je suis pas sur que c'est lui qui l'a posté ), c'est EXACTEMENT le même, version XP... >< J'suis pas dans la m**** , me faudrait un déplacement par pixel pour bien faire.
Ouais, voila, après vérification, c'était Giro, désolé Watch !
Bon, d'après ce que je vois, je suis pas assez "qualifier" pour te faire ton script, mais j'ai tester ça, et c'est exactement les déplacements que tu veux, sauf que.. c'est spécial.
Bref, je te laisse voir en cliquant ici
Bon, d'après ce que je vois, je suis pas assez "qualifier" pour te faire ton script, mais j'ai tester ça, et c'est exactement les déplacements que tu veux, sauf que.. c'est spécial.
Bref, je te laisse voir en cliquant ici
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :
Je l'ai deja testé et il ne supporte pas le mapping en image et panorama (y a un bug et un deplacement de 1 carreau a un moment donnée qui me salope tout le boulot) C'est pourquoi je voulais un script de deplacement exclusivement (si tu peux isoler le script de deplacement du script de mapping en iso ce sera bon)
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :
Mon sauveur, gloire a toi J'attend le resultat final avec impatience...
Bref tu connais deja comment fonctionne le concept d'angle d'iso donc je reviendrai pas dessus par contre j'ai un mini soucis. Je souhaite creer un deplacement nolimit qui permet de se deplacer suivant des coordonnées negatives. Je crois que par defaut le 0-0 c'est la case en haut a gauche, je voulais pouvoir redefinir l'origine pour pouvoir appliquer le deplacemetn (tout en conservant les regles de collision). C'est un des soucis majeur du script de deplacement, a moins que t'ai trouvé une autre solution...j'attend de voir...
edit : ah t'as remarqué aussi, j'ai voulu faire un avatar qui s'eloigne completement du premier pour marquer un changement
Bref tu connais deja comment fonctionne le concept d'angle d'iso donc je reviendrai pas dessus par contre j'ai un mini soucis. Je souhaite creer un deplacement nolimit qui permet de se deplacer suivant des coordonnées negatives. Je crois que par defaut le 0-0 c'est la case en haut a gauche, je voulais pouvoir redefinir l'origine pour pouvoir appliquer le deplacemetn (tout en conservant les regles de collision). C'est un des soucis majeur du script de deplacement, a moins que t'ai trouvé une autre solution...j'attend de voir...
edit : ah t'as remarqué aussi, j'ai voulu faire un avatar qui s'eloigne completement du premier pour marquer un changement
La modification que j'ai fais n'utilise plus le système d'events bizarre et tout ce bordel, mais je vois pas trop de quoi tu parles en faites...
Bref, voila ton code
A nommer comme tu veux ( de base, il s'apelle Isometric(Basic) )
Et pour l'autre, tu peux l'appeller genre Pixel Movement, a mettre en dessous de celui que tu as.
Je viens d'essayer sur ton projet, ça rend pas mal je trouve. Juste qu'il faudrait que tu règles un peu mieux ton système de collisions, car on peut facilement sortir de la map !
Bref, tu me dis ce que t'en pense, et si il y a un truc à changer, je peux toujours tenter, ou un autre.
Bref, voila ton code
A nommer comme tu veux ( de base, il s'apelle Isometric(Basic) )
Code : Tout sélectionner
#=========================================== ===================================
# ■ Scene_Title
#================================================= =============================
class Scene_Title
alias main_orig main
#------------------------------------------------- -------------------------
# ● Loads MapInfos so that Iso map id's can be loaded according to the current map.
#------------------------------------------------- -------------------------
def main
$data_map_info = load_data("Data/MapInfos.rvdata")
main_orig
end
end
#================================================= =============================
# ■ Game_Character
#================================================= =============================
class Game_Character
#------------------------------------------------- -------------------------
# ● Update the position of the characters to the screen according to x,y in isometric
#------------------------------------------------- -------------------------
def screen_x
return ((@real_x - @real_y)/8 + (32 * $game_map.height) - 0 - $game_map.display_x/8) - 16
end
#------------------------------------------------- -------------------------
def screen_y
y = (@real_y + @real_x) / 16 + 24 - $game_map.display_y/8
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
end
class Game_Player < Game_Character
#------------------------------------------------- -------------------------
# * Update Scroll
#------------------------------------------------- -------------------------
def update_scroll(last_real_x, last_real_y)
disp_x = screen_x + $game_map.display_x/8
disp_y = screen_y + $game_map.display_y/8
if CENTER_Y - (8*disp_y - $game_map.display_y) > 0
$game_map.scroll_up(CENTER_Y - (8*disp_y - $game_map.display_y))
end
if CENTER_Y - (8*disp_y - $game_map.display_y) < 0
$game_map.scroll_down(8*disp_y - $game_map.display_y - CENTER_Y)
end
if CENTER_X - (8*disp_x - $game_map.display_x) > 0
$game_map.scroll_left(CENTER_X - (8*disp_x - $game_map.display_x))
end
if CENTER_X - (8*disp_x - $game_map.display_x) < 0
$game_map.scroll_right(8*disp_x - $game_map.display_x - CENTER_X)
end
end
#------------------------------------------------- -------------------------
# * Set Map Display Position to Center of Screen
# x : x-coordinate
# y : y-coordinate
#------------------------------------------------- -------------------------
def center(x, y)
update_scroll(@real_x, @real_y)
end
end
Code : Tout sélectionner
#=========================================== ===================================
# 4 DIRECTIONAL PIXEL MOVEMENT - Player only!
#================================================= =============================
#================================================= =============================
# ● Game_Player
#================================================= =============================
class Game_Player < Game_Character
#------------------------------------------------- -------------------------
# ● Initialize
#------------------------------------------------- -------------------------
alias gc_pix_init initialize
def initialize
gc_pix_init
@x = 0.0
@y = 0.0
@real_x = 0.0
@real_y = 0.0
@inc_steps = 0
end
#------------------------------------------------- -------------------------
# * Increase Steps
#------------------------------------------------- -------------------------
alias gc_pix_inc_stps increase_steps
def increase_steps
if @inc_steps >= 4
gc_pix_inc_stps
@inc_steps = 0
else
@inc_steps += 1
end
end
#------------------------------------------------- -------------------------
# * Move Down
# turn_ok : Allows change of direction on the spot
#------------------------------------------------- -------------------------
def move_down(turn_ok = true)
if passable?(@x.to_i, @y.to_i+1) # Passable
turn_down
@y += 1.0/8
@real_y = (@y-1.0/6)*256
increase_steps
@move_failed = false
else # Impassable
if @y < @y.to_i+1-(1.0/4) #if there is still area to move but next square is impassable
turn_down
@y += 1.0/8
@real_y = (@y-1.0/6)*256
increase_steps
@move_failed = false
return
end
turn_down if turn_ok
check_event_trigger_touch(@x.to_i, @y.to_i+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.to_i-1, @y.to_i) # Passable
turn_left
@x -= 1.0/4
if $game_map.loop_horizontal?
@y += $game_map.width
@y %= $game_map.width
end
@real_x = (@x+1.0/4)*256
increase_steps
@move_failed = false
else # Impassable
if @x.to_i < @x #if there is still area to move but next square is impassable
turn_left
@x -= 1.0/4
if $game_map.loop_horizontal?
@y += $game_map.width
@y %= $game_map.width
end
@real_x = (@x+1.0/4)*256
increase_steps
@move_failed = false
return
end
turn_left if turn_ok
check_event_trigger_touch(@x.to_i-1, @y.to_i) # 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.to_i+1, @y.to_i) # Passable
turn_right
@x += 1.0/4
if $game_map.loop_horizontal?
@y += $game_map.width
@y %= $game_map.width
end
@real_x = (@x-1.0/4).to_f*256
increase_steps
@move_failed = false
else # Impassable
if @x < @x.to_i+1-(1.0/4) #if there is still area to move but next square is impassable
turn_right
@x += 1.0/4
if $game_map.loop_horizontal?
@y += $game_map.width
@y %= $game_map.width
end
@real_x = (@x-1.0/4).to_f*256
increase_steps
@move_failed = false
return
end
turn_right if turn_ok
check_event_trigger_touch(@x.to_i+1, @y.to_i) # 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.to_i, @y.to_i-1) # Passable
turn_up
@y -= 1.0/4
if $game_map.loop_vertical?
@y += $game_map.height
@y %= $game_map.height
end
@real_y = (@y+1.0/4)*256
increase_steps
@move_failed = false
else # Impassable
if @y.to_i < @y #if there is still area to move but next square is impassable
turn_up
@y -= 1.0/4
if $game_map.loop_vertical?
@y += $game_map.height
@y %= $game_map.height
end
@real_y = (@y+1.0/4)*256
increase_steps
@move_failed = false
return
end
turn_up if turn_ok
check_event_trigger_touch(@x.to_i, @y.to_i-1) # Touch event is triggered?
@move_failed = true
end
end
#------------------------------------------------- -------------------------
# * Determine if Same Position Event is Triggered
# triggers : Trigger array
#------------------------------------------------- -------------------------
def check_event_trigger_here(triggers)
return false if $game_map.interpreter.running?
result = false
for event in $game_map.events_xy(@x.to_i, @y.to_i)
if triggers.include?(event.trigger) and event.priority_type != 1
event.start
result = true if event.starting
end
end
return result
end
#------------------------------------------------- -------------------------
# * Determine if Front Event is Triggered
# triggers : Trigger array
#------------------------------------------------- -------------------------
def check_event_trigger_there(triggers)
return false if $game_map.interpreter.running?
result = false
front_x = $game_map.x_with_direction(@x.to_i, @direction)
front_y = $game_map.y_with_direction(@y.to_i, @direction)
for event in $game_map.events_xy(front_x, front_y)
if triggers.include?(event.trigger) and event.priority_type == 1
event.start
result = true
end
end
if result == false and $game_map.counter?(front_x, front_y)
front_x = $game_map.x_with_direction(front_x, @direction)
front_y = $game_map.y_with_direction(front_y, @direction)
for event in $game_map.events_xy(front_x, front_y)
if triggers.include?(event.trigger) and event.priority_type == 1
event.start
result = true
end
end
end
return result
end
end
Bref, tu me dis ce que t'en pense, et si il y a un truc à changer, je peux toujours tenter, ou un autre.
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :
Huhu, merci grand king
Bien que bon, "travail", c'est surtout repérer les endroits, les isoler, corriger deux trois problèmes qui survenaient quand je supprimais des fonctions inutiles... Mais il m'a fallu du temps pour comprendre ( alors que c'était pas super compliqué en faite >< )
En gros, le personnage se déplace pixel par pixel, exactement dans la lignée des cases de ta map, mais il peut en même temps passer à travers les "cases" vu que c'est du pixel par pixel. Ça permet donc un déplacement plus libre, moins "rpg maker style"
Bien que bon, "travail", c'est surtout repérer les endroits, les isoler, corriger deux trois problèmes qui survenaient quand je supprimais des fonctions inutiles... Mais il m'a fallu du temps pour comprendre ( alors que c'était pas super compliqué en faite >< )
En gros, le personnage se déplace pixel par pixel, exactement dans la lignée des cases de ta map, mais il peut en même temps passer à travers les "cases" vu que c'est du pixel par pixel. Ça permet donc un déplacement plus libre, moins "rpg maker style"
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :
C'est justement ce que je recherchais petit scarabée. Les collisions, j'en fais mon affaire. un bon petit script pourri placé au bon endroit et ca devrai le faire Cependant, j'aurai beaucoup de boulot a partir de maintenant pour les charset et les map iso. Ca va etre zoli zoli. Pense a produire un plateau de tableau pour ton perso ca vaut pour tout le monde Pendant ce temps moi j'ai synthetise toutes les info que j'ai sur format, je rend le tout un minimum coherent je stylise et j'organise les sceance de "pixelizing" !
Ca risque d'etre un peu long mais y aura une petite demo graphic-system magic system(?) samedi ou lundi (j'ai fixé une date a titre indicatif, y a des risques pour que ca sorte plus tard ... ou plus tôt :p)
Ca risque d'etre un peu long mais y aura une petite demo graphic-system magic system(?) samedi ou lundi (j'ai fixé une date a titre indicatif, y a des risques pour que ca sorte plus tard ... ou plus tôt :p)
Pfiouuu, j'ai aucune idée pour un plateau je dois t'avouer... Tu m'en demandes trop la ! ( j'ai pas une imagination débordante, dommage pour moi )
J'imagine bien une zone de ce style :
( ouais, je sais, j'adore trop Soul Eater xD mais le look de la scène est assez bien foutu, ça fais "monde dévasté", mais j'arrive pas à m'en faire un plateau )
J'imagine bien une zone de ce style :
( ouais, je sais, j'adore trop Soul Eater xD mais le look de la scène est assez bien foutu, ça fais "monde dévasté", mais j'arrive pas à m'en faire un plateau )
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :
Je vois le genre. je verrai ce que ca donne in game... je vais voir ce que je pourrai "modeliser"...
edit : Poste moi ca dans la section approprié s'il te plait et dans les regles. Pour que je puisse y voir un peu plus clair.
edit: ok je viens de tester le script. Joli boulot. Les evenements sont affectés, c'est pour ca qu'il y a un probleme je vais redefenir le tableau de positionnement au moment de bosser. Tu as conservé la gestion de l'altitude dans les deplacements ?
edit : Poste moi ca dans la section approprié s'il te plait et dans les regles. Pour que je puisse y voir un peu plus clair.
edit: ok je viens de tester le script. Joli boulot. Les evenements sont affectés, c'est pour ca qu'il y a un probleme je vais redefenir le tableau de positionnement au moment de bosser. Tu as conservé la gestion de l'altitude dans les deplacements ?
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :
Je vais voir ce que ça donne mais je suis pas sur que tu l'ais conservé mais rassure toi, le modèle final est stable c'est déjà ça (je pense d'ailleurs que c'était cette gestion de l'altitude qui provoquait le bug que j'observait lors de mes essai de stabilisation. Je vous tiens au courant.
bref, le modèle de dessin final es au point, pensez a revisiter les topics de préparations du projet...
bref, le modèle de dessin final es au point, pensez a revisiter les topics de préparations du projet...
Ha bah tant mieux alors, content d'avoir pu t'aider =)
Ouaip, j'pense aussi qui avait un truc qui gênait avec cette gestion, le perso se décalait quand tu passais au dessus d'un certain point, mais ça le fait plus, donc ça va. :p
Et désolé de répondre si tard, j'avais pas vu que t'avais édité ton post en faites. ><
Ouaip, j'pense aussi qui avait un truc qui gênait avec cette gestion, le perso se décalait quand tu passais au dessus d'un certain point, mais ça le fait plus, donc ça va. :p
Et désolé de répondre si tard, j'avais pas vu que t'avais édité ton post en faites. ><
Aaaalors , j'arrive un peu aprés la bataille ... (pas assez pour que ce soit un necropost quand meme)
Mais de l'iso , je sais en faire .
Le script qui convient est le GTBS (gubid's tactical battle system) :
http://www.rpgmakervx-fr.com/t8153-gtbs-v15
(rechercher par google si ce site ne vous est pas accessible)
Ici , c'est la version VX mais ça existe pour XP aussi .
Et oui , je sais , le nom a pas l'air d'etre un script iso .
Mais il y a une partie iso inclu dans ce script qui permet non seulement de faire des combats tactiques en iso mais aussi des deplacements normaux .
histoire de montrer que j'affabule pas , un de mes tests avec des ressources custo :
http://www.servimg.com/image_preview.ph ... u=11592352
http://www.servimg.com/image_preview.ph ... u=11592352
Avec ce TileA5 :
http://www.servimg.com/image_preview.ph ... u=11592352
LE gros soucis de ce script : les paralaxes ne bougent pas bien donc le mapping en panorama n'est pas possible .
Mais de l'iso , je sais en faire .
Le script qui convient est le GTBS (gubid's tactical battle system) :
http://www.rpgmakervx-fr.com/t8153-gtbs-v15
(rechercher par google si ce site ne vous est pas accessible)
Ici , c'est la version VX mais ça existe pour XP aussi .
Et oui , je sais , le nom a pas l'air d'etre un script iso .
Mais il y a une partie iso inclu dans ce script qui permet non seulement de faire des combats tactiques en iso mais aussi des deplacements normaux .
histoire de montrer que j'affabule pas , un de mes tests avec des ressources custo :
http://www.servimg.com/image_preview.ph ... u=11592352
http://www.servimg.com/image_preview.ph ... u=11592352
Avec ce TileA5 :
http://www.servimg.com/image_preview.ph ... u=11592352
LE gros soucis de ce script : les paralaxes ne bougent pas bien donc le mapping en panorama n'est pas possible .
-
- Koruldia Master
- Messages : 1192
- Localisation : Au centre d'un univers inconstant
- Contact :