web-dev-qa-db-ja.com

Pygame:単一ピクセルを描画する

ディスプレイ画面に単一のピクセルを描画できる方法を探しています。たとえば、マウスをクリックしたときに、クリックしたピクセルの位置の色を変えたいと思います。マウス位置の読み方は知っていますが、単純なピクセル描画を見つけることができませんでした(screen.fillメソッドはありますが、思い通りに動作しません)。

16
ashur

surface.set_at() でこれを行うことができます:

_surface.set_at((x, y), color)
_

pygame.gfxdraw.pixel() を使用することもできます:

_from pygame import gfxdraw
gfxdraw.pixel(surface, x, y, color)
_

ただし、次の警告に注意してください。

EXPERIMENTAL !:このAPIは、今後のpygameリリースで変更または消失する可能性があることを意味します。これを使用すると、コードは次のpygameリリースで壊れます。

あなたは surface.fill() を使って仕事をすることもできます:

_def pixel(surface, color, pos):
    surface.fill(color, (pos, (1, 1)))
_

開始点と終了点を同じにして線を引くこともできます。

_def pixel(surface, color, pos):
    pygame.draw.line(surface, color, pos, pos)
_
32
Gareth Latty

質問に対するより現代的な回答に興味がある人は、 pygame.draw.circle() を使用して、特定の位置(または中心)に単一のピクセルを描画できます。

pygame.draw.circle(surface, color, center, 0)

ドキュメントは具体的に言っています:

radius(intまたはfloat)-中心パラメーターから測定した円の半径、半径0は中心ピクセルのみを描画します

0
falconskull

これを行う1つの方法は、始点と終点が同じ点で線を引くことです。

pygame.draw.line(surface, (255,255,255), (x,y), (x,y))
0
Orestis Zekai