忍者ブログ
凡人の日々の経過を記録
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。



コンソール上でゲームを作る場合、どうしてもクリアしなくてはいけない問題がある。
それは、キー入力と画面操作。

キー入力には一般にscanfやgetcなどがあるが、これを使用するとそこで処理が止まってしまうので都合が悪い。
そこで、kbhit()とgetch()を利用する。
kbhit()はキー入力がある場合、1を返し、それ以外は0を返すもので、処理は止まらない。

画面操作としては、エスケープシーケンスといったものがある。しかし、WindowsXPの場合は、このエスケープシーケンスによる操作ができないため、代用できるものが必要になる。
画面クリアとしてはsystem( "cls" )を実行する方法がある。
system()関数はコマンドプロンプト上で実行できるコマンドをCプログラム中で書くことができるものである。
コマンドプロンプト上で"cls"と入力すれば画面クリアすることができるので、これを利用する。

以下にプログラム例をのせる

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main( void )
{
char c;
while (1)
{
system( "cls" ); // Clear
if (kbhit() == 1)
{
c = getch();
switch (c)
{
case 0x1b: /* Esc */
case 0x03: /* Ctrl+c */
return 0;
default:
printf( "key : %c\n", c );
}
}
}
}

拍手[0回]

PR


この記事にコメントする
HN:
TITLE:
COLOR:
MAIL:
URL:
COMMENT:
PASS:
この記事へのトラックバック
この記事にトラックバックする:

Powered by 忍者ブログ  Design by © まめの
Copyright © [ ずくのない凡人の日記 ] All Rights Reserved.
http://bambooflow.blog.shinobi.jp/