私は今中2で最近プログラミングを始めました
ノベルゲームを作っていて
文章を流す際に必要となる キーの押した瞬間だけ反応する関数 を作ろうとしてます
このサイトを参考にしましたが、C++を扱ったことがなくまたC#歴も浅いためC#風に書き換えることができませんでした…
どなたか教えてください…
C#のコンソールアプリケーションとDXLibでノベルゲームを作ってますが
Re: C#のコンソールアプリケーションとDXLibでノベルゲームを作ってますが
ほとんどの人はタイトルがよくわからないと思います。
DxLibは基本的にC++用のライブラリですし、コンソールアプリケーションならば文字だけなので描画用のライブラリはいらないはずですし...
そもそもキーの押した瞬間だけ反応する関数は抜きにして基本的な形は出来ているのでしょうか。
DxLibは基本的にC++用のライブラリですし、コンソールアプリケーションならば文字だけなので描画用のライブラリはいらないはずですし...
そもそもキーの押した瞬間だけ反応する関数は抜きにして基本的な形は出来ているのでしょうか。
- Hiragi(GKUTH)
- 記事: 167
- 登録日時: 14年前
- 住所: 大阪府
- 連絡を取る:
Re: C#のコンソールアプリケーションとDXLibでノベルゲームを作ってますが
DxLibには一応C#版が存在します(機械的に中身を変換しているだけのようですが。)
私はまだC#版DxLibを見ていないので分かりませんが、
質問者様がやりたいのはコンソールアプリケーションで、キーボード入力だけDxLibのモノを使いたいという事ではないでしょうか?
(ノベルゲーならば勿論画像の表示や音楽の再生が必要なのでコンソールで出来るとは思いませんが、)
そうでないとしてもキー入力された瞬間だけを判定するソースコードはこちらのサイトのモノからほんの少し変えるだけでいいと思いますが。
私はまだC#版DxLibを見ていないので分かりませんが、
質問者様がやりたいのはコンソールアプリケーションで、キーボード入力だけDxLibのモノを使いたいという事ではないでしょうか?
(ノベルゲーならば勿論画像の表示や音楽の再生が必要なのでコンソールで出来るとは思いませんが、)
そうでないとしてもキー入力された瞬間だけを判定するソースコードはこちらのサイトのモノからほんの少し変えるだけでいいと思いますが。
だいがくせい!
Re: C#のコンソールアプリケーションとDXLibでノベルゲームを作ってますが
ノベルゲームなら、Console.KeyAvailable と Console.ReadKey() で間にあうような気もしますが、
DxLib 風のキー入力関数って、こういうことでしょうか?
DxLib 風のキー入力関数って、こういうことでしょうか?
using System;
using System.Threading;
using System.Runtime.InteropServices;
class prog
{
[DllImport("user32.dll")]
public static extern short GetAsyncKeyState(int key);
static void GetHitKeyStateAll(int[] key)
{
for (int i = 0; i < 256; ++i)
{
if ((GetAsyncKeyState(i) & 0x8000) != 0)
key[i] = 1;
else
key[i] = 0;
}
}
static void Main(string[] args)
{
int[] key = new int[256];
do
{
GetHitKeyStateAll(key);
if (key[0x20] == 1)
{
Console.WriteLine("スペースキー入力");
Thread.Sleep(500);
continue;
}
if (key[0x58] == 1)
{
Console.WriteLine("X キー入力");
Thread.Sleep(500);
continue;
}
if (key[0x5A] == 1)
{
Console.WriteLine("Z キー入力");
Thread.Sleep(500);
continue;
}
Thread.Sleep(10);
} while (key[0x1b] == 0);
}
}