2014-12-30 5 views
0

저는 pygame을 사용하는 간단한 프로젝트에서 작업 중이며 픽셀 색상을 가져오고 설정해야합니다. pygame.get_at(())pygame.set_at(())을 사용하는 것은 매우 느립니다.빠른 게임에서 픽셀 색상을 얻고 설정하는 방법

그래서 PixelArray를 사용하여 수동으로 색상을 가져오고 설정하려고했습니다. 그러나 이것은 여전히 ​​매우 느립니다.

훨씬 빠른 방법이 있습니까?

C++에서 픽셀을 가져오고 설정할 수있는 funtion을 만드는 것이 가능합니까? 더 빠를 것이거나 python/pygame에서이를 수행하는 방법이 있습니까? 예를 들어

: 주어진 소정의 색 좌표계에서 픽셀을 설정 주어진 좌표 및 다른 기능의 픽셀 컬러를 반환

는 C++ 기능.

그러면 파이 게임에서 이러한 함수를 어떻게 든 호출 할 수 있습니다.

대단히 감사합니다. 지정된 좌표

COLORREF GetPixel(
    _In_ HDC hdc, 
    _In_ int nXPos, 
    _In_ int nYPos 
); 

에서 픽셀의

COLORREF SetPixel(
    _In_ HDC hdc, 
    _In_ int X, 
    _In_ int Y, 
    _In_ COLORREF crColor 
); 

반환 색 색 좌표에서 window.h 라이브러리

설정 픽셀의

+0

에서 컬러

Uint32 rawpixel = getpixel(surface, x, y); Uint8 red, green, blue; SDL_GetRGB(rawpixel, surface->format, &red, &green, &blue); 

와 setPixel를 가져 오기? –

+0

올바른 (내 문제를 해결하는 가장 빠른 방법 인 경우). 얻을 수있는 빠른 방법을 파이 게임 화면에 –

+0

이 도움이 될 픽셀 색을 설정해야합니다 - http://stackoverflow.com/questions/4241415/import-c-function-into-python-program –

답변

0

C++와 setPixel 및 getPixel와 기능

부 SDL :

는 좌표

당신은 파이 게임의 내부 C++ 기능을 구현하려는
void setpixel(SDL_Surface *screen, int x, int y, Uint8 r, Uint8 g, Uint8 b) 
{ 
    Uint32 *pixmem32; 
    Uint32 colour; 

    colour = SDL_MapRGB(screen->format, r, g, b); 

    pixmem32 = (Uint32*) screen->pixels + y + x; 
    *pixmem32 = colour; 
} 

Link

+0

Wondeful! 파이 게임 프로그램에 어떻게 이것을 구현할 수 있습니까? –

+0

위의 링크가있는 댓글이 표시되어야합니다 –

+0

왜 downvote? –

관련 문제