我很早以前就開始使用Python和SDL2來編程我的心理實驗。因此,我的問題可能很基本。 我想創建一個填充兩種不同顏色的隨機像素的正方形,並將其顯示在屏幕中間。我設法創建了這個像素方塊並顯示它,但創建它需要一秒鐘的時間。因此,我想早些時候創建像素平方,即在參與者被其他事物佔據的時刻,然後再顯示它。 我想過使用SDL_CreateRenderer(window,-1,0)兩次,但我無法做到這一點。有沒有一種簡單的方法來解決我的問題?也許可以將創建的像素平方保存到文件中,然後再加載它?這就是我如何創建我的像素的正方形:創建像素正方形並稍後呈現
def put_pixel(x,y, color):
pixel = SDL_Rect(x, y,1,1)
if color == "orange":
SDL_SetRenderDrawColor(sdlRenderer,255,100,0,255)
elif color == "blue":
SDL_SetRenderDrawColor(sdlRenderer,0,100,255,255)
SDL_RenderFillRect(sdlRenderer,pixel)
return sdlRenderer
def pixel_square(n_pixel_x,n_pixel_y, n_pixel_blue):
seq = range(n_pixel_x*n_pixel_y)
random.shuffle(seq)
lst = range(n_pixel_x*n_pixel_y)
pos=0
for i in range(n_pixel_x):
for j in range(n_pixel_y):
lst[seq[pos]] = [i,j]
pos = pos+1
#create orange square
square_orange=SDL_Rect(MAXX/2-n_pixel_x/2,MAXY/2-n_pixel_y/2,n_pixel_x,n_pixel_y)
SDL_SetRenderDrawColor(sdlRenderer,255,100,0,255) #orange
SDL_RenderFillRect(sdlRenderer,square_orange)
#add blue pixels
for i in range(n_pixel_blue):
put_pixel(x=MAXX/2-n_pixel_x/2+lst[i][0], y=MAXY/2-n_pixel_y/2+lst[i][1], color="blue")
return sdlRenderer
後來我用
SDL_RenderPresent(sdlRenderer)
顯示像素的正方形。
如果你能幫我解決這個問題,我會很高興的! 謝謝! Vero