diff --git a/src/main/java/com/fmudanyali/Main.java b/src/main/java/com/fmudanyali/Main.java index 8140f9f..6cf6105 100644 --- a/src/main/java/com/fmudanyali/Main.java +++ b/src/main/java/com/fmudanyali/Main.java @@ -29,7 +29,7 @@ public class Main { if (RestartJVM.restartJVM()) { return; } - + Render.init(); Screen.init(); scenes.push(new Game()); diff --git a/src/main/java/com/fmudanyali/Render.java b/src/main/java/com/fmudanyali/Render.java index 7e59770..f8d0c3f 100644 --- a/src/main/java/com/fmudanyali/Render.java +++ b/src/main/java/com/fmudanyali/Render.java @@ -29,17 +29,28 @@ import static org.libsdl.api.pixels.SDL_PixelFormatEnum.*; import static org.libsdl.api.video.SDL_WindowFlags.*; import static org.libsdl.api.video.SdlVideo.*; import static com.fmudanyali.Screen.*; +import static org.libsdl.api.hints.SdlHintsConst.*; +import static org.libsdl.api.hints.SdlHints.*; +import static org.libsdl.api.render.SdlRender.SDL_RenderSetLogicalSize; public class Render { - public static SDL_Window window = SDL_CreateWindow("SDL Java Test", - SDL_WINDOWPOS_CENTERED(), SDL_WINDOWPOS_CENTERED(), - WIDTH, HEIGHT, SDL_WINDOW_SHOWN); - - public static SDL_Renderer renderer = - SDL_CreateRenderer(Render.window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); - + public static SDL_Window window; + public static SDL_Renderer renderer; public static int bgw, bgh; + public static void init(){ + window = SDL_CreateWindow("DanmakuProject SDL", + SDL_WINDOWPOS_CENTERED(), SDL_WINDOWPOS_CENTERED(), + WIDTH, HEIGHT, SDL_WINDOW_SHOWN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_OPENGL); + + SDL_SetHint(SDL_HINT_RENDER_DRIVER, "opengl"); + SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "2"); + + renderer = + SDL_CreateRenderer(Render.window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC); + + SDL_RenderSetLogicalSize(renderer, Screen.WIDTH, Screen.HEIGHT); + } public static SDL_Texture createBackgroundFromTexture( SDL_Renderer renderer, SDL_Texture texture, int cols, int rows ){ @@ -61,7 +72,7 @@ public class Render { bgh = txh * rows; // Create background texture SDL_Texture background = SDL_CreateTexture( - renderer, SDL_PIXELFORMAT_RGBA32, SDL_TEXTUREACCESS_TARGET, bgw, bgh); + renderer, SDL_PIXELFORMAT_RGBA8888, SDL_TEXTUREACCESS_TARGET, bgw, bgh); // Set render target to background SDL_SetRenderTarget(renderer, background); // Create position rectangle for the texture diff --git a/src/main/java/com/fmudanyali/scenes/Game.java b/src/main/java/com/fmudanyali/scenes/Game.java index ec6dff8..2d56876 100644 --- a/src/main/java/com/fmudanyali/scenes/Game.java +++ b/src/main/java/com/fmudanyali/scenes/Game.java @@ -25,10 +25,12 @@ import static org.libsdl.api.event.SdlEvents.*; import static com.fmudanyali.Render.*; import static org.libsdl.api.keycode.SDL_Keycode.*; import static org.libsdl.api.render.SdlRender.*; +import static org.libsdl.api.error.SdlError.SDL_GetError; public class Game extends Scene { public static boolean exit = false; public static boolean escPressed = false; + public int kek = 0; public Player player = new Player(); @@ -65,6 +67,13 @@ public class Game extends Scene { player.movement(); Screen.scroll(); + /* + ++kek; + if(kek == 60){ + System.out.println(SDL_GetError()); + kek = 0; + } + */ SDL_RenderClear(renderer); SDL_RenderCopy(renderer, Screen.wallpaper, null, null);