我在 c 旁邊使用 SDL 我想構建一個簡單的游戲,其中小點在螢屏中移動我試圖使用 for 回圈但我沒有幫助,因為軌跡存在所以我如何在螢屏上移動一個點是我的代碼:
#include <stdio.h>
#include <unistd.h>
#include <stdbool.h>
#include <time.h>
#include <malloc.h>
#include <math.h>
#include "SDL/include/SDL.h"
#include "SDL/include/SDL_render.h"
#define WIDTH 800.0f
#define HEIGHT 600.0f
int main()
{
bool quit = false;
SDL_Event event;
// init SDL
SDL_Init(SDL_INIT_VIDEO);
SDL_Window * window = SDL_CreateWindow("SDL2 line drawing",
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, WIDTH, HEIGHT, 0);
SDL_Renderer * renderer = SDL_CreateRenderer(window, -1, 0);
// handle events
while (!quit)
{
SDL_Delay(10);
SDL_PollEvent(&event);
switch (event.type)
{
case SDL_QUIT:
quit = true;
break;
}
SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
SDL_RenderClear(renderer);
SDL_SetRenderDrawColor(renderer, 255, 255, 255, 255);
SDL_RenderDrawLine(renderer, 100, 100, 500, 500);
/*for (int i = 0; i < 100; i ) {*/
/*SDL_RenderDrawPoint(renderer, 150 i, 150);*/
/*sleep(1);*/
/*SDL_RenderPresent(renderer);*/
/*}*/
// render window
SDL_RenderPresent(renderer);
}
// cleanup
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
我想要發生的是改變其在螢屏上的位置的點如何洗掉該點并將其重新繪制在螢屏上的其他位置?
uj5u.com熱心網友回復:
為每個渲染您的點一次while (!quit),而不是為您想要設定影片的整個運動渲染100 次。您注釋的代碼的方式是您獲得每個回圈中的所有 100 個位置,即每個SDL_RenderClear(renderer);.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/379864.html
