←3DSのHBL用アプリ開発 トップへ

タッチスクリーンのタッチ位置を取得する

タッチスクリーンを使ってタッチした位置を取得します。

最終更新:2017/05/18




はじめに


タッチスクリーンは、画面に直接触れて直感的に操作が出来るので、便利な入力デバイスです。これを使いこなせるようになると便利です。
※タッチパネルとタッチスクリーンの違いは、入力デバイスのみか、液晶画面+入力デバイスかの違いです。

タッチ位置を取得する


タッチ位置を取得するのは簡単で、hidTouchRead関数を使うだけでできます。
hidTouchRead関数の引数にはtouchPosition構造体(Point構造体的なもの)へのポインタを指定します。
//touchPosition構造体
typedef struct
{
    u16 px; //X座標
    u16 py; //Y座標
} touchPosition;


サンプル


タッチした位置を出力するサンプルです。
STARTボタンで終了。

#include <3ds.h>
#include <stdio.h>
int main(int argc, char **argv) {
    gfxInitDefault();
    consoleInit(GFX_TOP, NULL);
    printf ("Please touch the screen.\n");
    touchPosition tp;
    while (aptMainLoop()) {
        hidScanInput();
        
        hidTouchRead(&tp);//タッチ位置を読み取る
        unsigned int key = hidKeysDown();
        if (key & KEY_TOUCH)//タッチ
            printf("Touch / X=%3d Y=%3d\n", tp.px, tp.py);
        
        if (key & KEY_START) break;//終了
        gfxFlushBuffers();
        gfxSwapBuffers();
        gspWaitForVBlank();
    };
    gfxExit();
    return 0;
};
実行結果↓
Sample1



[前へ] [次へ]

(C)2017 InoueSoftware / 無断転載禁止