2016-11-09 4 views
0

私はユーザーが(タッチスクリーン上の)指で画面上の図形を移動できる簡単なプログラムを作成しようとしています。任意のタッチスクリーンをPyGame

これはこれまでのところ私のコードです:

import pygame 


def main(): 
    pygame.init() 
    DISPLAY = pygame.display.set_mode((1000,500),0,32) 
    WHITE = (255,255,255) 
    blue = (0,0,255) 
    DISPLAY.fill(WHITE) 
    pygame.mouse.set_visible(False) 
    pygame.draw.rect(DISPLAY, blue,(480,200,50,250)) 
    pygame.display.update() 
    pygame.mouse.set_pos(480, 200) 
    while True: 
     for event in pygame.event.get(): 
      pos = pygame.mouse.get_pos() 
      pygame.draw.rect(DISPLAY, blue, (pos[0]-25,pos[1], 50, 250)) 
      pygame.display. update() 
      DISPLAY.fill(WHITE) 
main() 

問題は、私は、画面をタッチしたとき、私は私の指を移動するまで、何も起こらないということです。イベントを印刷すると、指を動かすまでイベントがリストされていないことがわかります。それはおそらく理由です。

私は動きが始まる前であっても(私が推測するように)指のプレスを登録できるようにしたいと思いますが、これはPyGameを使用してこれを行うためのものですか?

ありがとうございました。

+0

私はタッチスクリーンについては知らない。しかし、キーボードでゲームをコントロールすると、キーダウンイベントが発生します。たぶん、似たようなものがあります... – Glostas

答えて

1

私はコンピュータのタッチスクリーンを利用して、2種類のイベントを処理することでタッチを非常にうまく管理するゲームを作っています。 1つはpygame.MOUSEMOTIONで、もう1つはpygame.MOUSEBUTTONDOWNです。どちらも属性event.posを含んでいます。問題は、少なくとも私のタッチスクリーン(Lenovo)では、初期タッチがpygameのイベントハンドラによって登録されていないことです。

これは、画面に触れている間にすべてのイベントを端末に印刷することで確認できます。指を離すか、動かすまでは何も得られませんが、リリース時にはpygame.MOUSEBUTTONDOWNのすぐ後にpygame.MOUSEBUTTONUPというイベントが表示されます。

これは実際にあなたの問題を解決するものではありませんが、何らかの形であなたを助けるかもしれません。それ以外の場合は、Kivyをご覧ください。そこに解決策があるかもしれません。

import pygame 

def main(): 
    pygame.init() 
    DISPLAY = pygame.display.set_mode((1000,500),0,32) 
    WHITE = (255,255,255) 
    blue = (0,0,255) 
    DISPLAY.fill(WHITE) 
    pygame.mouse.set_visible(False) 
    pygame.draw.rect(DISPLAY, blue,(480,200,50,250)) 
    pygame.display.update() 
    pygame.mouse.set_pos(480, 200) 
    while True: 
     for event in pygame.event.get(): 
      if event.type == MOUSEBUTTONDOWN or event.type == MOUSEMOTION: 
       pos = event.pos 
      pygame.draw.rect(DISPLAY, blue, (pos[0]-25,pos[1], 50, 250)) 
      pygame.display. update() 
      DISPLAY.fill(WHITE) 
main() 
関連する問題