UPDATED ISSUEpygameのフルスクリーン表示フラグが画面に対して大きすぎるゲーム画面を作成します
問題は、私は、ウィンドウを作成するためにFULLSCREEN
表示フラグを使用していたという事実であるように思われる私を発見しました。私はスクリー(0、0)の左上に描かれる矩形を追加しましたが、私がプログラムを実行すると、ほとんど画面外です。その後Alt-Tabを押して戻すと、長方形が0,0に適切に配置され、タレットが中心から外れます。
基本的に、プログラムが起動すると、ゲーム画面は実際の画面よりも大きくなりますが、中央に表示されます。その後、Alt-Tabの後、ゲーム画面は0,0で整列されますが、ゲーム画面が自分の画面よりも大きいので、タレットは中心から外れて見えますが、実際にはゲームの中心に配置されます。
実際の質問は、FULLSCREEN
表示フラグを使用すると、画面がコンピュータの画面よりも大きくなるのはなぜですか?
私はそれがどこにある発射するかのようにカーソルの位置を次の画面の中央にタレットの簡単なデモを構築してい
当初発行。 Alt-Tabを押して画面を離れ、Alt-Tabを押すまで、すべてが完全に機能します。この時点でタレットは現在中心から外れています(下方向と右方向)
import pygame, math
pygame.init()
image_library = {}
screen_dimen = pygame.display.Info()
print("Screen Dimensions ", screen_dimen)
def get_image(name):
if name not in image_library:
image = pygame.image.load(name)
image_library[name] = image
else:
image = image_library[name]
return image
robot_turret_image = get_image('robot_turret.png')
screen = pygame.display.set_mode((0, 0), pygame.`FULLSCREEN`)
done = False
clock = pygame.time.Clock()
while not done:
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
if event.type == pygame.MOUSEMOTION:
print(event.pos)
if event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
done = True
screen.fill((0, 0, 0))
pos = pygame.mouse.get_pos()
angle = 360 - math.atan2(pos[1] - (screen_dimen.current_h/2),
pos[0] - (screen_dimen.current_w/2)) * 180/math.pi
rot_image = pygame.transform.rotate(robot_turret_image, angle)
rect = rot_image.get_rect(center=(screen_dimen.current_w/2, screen_dimen.current_h/2))
screen.blit(rot_image, rect)
color = (0, 128, 255)
pygame.draw.rect(screen, color, pygame.Rect(0, 0, 200, 200))
pygame.display.update()
clock.tick(60)
センターがオフになっているようです。私は、Alt-Tabの前と後の画面の寸法をプリントアウトしていて、同じものなので、イメージがなぜ動くのか理解できません。私は、Pygameの状態変化に関する何かを見逃していると思いますが、何が分からないのでしょうか。それが関連している場合は、私は、Windows 10
私はWindows 7でpygame 1.9.2b1(Python 3.4.2)で問題を再現しようとしましたが、できませんでした。どのバージョンのPythonとPygameを使用していますか? –
私はpython 3.5.1とpygame 1.9.2a0を使用しています – The4thIceman