New to Fuse4-want a Faery Tale Adventure like game
-
-
@tdg8934 It fluctuates. I've had Twitter videos post instantly sometimes as if it didn't even need to upload, and other times it took a while. Same for Facebook. It really varies.
-
I can see this one though. Good stuff.
-
@xevdev ok so my Facebook one probably only is sent to Facebook friends so I’ll use the Twitter approach.
-
All - I’m looking for a way to simulate a sunset. In the game using the frame buffer I would like to know how to make the screen look like the sun is going down or coming up in the morning. I tried the render effect but got a little lost in knowing what values are valid. I want to be able to set a timer so that after a while, the map looks dimmer as the day progresses. Ideas please?
Thank you - Tim
-
There are probably multiple ways of doing this, but one solution could be to draw a black box over the entire screen, and changing the alpha value of the color in order to make it more or less prominent.
-
@vinicity is there an easy way to control the rgba values?
I can create an image with a black box and send it to the frame buffer. Then in the main loop, draw the image But I can’t adjust the rgba values inside of the main loop. Is there some undocumented info about this?
If I wasn’t drawing a map then I could change the rgba values within a. Clear({0,0,0,0.5}) statement.
-
Drawimageex() will do it.
The tint value just set to white and because it's a vector you can times it by another vector
E.g.
White * {1,1,1,1} will be the full colour range
White * {1,0,0,1} will only show the red component.
So just make a global variable
Vector night_day
Or an array of vectors for each time period
And times it by the white component in drawimageex() -
Here's an example of darkening the screen to complete black slowly over the course of 5 minutes.
Of course, that's too dark, and you want it to brighten as the new day approaches, but I'm just breaking it down to one simple task.dayTimer = 0 // initialize to 0 is essentially a disabled timer. dayLength = 300 // seconds long for this timer loop clear() if dayTimer==0 then dayTimer=time() endif // start timer if inactive if time() - dayTimer >= dayLength then dayTimer=0 // stop timer if exceeds time frame //draw black box that gets progressively darker as we approach 300 seconds box( 0, 0, screenWidth, screenHeight, {0,0,0, ( time() - dayTimer ) / daylength }, false) update() repeat
This is pretty much what I do when I want to fade to black or reverse in all of my projects. Some form of this.
-
@xevdev it’s working! Thank you.
“
screenimage1=createimage(1920,1080,true,image_rgba)
serdrawtarget(screeninage1)
box(0,0,1920,1080,black,0)
setdrawtarget(framebuffer)array night_day[1]
night_day[0]={0,0,0,0}//Morning
night_day[1]={0,0,0,0.3}//Afternoon
night_day[2]={0,0,0,0.8)//Evening
night_day[0]={0,0,0,0.99)//Nightloop
:
drawimageex(screenimage1,{960,540},0,{1,1},white*night_day[0],{0,0})
:
Repeat
“ -
I was surprised that worked then I saw that your using the box.
If you just draw the game image using drawimageex()
You can alter the colour spectrum of the image.
{R,g,b,a}
Red component.
Green component.
Blue component.
Alpha transparency component.
Each has a number between 0 and 1
So as your getting closer to night time twilight you might have slightly more red than the green and blue and don't worry about the alpha set to 1
Night_day = {1,0.8,0.8,1}
Or {0.5,0.4,0.4,1}
So the second is half of the first and will be darker. -
You would probably need to think about layers of drawing.
So your game would be one image and your control schemes would be another ( which you already have ) and print the control scheme with no colour adjust last. -
@xevdev this also works The same as you said (without the black box):
//display scale (handheld or hdmi) float descale=0 int width=0 width=gWidth() if width==1280 then descale=2/3 endif If width==1920 then descale=1 endif : g_buffer=createimage(1920,1080,false,image_rgb) : array night_day[1] night_day[0]={0,0,0,0}//Morning night_day[1]={0,0,0,0.3}//Afternoon night_day[2]={0,0,0,0.8)//Evening night_day[0]={0,0,0,0.99)//Night : loop setdrawtarget(g_buffer) clear() //need this! : drawmap() updatesprites() : drawimageex(g_buffer,{960,540},0,{1,1},white*night_day[2],{0,0}) : drawsprites() : setdrawtarget(framebuffer) drawimage(g_buffer,0,0,dscale) : update() Repeat
-
@Jongjungbu I was able to add in your timer into my game along with all of the items I listed to @xevdev . I had to double the length to account for after midnight going into the next morning as the character in the original Faery Tale Adventure (FTA) game did walk around all night getting very tired and stumbling a little as he walked due to being tired while looking for a building with a bed or mat to get some rest.
Only one issue is the ultimate system crash after a minute or two. So tired of crashes with Fuze! I hope 2.15 will come out ASAP
-
You might have a runaway memory leak or array access that Fuze isn't detecting, and so it crashes. I've seen that happen before. It's pretty good about catching invalid array access, but sometimes it will still run despite accessing it out-of-bounds (particularly if it use to be in-bounds), and that may then crash your program.
-
Did the crash use to happen before. If it didn't you may have to move your createimage() so they only happen once.
-
@xevdev yes crashes have been with me for a while. I spent the day narrowing down the areas / functions causing them but when I think I have it after a couple of successful attempts isolating functions, I get a crash the 3rd time.
I think I have it now isolated to both the Character Walk() AND MenuPress() functions. When there commented out in the main loop, I don’t appear to be getting any crashes.
-
If it's a minute or two it would mean that you've got some memory allocation in a loop somewhere. It would be an array or a create function. Ideally you could move all those to the start of your program before any code to manipulate them is called.
If you have the fps meter enabled it will show you a free memory left counter. If that's going down during your game that's a memory leak. All fuze programs currently if stopped do not release all the memory used in a game and this leads to a crash but this takes quite a few runs to achieve. -
ID: Z7573MND51
If you or anyone can check it out. Currently I only have the CharacterWalk() commented out in the main loop. It should crash within a minute or two. If you comment out the other function call MenuPress() it shouldn’t crash.
Thanks. I am not seeing any memory leaks
-
I'll have a look when it becomes live.