[RMSK3] I AM AT MY WITS END
Posts
Pages:
1
(I have scoured google, and my search proved fruitless)
I'm trying to create parallax scrolling with RPG Maker 2003, having two pictures that scroll across the screen at varying speeds to create the illusion of depth. However I just can't seem to get the pictures to scroll perfectly, there's always a giant gap or a 'jump' in the scrolling and it is driving me insane. If there are any pointers anyone could give me It would be greatly appreciated.
This is what I've got in the event editor so far.
And this is the picture I'm using, the dimensions are 640x240
I'm trying to create parallax scrolling with RPG Maker 2003, having two pictures that scroll across the screen at varying speeds to create the illusion of depth. However I just can't seem to get the pictures to scroll perfectly, there's always a giant gap or a 'jump' in the scrolling and it is driving me insane. If there are any pointers anyone could give me It would be greatly appreciated.

This is what I've got in the event editor so far.

And this is the picture I'm using, the dimensions are 640x240
I'd use one as a parallax (you can dictate their movement in the map properties) and use the other as a picture scrolling. That might work.
Hi Pyramid Head,
Because the two pictures are identical in both name and settings, why do you have 2 pictures? If this is a parallel process that is scrolling the pictures, it seems as if you could get rid of picture 2 altogether.
If you would like the two pictures overlaid on top of each other at the same time, you should get rid of the "Wait" option in the picture settings and instead place a Wait of 15 seconds at the end of this code block. However, if the two pictures are identical, this would only be placing two pictures on top of each other and nothing would appear to change.
To create a true parallax, you will need to change the speed at which one of the pictures is scrolling, making it faster or slower than the other picture, depending on the distance of the picture's contents from the player. In your picture settings, it seems as if the speed is the same. (Unless you are also working with a Parallax Background that you haven't shown us.)
I think you will need two parallel processes for this effect: one for Picture 1, and another for Picture 2, to handle the difference in scrolling speeds.
As to the problem of the jumping pictures, have you tried setting the initial Show Picture X to -320? Since the picture is, after all, 640 pixels wide, you would want to scroll the entire picture. If you only scroll it halfway, you are jumping from the middle of the picture to the beginning, where the seam of the picture is probably not matched up to itself as you have drawn it.
I understand why you would only want to scroll it halfway, because if you scroll it the entire length of the picture, it would just be gone on the other end. This is the problem: getting rid of the empty space after you have scrolled your picture properly, as you have drawn it.
The solution to this problem, is to place 2 copies of the picture end-to-end for each parallax layer. Picture 1 would need a picture 1 and picture 2, while Picture 2 would become picture 3 and picture 4. When you use Parallax Background, RPG Maker does this for you automatically—tiling the picture ends together—but here, you will have to do it yourself.
For Picture 1 (or let's call it Layer A), Show Picture 1 at 0 X and Show Picture 2 at -640 X. Then move them both 640 pixels to the right over 15 seconds. Then repeat the process. Do the same for Layer B and Pictures 3 & 4 in a separate parallel process, but since Layer B is closer to the viewer, decrease the scrolling time to, say, 10 seconds.
Because the two pictures are identical in both name and settings, why do you have 2 pictures? If this is a parallel process that is scrolling the pictures, it seems as if you could get rid of picture 2 altogether.
If you would like the two pictures overlaid on top of each other at the same time, you should get rid of the "Wait" option in the picture settings and instead place a Wait of 15 seconds at the end of this code block. However, if the two pictures are identical, this would only be placing two pictures on top of each other and nothing would appear to change.
To create a true parallax, you will need to change the speed at which one of the pictures is scrolling, making it faster or slower than the other picture, depending on the distance of the picture's contents from the player. In your picture settings, it seems as if the speed is the same. (Unless you are also working with a Parallax Background that you haven't shown us.)
I think you will need two parallel processes for this effect: one for Picture 1, and another for Picture 2, to handle the difference in scrolling speeds.
As to the problem of the jumping pictures, have you tried setting the initial Show Picture X to -320? Since the picture is, after all, 640 pixels wide, you would want to scroll the entire picture. If you only scroll it halfway, you are jumping from the middle of the picture to the beginning, where the seam of the picture is probably not matched up to itself as you have drawn it.
I understand why you would only want to scroll it halfway, because if you scroll it the entire length of the picture, it would just be gone on the other end. This is the problem: getting rid of the empty space after you have scrolled your picture properly, as you have drawn it.
The solution to this problem, is to place 2 copies of the picture end-to-end for each parallax layer. Picture 1 would need a picture 1 and picture 2, while Picture 2 would become picture 3 and picture 4. When you use Parallax Background, RPG Maker does this for you automatically—tiling the picture ends together—but here, you will have to do it yourself.
For Picture 1 (or let's call it Layer A), Show Picture 1 at 0 X and Show Picture 2 at -640 X. Then move them both 640 pixels to the right over 15 seconds. Then repeat the process. Do the same for Layer B and Pictures 3 & 4 in a separate parallel process, but since Layer B is closer to the viewer, decrease the scrolling time to, say, 10 seconds.
You could try moving the pictures with variables as coordinates rather than using "move picture".
(parallel process)
set variable 1 (x) = a #starting x position
set variable 2 (y) = b #default y position
label 1
show picture 1 (using variables 1 & 2)
variable 1 (x) - 1
if x coordinate is less than -50 (or whenever it needs to reset)
jump to label 2
else
wait 1
jump to label 1
label 2
or something like that
(parallel process)
set variable 1 (x) = a #starting x position
set variable 2 (y) = b #default y position
label 1
show picture 1 (using variables 1 & 2)
variable 1 (x) - 1
if x coordinate is less than -50 (or whenever it needs to reset)
jump to label 2
else
wait 1
jump to label 1
label 2
or something like that
I'll give that a try infinite.
@Zachary: I'm using two different pictures, but I was experimenting with just the one to try to make it move across the screen smoothly, how I figured was, if I could get it to work with the one picture, I could get it to work with the other.
@Liberty: The parallax background is going to be the clouds, and the two pictures I intent on using, the city skylines.
@Zachary: I'm using two different pictures, but I was experimenting with just the one to try to make it move across the screen smoothly, how I figured was, if I could get it to work with the one picture, I could get it to work with the other.
@Liberty: The parallax background is going to be the clouds, and the two pictures I intent on using, the city skylines.
@Infinite: That's a bad idea because "Show Picture" will then load the picture again from the harddisk tens of times a second which will cause a lag very easily.
@Pyramid_Head: I guess this is a parallel process, and I guess that you suffer from the fact that after your code, before it starts again from the top, there is an implicit 1-frame-long wait (0.0167s).
It should be perfectly fine like this (only 1 picture):
What it does: First it loads the picture from hard disk once, then in a loop it just scrolls it to the left and then puts it back into the original position (without a delay).
(btw you can just select code in the editor and copy it and paste it in here, instead of screenshotting)
@Pyramid_Head: I guess this is a parallel process, and I guess that you suffer from the fact that after your code, before it starts again from the top, there is an implicit 1-frame-long wait (0.0167s).
It should be perfectly fine like this (only 1 picture):
@> Show Picture: 1, 'IntroSkyLine', (320,120), 100%, 0%
@> Loop
@> Move Picture: 1, (0,120), 100%, 0%, @15.0s, Wait
@> Move Picture: 1, (320,120), 100%, 0%, @0.0s
@>
: Repeat Above
What it does: First it loads the picture from hard disk once, then in a loop it just scrolls it to the left and then puts it back into the original position (without a delay).
(btw you can just select code in the editor and copy it and paste it in here, instead of screenshotting)
Pages:
1

















