強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2010年12月12日

[]Joystickの入力を取得する

Joystickの入力を取得するサンプルです。PygameのJoystickモジュールを使って作っています。Joystickはもちろん各種ゲームパッド(ゲームコントローラ)の入力データを取得出来ます。

最近ではMac対応を明記したものはゲームパッドはほとんど売られてないません。しかし、明記してなくても動作するものも多いです。

取り敢えず、自分のMac OS 10.6.4(Snow Leopard)、MacBookの環境で以下のゲームパッドで、入力データを取得する事が出来ました。

プログラムはこちら

#! /usr/bin/env python
# coding: utf-8
# coding=utf-8
# -*- coding: utf-8 -*-
# vim: fileencoding=utf-8
import pygame
from pygame.locals import *

SCREEN_WIDTH = 640
SCREEN_HEIGHT = 480

pygame.joystick.init()
try:
    j = pygame.joystick.Joystick(0) # create a joystick instance
    j.init() # init instance
    print 'Joystickの名称: ' + j.get_name()
    print 'ボタン数 : ' + str(j.get_numbuttons())
except pygame.error:
    print 'Joystickが見つかりませんでした。'

def main():
    pygame.init()
    screen = pygame.display.set_mode( (SCREEN_WIDTH, SCREEN_HEIGHT) ) # 画面を作る
    pygame.display.set_caption('Joystick') # タイトル
    pygame.display.flip() # 画面を反映

    while 1:
        for e in pygame.event.get(): # イベントチェック
            if e.type == QUIT: # 終了が押された?
                return
            if (e.type == KEYDOWN and
                e.key  == K_ESCAPE): # ESCが押された?
                return
            # Joystick関連のイベントチェック
            if e.type == pygame.locals.JOYAXISMOTION: # 7
                x , y = j.get_axis(0), j.get_axis(1)
                print 'x and y : ' + str(x) +' , '+ str(y)
            elif e.type == pygame.locals.JOYBALLMOTION: # 8
                print 'ball motion'
            elif e.type == pygame.locals.JOYHATMOTION: # 9
                print 'hat motion'
            elif e.type == pygame.locals.JOYBUTTONDOWN: # 10
                print str(e.button)+'番目のボタンが押された'
            elif e.type == pygame.locals.JOYBUTTONUP: # 11
                print str(e.button)+'番目のボタンが離された'

if __name__ == '__main__': main()
# end of file

参考サイト

Pygame入門

http://www.halb-katze.jp/pygt/

joystick - Pygame Documentation

http://www.pygame.org/docs/ref/joystick.html#Joystick.get_numbuttons

Re: [pygame] joystick example

http://archives.seul.org/pygame/users/Sep-2005/msg00132.html

Macでゲームパッドの使用についてのエントリー一覧はこちら

nakamura001 @ ウィキ - トップページ/Mac/ゲームパッド(Joystick)

http://www32.atwiki.jp/nakamura001/pages/111.html

孔明孔明 2014/06/14 14:21 こんにちは
突然ですが、教えていただきたいことがあります。
貴方のこの記事を読んで、自分もArchLinuxにpygameを入れようとしたのですが、pacmanからpython2-pygaemをインストールしても、動作しません。
貴方はどのようにしてpygameを入れたのか教えていただけると幸いです。
敬具

nakamura001nakamura001 2014/06/14 16:38 インストールしたのは昔のことなのではっきりとは覚えていないのですがPygameの公式サイトからインストールしたか、Mac向けのパッケージ管理ソフトのMacPortsでインストールしたかのどちらかだっと思います。

後、ゲームパッド自体がちゃんと対応しているかどうか(ドライバが対応しているかなど)もチェックしてみた方が良いかもしれません。Pygameのサイトの中からゲームパッドに対応しているゲームをダウンロードして事前にテストしておくと良いでしょう。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。