2016-04-25 11 views
0

Ich habe ein einfaches SDL2-Fenster, auf dem ich versuche, einen Pfad zu zeichnen.SDL_RenderDrawLines mit einer Ghost Line

Ich kann zehn Mal klicken und

if (button == SDL_BUTTON_LEFT) 
{ 
    if (Path.size() == Clicks) return; 
    // Clicks is set by the initializer 
    // Path is a vector of SDL_Points 
    SDL_Point p; 
    p.x = x; 
    p.y = y; 
    Path.push_back(p); 
} 
SDL_Point *points = new SDL_Point[Clicks]; 
for (int i = 0; i < Path.size(); i++) 
{ 
    if (i == Clicks) break; 
    points[i] = Path[i]; 
} 
SDL_RenderClear(ren); 
SDL_SetRenderDrawColor(ren, 0, 255, 0, 255); 
SDL_RenderDrawLines(ren, points, Clicks); 

eine Linie mit diesem Code ziehen, der gut arbeitet, erlaubt es mir ohne Frage einen Weg zu zeichnen, aber es schafft eine Art Geisterlinie, fliegt oben auf dem Bildschirm.

Here's a picture of the line.

Gibt es etwas, was ich tun kann loswerden dieser Linie zu bekommen und SDL_RenderDrawLines verwenden? Wenn nicht, welchen Anruf sollte ich verwenden?

Antwort

0

mir sieht es eher wie ein Problem mit den Parametern für SDL_RenderDrawLines()

Haben Sie die Größe points und den Wert von Clicks überprüft?

+0

Ja, die Punkte provozieren jedes Mal, wenn ich auf eins klicke und Clicks behält seine Größe von 10, die ich während der Initialisierung der Klasse gesetzt habe. – rudes

+0

Martin, danke, ich fing an, daran herumzubasteln und fand heraus, dass das Ändern von Clicks in RenderDrawLines in vector.size() es komplett reparierte! – rudes