Hello,
I’m developping under SDL2 ( On Linux ),
First, to follow what that I will say:
I created a struct TileMap, this struct ( with my algorithm ) create a 2D map of 20x20 blocks ( each block is 32x32 px )
So, I have a problem using the SDL_GetTicks:
I created a variable: “int currTime = 0;”
In my main while, at the begin, I do: “currTime = SDL_GetTicks();”,
I don’t have any problems during the compiling, but when I’m running the output file ( “./a.out” ), my 32 firsts pixels are not displayed with my texture, but with the default color of my background ( white in fact ).
So, for resume: my first line of TileMap is remplace by the color of my background…
I’m sure that is SDL_GetTicks the problem because I tried to remove line by line the code that I added, and when I’m removing the “currTime = SDL_GetTicks();” line, the problem disappears… I also tried to move this line to the end of my while loop, but the problem is still here…
What is the problem ? Why do I have this ?
( P.S: I already had a similar problem with some other lines, but that was because I do an error on these line, but here, I follow a tutorial on YouTube for handling FPS… )
Sorry for my english, I’m french…
Thanks,
Innocent1
I have to do a modification of what I said:
Following the SDL Wiki, I retried:
At the end of my main while loop, if I just let: “currTime = SDL_GetTicks();” the problem disappears, but if I create a “if” condition just after this line, the problem come back again…
Explain:
In my “if” block, if I put: “if(currTime > lastTime + 1000)” ( as on the wiki ), the problem come back.
But, if I do: “if(1 == 1)” ( for testing ) the problem disappears…
Innocent1
Sorry, but it’s a bit hard to understand what exactly it is you’re trying to do.
Do you have issues rendering your tilemap or do you have issues with moving one/multiple object(s) based on the framerate/FPS? Or maybe both issues?
Regardless of the issue(s) you’re having with your code/game/application, it’s always good to show some code and someone here might be able to spot some error(s) in it.
Hi Daniel1985,
Sorry for the long time for my reply,
I will try to explain you my problem exactly:
When I put the line of code: “currTime = SDL_GetTicks();” ( so to get the current time, based on the SDL Wiki ), my window render a line of SCREEN_WIDTHx32 px in white ( = 704x32 px )
I know that hard to represent with words, so this is my code:
( I put main.c and headers.h on a GitHub repository because I can’t upload here because I’m new… )
This is my repository
So please check the code ( The comments are in french, sorry lol )
The SDL_GetTicks() is in the while(isRunning) at his end.
I compile my code like this: "cc main.c sdl2-config --cflags --libs
" ( I’m on linux )
The code that I put in this repository is without the bug.
If you wanna see the bug, just un-comment lines 174 and 175 ( the if statement )
Thanks,
Innocent1
I can sadly not re-create the bug you describe. When I run the application, with line 174 and 175 enabled, no visual bug occur.
See screenshot below:
Whatttt ?
Seriously ? Wow…
Look for me ( With lines 174 and 175 enabled ):
( I can’t upload files… So this is the link )
You see the white band at the top, this is my problem…
I think you tried to do somethings when the window is open, you can click on the green squares with the black dot at his middle. Me, with the white band, I can’t click the first one ( at the top-left corner )
So there is no bug for you ? But why I have this bug…
I’m under Kali Linux 2020, and I don’t have access to a Windows, so I can’t code under Windows, but do you think the problem is Linux ? And if it is, there is a solution ?
Thanks,
Innocent1