Toon Verstraelen a écrit :
Hi,
I noticed that the current version of Wormux behaves a bit strange
when a level is smaller than the window. Another thing I noticed when
designing a new level: The background is always scrolled a bit slower,
which is a nice effect, but a part of the background is not used if it
is too big. The amount of slowdown can unfortunately not be
controlled. I've been poking around a bit in the code and would like
to suggest a few changes that might resolve the issues above:
* A black margin around the map when the sky and/or the ground are too
small. The interface elements don't have to respect these margins.
There is already a black margin when map size is smaller than the screen
resolution.
* The sky is scrolled in such a way that the both left sides of the
ground and the map coincide when one scrolls completely to the left of
a level. The same goes for the right side. This way a level-designer
can control the amount of slowdown for the scrolling of the sky, by
resizing the sky image.
Ok, it seems the good idea ;-)
For the implementation, the following steps might be taken:
1) keep all the information about the margin and the remaining
viewport in the camera object
2) Add a Camera::Reset that is called from Map::Reset, for updating
this margin and viewport information.
3) Write a sort of Camera::DrawMargin
4) Call this method from GameLoop::Draw after all level elements have
been drawn, but before any interface elements are drawn.
5) Rewrite the scrolling behavior in Sky and Camera
Does anyone have other/additional ideas about this? Is it worth
implementing?
What does exactly the method Camera::Refresh exactly do? Is it related?
I can not answer what Camera::Refresh without "reverse-engineering" the
code ;-) But your idea seems good, please be free to code and send the
patch, and why not to commit in the svn ;-) As I explain in a previous
mail, we are currently not enough active developpers!
Bye,
Matt
_______________________________________________
Wormux-dev mailing list
Wormux-dev@gna.org
https://mail.gna.org/listinfo/wormux-dev