ありそうでなかったのかも
1 :おのかちお六段錬士:2015/09/19 22:12:08 (9年前) 0.00000001MONA/1人
linux gcc のリアルタイムキー入力関数つくった。
2 :おのかちお六段錬士:2015/09/19 22:14:23 (9年前) 0MONA/0人
http://okwave.jp/qa/q717149.html
これを参考にした。というかまんまとった。
3 :おのかちお六段錬士:2015/09/19 22:15:13 (9年前) 0MONA/0人
/*ここからソースコード*/
#include <stdio.h>
#include <stdlib.h>
#include <sys/ioctl.h>
#include <termios.h>
#include <unistd.h>
int getkey();
struct termio tty_backup;
struct termio tty_change;
4 :おのかちお六段錬士:2015/09/19 22:15:28 (9年前) 0MONA/0人
int getkey(){
char in_char = 0;
char in_char_ret = 0;
char read_byte = 0;
ioctl(0, TCGETA, &tty_backup);
tty_change = tty_backup;
tty_change.c_lflag &= ~(ECHO | ICANON);
tty_change.c_cc[VMIN] = 0;
tty_change.c_cc[VTIME] = 1;
ioctl(0, TCSETAF, &tty_change);
read_byte = read(0, &in_char, 1);
5 :おのかちお六段錬士:2015/09/19 22:15:42 (9年前) 0MONA/0人
if (read_byte == -1) {
ioctl(0, TCSETAF, &tty_backup);
return 1;
}else{
in_char_ret = in_char;
}
in_char = 0x00;
ioctl(0, TCSETAF, &tty_backup);
return in_char_ret;
}
6 :おのかちお六段錬士:2015/09/19 22:18:26 (9年前) 0MONA/0人
/*ここまでソースコード*/
key = getkey();
とかすると、keyに押されたキーの文字が入る。
あとは
if(key == 'a'){
printf("aが押されました。");
}
みたいな感じで。
エンターキーを押す必要が無く、好きな時にキー入力を見にいける。
cuiでfpsゲーつくろうなんてバカな考えに使える。
7 :おのかちお六段錬士:2015/09/19 22:19:47 (9年前) 0MONA/0人
ご自由に使ってどぞ。著作権は完全に放棄。これ俺が作ったとか嘘言いながらみんなに配布してもOK
8 :名無し七段錬士:2015/09/19 23:37:05 (9年前) 0.00025252MONA/1人
まんまとったんなら、あなたが著作権を放棄する云々は言えないと思うんですけど(名推理
9 :おのかちお六段錬士:2015/09/20 08:50:44 (9年前) 0MONA/0人
>>8
それ思ったw
あくまでも自分で作ったことにしてこれの元々の作者の方に確認をとってください。
お気に入り
新規登録してMONAをもらえた
本サイトはAsk Mona 3.0に移行しましたが、登録すると昔のAsk Monaで遊ぶことができます。