質問編集履歴
4
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -229,4 +229,7 @@
|
|
229
229
|
```
|
230
230
|
|
231
231
|
for文を使い編集してみました。3と入力するとどんな映画が好きなんですか?と出ますが、適当に14356と入力すると無反応です。14356をループして3を見つけたら反応すると思ったのですが。
|
232
|
-
[編集したプログラム](https://pastebin.com/PvhwYjH0)
|
232
|
+
[2020/06/20に編集したプログラム](https://pastebin.com/PvhwYjH0)
|
233
|
+
|
234
|
+
|
235
|
+
[2020/06/21に編集したプログラム](https://pastebin.com/mjmsBXXN)
|
3
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -37,7 +37,7 @@
|
|
37
37
|
int rireki = 0;
|
38
38
|
int rireki2 = 0;
|
39
39
|
int LEFTmark = 0;
|
40
|
-
const char* str[2] = { "
|
40
|
+
const char* str[2] = { "どんな映画が好きなんですか?","申し訳ございません! "};//ここで文字を直接書いてるので、この文字のバイト数が各posmozi[]に入るだけ
|
41
41
|
int frame[2] = { 10,10};//次の一文字が出るまでのカウンタとして働いている、ここの数値を変えることで文字が一文字ずつ出るまでの間隔を設定できる。
|
42
42
|
int posmozi[20];//文字のバイト数が入る箱を表している。
|
43
43
|
int countS[2];//次の文字が出るまでのカウントするためのもの
|
@@ -56,7 +56,7 @@
|
|
56
56
|
DrawFormatString(300, 300, (0,0,255), "countS[0]は%d", countS[0]);
|
57
57
|
}
|
58
58
|
|
59
|
-
const char* str2[2] = { "
|
59
|
+
const char* str2[2] = { "どんな映画が好きなんですか?","申し訳ございません! " };//ここで文字を直接書いてるので、この文字のバイト数が各posmozi[]に入るだけ
|
60
60
|
int frame2[2] = { 10,10 };//次の一文字が出るまでのカウンタとして働いている、ここの数値を変えることで文字が一文字ずつ出るまでの間隔を設定できる。
|
61
61
|
int posmozi2[20];//文字のバイト数が入る箱を表している。
|
62
62
|
int countS2[2];//次の文字が出るまでのカウントするためのもの
|
@@ -127,7 +127,7 @@
|
|
127
127
|
|
128
128
|
DrawString(0, 0, input.c_str(), GetColor(255, 255, 255));
|
129
129
|
if (strcmp(input.c_str(), "映画") == 0) {
|
130
|
-
|
130
|
+
// message = "どんな映画が好きなんですか?";
|
131
131
|
konnnitiwasound = LoadSoundMem("line-girl1-konnichiha1.mp3");
|
132
132
|
PlaySoundMem(konnnitiwasound, DX_PLAYTYPE_BACK);
|
133
133
|
|
2
編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,6 +56,25 @@
|
|
56
56
|
DrawFormatString(300, 300, (0,0,255), "countS[0]は%d", countS[0]);
|
57
57
|
}
|
58
58
|
|
59
|
+
const char* str2[2] = { "こんにちわ!","申し訳ございません! " };//ここで文字を直接書いてるので、この文字のバイト数が各posmozi[]に入るだけ
|
60
|
+
int frame2[2] = { 10,10 };//次の一文字が出るまでのカウンタとして働いている、ここの数値を変えることで文字が一文字ずつ出るまでの間隔を設定できる。
|
61
|
+
int posmozi2[20];//文字のバイト数が入る箱を表している。
|
62
|
+
int countS2[2];//次の文字が出るまでのカウントするためのもの
|
63
|
+
int z2;//関数drawString外でも使えるように外にも定義を書いた。zの数値は関係なく、文字列が入った数列がif文により同じ変数zの時にframe[z]と同じになるまで+1されていったり、+2バイトor+1バイトされていくため、
|
64
|
+
//文字が一文字ずつ入っていく、なんでzの変数に値を入れて動かす必要がないのだ。ちなみにfor (z = 0; z < 3; ++z)で書いてしまうとキーAを押した際のif文に関係なく関数drawStringの最初のzどこかに値が入っただけで繰り返しを開始してしまうため、今回のように同じ変数zの時にフレームを利用して描画するようにした。
|
65
|
+
char c2 = str[z2][posmozi[z2]];//関数drawString外でも使えるように外にも定義を書いた。
|
66
|
+
|
67
|
+
void drawString2(int z2, int x, int y, int color)
|
68
|
+
{
|
69
|
+
c = str2[z2][posmozi2[z2]];//posmozi[z2]
|
70
|
+
if (countS2[z2] == 0 && c2 != '\0')
|
71
|
+
posmozi2[z2] += IsDBCSLeadByte(c2) ? 2 : 1;
|
72
|
+
if (++countS2[z2] == frame2[z2]) countS2[z2] = 0;
|
73
|
+
DrawFormatString(x, y, color, "%.*s", posmozi2[z2], str2[z2]);
|
74
|
+
DrawFormatString(300, 400, (0, 0, 255), "countS2[0]は%d", countS2[0]);
|
75
|
+
}
|
76
|
+
|
77
|
+
|
59
78
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
|
60
79
|
{
|
61
80
|
|
1
編集編集
title
CHANGED
File without changes
|
body
CHANGED
@@ -56,25 +56,6 @@
|
|
56
56
|
DrawFormatString(300, 300, (0,0,255), "countS[0]は%d", countS[0]);
|
57
57
|
}
|
58
58
|
|
59
|
-
const char* str2[2] = { "こんにちわ!","申し訳ございません! " };//ここで文字を直接書いてるので、この文字のバイト数が各posmozi[]に入るだけ
|
60
|
-
int frame2[2] = { 10,10 };//次の一文字が出るまでのカウンタとして働いている、ここの数値を変えることで文字が一文字ずつ出るまでの間隔を設定できる。
|
61
|
-
int posmozi2[20];//文字のバイト数が入る箱を表している。
|
62
|
-
int countS2[2];//次の文字が出るまでのカウントするためのもの
|
63
|
-
int z2;//関数drawString外でも使えるように外にも定義を書いた。zの数値は関係なく、文字列が入った数列がif文により同じ変数zの時にframe[z]と同じになるまで+1されていったり、+2バイトor+1バイトされていくため、
|
64
|
-
//文字が一文字ずつ入っていく、なんでzの変数に値を入れて動かす必要がないのだ。ちなみにfor (z = 0; z < 3; ++z)で書いてしまうとキーAを押した際のif文に関係なく関数drawStringの最初のzどこかに値が入っただけで繰り返しを開始してしまうため、今回のように同じ変数zの時にフレームを利用して描画するようにした。
|
65
|
-
char c2 = str[z2][posmozi[z2]];//関数drawString外でも使えるように外にも定義を書いた。
|
66
|
-
|
67
|
-
void drawString2(int z2, int x, int y, int color)
|
68
|
-
{
|
69
|
-
c = str2[z2][posmozi2[z2]];//posmozi[z2]
|
70
|
-
if (countS2[z2] == 0 && c2 != '\0')
|
71
|
-
posmozi2[z2] += IsDBCSLeadByte(c2) ? 2 : 1;
|
72
|
-
if (++countS2[z2] == frame2[z2]) countS2[z2] = 0;
|
73
|
-
DrawFormatString(x, y, color, "%.*s", posmozi2[z2], str2[z2]);
|
74
|
-
DrawFormatString(300, 400, (0, 0, 255), "countS2[0]は%d", countS2[0]);
|
75
|
-
}
|
76
|
-
|
77
|
-
|
78
59
|
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
|
79
60
|
{
|
80
61
|
|
@@ -226,4 +207,7 @@
|
|
226
207
|
// 終了
|
227
208
|
return 0;
|
228
209
|
}
|
229
|
-
```
|
210
|
+
```
|
211
|
+
|
212
|
+
for文を使い編集してみました。3と入力するとどんな映画が好きなんですか?と出ますが、適当に14356と入力すると無反応です。14356をループして3を見つけたら反応すると思ったのですが。
|
213
|
+
[編集したプログラム](https://pastebin.com/PvhwYjH0)
|