Forum Solarus-Games francophone

Jeux amateurs => Aide & support => Discussion démarrée par: MetalZelda le 27 Août 2015 à 19:05

Titre: [Résolu]Problème avec le Overlay
Posté par: MetalZelda le 27 Août 2015 à 19:05
Bonjour

Avant toute chose je tiens à préciser que je tourne sur l'editeur 1.4.2 ainsi que la dernière maj de solarus, le problème que je rencontre (et dont j'ai un peu de mal a voir) c'est l'overlay, j'ai repris ton script dans tes tuto Chris (de l'overlay qui scroll) mais au bout d'un moment l'image se coupe, bizzarement 1 fois sur 10 lorsqu'on va tout en haut à gauche de la map l'overlay se met a glitch (apparition et disparition)

Vidéo du glitch
https://www.youtube.com/watch?v=SzvLxQLeucA&feature=youtu.be

Le script en question

local map = ...
local game = map:get_game()

map.overlay_angles = {
 7 * math.pi / 4
}
map.overlay_step = 1

function map:set_overlay()

 map.overlay = sol.surface.create("fogs/overworld_smallcloud.png")
 map.overlay:set_opacity(96)
 map.overlay_m = sol.movement.create("straight")
 map.restart_overlay_movement()

end

function map:restart_overlay_movement()

 map.overlay_m:set_speed(16)
 map.overlay_m:set_max_distance(100)
 map.overlay_m:set_angle(map.overlay_angles[map.overlay_step])
 map.overlay_step = map.overlay_step + 1
 if map.overlay_step > #map.overlay_angles then
   map.overlay_step = 1
 end
 map.overlay_m:start(map.overlay, function()
   map:restart_overlay_movement()
 end)

end

function map:on_started(destination)

 map:set_overlay()

end

function map:on_draw(destination_surface)

 -- Make the overlay scroll with the camera, but slightly faster to make
 -- a depth effect.
 local camera_x, camera_y = self:get_camera_position()
 local overlay_width, overlay_height = map.overlay:get_size()
 local screen_width, screen_height = destination_surface:get_size()
 local x, y = camera_x, camera_y
 x, y = -math.floor(x), -math.floor(y)

 -- The overlay's image may be shorter than the screen, so we repeat its
 -- pattern. Furthermore, it also has a movement so let's make sure it
 -- will always fill the whole screen.
 x = x % overlay_width - 2 * overlay_width
 y = y % overlay_height - 2 * overlay_height

 local dst_y = y
 while dst_y < screen_height + overlay_height do
   local dst_x = x
   while dst_x < screen_width + overlay_width do
     -- Repeat the overlay's pattern.
     map.overlay:draw(destination_surface, dst_x, dst_y)
     dst_x = dst_x + overlay_width
   end
   dst_y = dst_y + overlay_height
 end

end


Merci a ceux qui trouveront le probleme
Titre: Re : [Solarus]Problème avec le Overlay
Posté par: MetalZelda le 28 Août 2015 à 16:12
Edit, resolu, j'avais mal vu le code  :mrgreen:
Sauf le bug d'affichage, je sais pas d'ou ca vient  :huh:
Titre: Re : [Solarus]Problème avec le Overlay
Posté par: Christopho le 28 Août 2015 à 16:57
C'est quoi le bug d'affichage exactement ?
Sur la vidéo, le problème que je vois c'est que vers la fin de la vidéo l'overlay ne se répète pas.
Titre: Re : Re : [Solarus]Problème avec le Overlay
Posté par: MetalZelda le 28 Août 2015 à 17:10
Citation de: Christopho le 28 Août 2015 à 16:57
C'est quoi le bug d'affichage exactement ?
Sur la vidéo, le problème que je vois c'est que vers la fin de la vidéo l'overlay ne se répète pas.

Je dirais plus que c'est un clipping, etrangement quand ca arrive l'éditeur plante quand je ferme la fenêtre du jeu, ptetre du a autre chose mais je signale quand meme ^^

https://www.youtube.com/watch?v=GR87RxJYuDE&feature=youtu.be