teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

2019/04/05 07:07

投稿

yoshiteru21
yoshiteru21

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,4 @@
1
- グラフィカルコンソールを使い、テキストファイルを読み込んで簡単な恋愛ゲームのプログラムを作りました。
1
+ ![イメージ説明](b480e31a49fcef740d8933107bcc566d.png)グラフィカルコンソールを使い、テキストファイルを読み込んで簡単な恋愛ゲームのプログラムを作りました。
2
2
  ゲーム終了の最後の画面で画像が切り替わるのですがその時に画像のように文字が浮かんだままの状態になるのですがどのようなプログラムを組めば消すことができるのでしょうか?
3
3
  visual stdio2017 winコンソール
4
4
 

1

質問内容変更しました

2019/04/05 07:07

投稿

yoshiteru21
yoshiteru21

スコア44

title CHANGED
File without changes
body CHANGED
@@ -1,10 +1,8 @@
1
1
  グラフィカルコンソールを使い、テキストファイルを読み込んで簡単な恋愛ゲームのプログラムを作りました。
2
- 好感度の数値によって終了画面を変えたいのですがどのようなプログラムをどこに入れれよいのでしょうか?ご教授お願いいたします。
2
+ ゲーム終了の最後の画面で画像が切り替わるのですがその時に画像のように文字が浮かんだままの状態になるのですがどのようなプログラムを組め消すことができるのでしょうか?
3
- (好感度g_loverate<=25の場合、BADENDの表示、g_loverate>=75の場合、HAPPYENDの表示など)
3
+ visual stdio2017 winコンソール
4
4
 
5
5
  ```ここに言語を入力
6
- コード
7
- ```
8
6
  #include <GConsoleLib.h>
9
7
  #include <stdio.h>
10
8
  #include "pch.h"
@@ -16,13 +14,20 @@
16
14
 
17
15
  //画像データ
18
16
  char *gp_backimage;
19
- char g_backimage[256] =
17
+ char g_backimage[256] = {
20
- "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-back.png";
18
+ "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-back.png",
19
+ };
21
20
  char g_faceimage[][128] = {
22
21
  "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-bad.png",
23
22
  "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-natural.png",
24
23
  "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-good.png"
25
24
  };
25
+ char g_endimage[][256] = {
26
+ "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\badend.jpg",
27
+ "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\true.jpg",
28
+ "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\happy.jpg",
29
+ "C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\9.jpg"
30
+ };
26
31
  char g_imagebuf[256]; //コマンドのファイルパスを記憶しておくバッファ
27
32
 
28
33
  //グローバル変数
@@ -33,6 +38,8 @@
33
38
  #define SCLINELEN 256//シナリオ1行の文字数
34
39
  wchar_t g_scenario[SCLINEMAX][SCLINELEN];
35
40
  int g_screadlines = 0; //読み込んだ行数
41
+ int freetalkcnt;
42
+ int end=0;
36
43
 
37
44
  //関数プロトタイプ宣言
38
45
  void DrawScreen();
@@ -93,36 +100,52 @@
93
100
  &g_scenario[curline][6], 255);
94
101
  gp_backimage = g_imagebuf;
95
102
  DrawScreen();
103
+ }
96
- }else if (wcsstr(g_scenario[curline], L"#free") != NULL) {
104
+ else if (wcsstr(g_scenario[curline], L"#free") != NULL) {
97
105
  //フリートーク
98
- int freetalkcnt;
99
106
  swscanf_s(g_scenario[curline],
100
107
  L"#free %d", &freetalkcnt);
101
- //会話
108
+ //会話
102
- gcls();
109
+ gcls();
103
- DrawScreen();
110
+ DrawScreen();
104
- glocate(0, 15); gcolor(255, 80, 80);
111
+ glocate(0, 15); gcolor(255, 80, 80);
105
- gwprintf(L"%s君。お話しようよ\n", g_name);
112
+ gwprintf(L"%s君。お話しようよ\n", g_name);
106
- for (int i = 0; i < freetalkcnt; i++) {
113
+ for (int i = 0; i < freetalkcnt; i++) {
107
- gcolor(0, 0, 200);
114
+ gcolor(0, 0, 200);
108
- ggetws(g_talkbuf, 256);
115
+ ggetws(g_talkbuf, 256);
109
- gwprintf(L"\n");
116
+ gwprintf(L"\n");
110
- gcolor(255, 80, 80);
117
+ gcolor(255, 80, 80);
111
- AnalyzeTalk();
118
+ AnalyzeTalk();
119
+
120
+ }
121
+ }
122
+
123
+ }
112
124
  }
125
+ int level = 1;
126
+ if (g_loverate <= 25) level = 0;
127
+ else if (g_loverate >= 75) level = 2;
128
+ end = 1;
129
+ gp_backimage = g_endimage[level];
130
+ DrawScreen();
113
- }
131
+ return;
114
- }
132
+
115
- }
116
133
  }
117
134
 
118
135
  //画面表示
119
136
  void DrawScreen() {
120
137
  gimage(gp_backimage, 0, 24);
138
+ if (end == 0) {
121
- //好感度によって表情を変える
139
+ //好感度によって表情を変える
122
- int level = 1;
140
+ int level = 1;
123
- if (g_loverate <= 25) level = 0;
141
+ if (g_loverate <= 25) level = 0;
124
- else if (g_loverate >= 75) level = 2;
142
+ else if (g_loverate >= 75) level = 2;
125
- gimage(g_faceimage[level], 160, 64);
143
+ gimage(g_faceimage[level], 160, 64);
144
+ }
145
+
146
+
147
+
148
+
126
149
  }
127
150
 
128
151
  //AnalyzeTalkで使用するキーワードのグローバル変数
@@ -193,7 +216,9 @@
193
216
  //キーワード一致なし
194
217
  if(goodfeeling == 0 && badfeeling == 0) {
195
218
  int rt2num = sizeof(g_randomtalk2) / sizeof(wchar_t[128]);
219
+ if (end = 0) {
196
- gwprintf(L"%s\n", g_randomtalk2[ rand() % rt2num ]);
220
+ gwprintf(L"%s\n", g_randomtalk2[rand() % rt2num]);
221
+ }
197
222
  }
198
223
 
199
224
  //現在のレベル
@@ -208,14 +233,5 @@
208
233
  if (oldlevel != newlevel) {
209
234
  DrawScreen();
210
235
  }
211
- }> 引用テキスト
212
- #free 5
213
- 遊びに行きましょう
214
- #back C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-back02.png
215
- #free 5
216
- 目的地についたわ
217
- #back C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファイル\sampleimg\chap6-1-back03.png
218
- #free 10
219
- じゃあ、また明日ね。バイバイ
220
- #back C:\Users\PG002\Pictures\12c2015sample\GConsole追加ファル\sampleimg\9.jpg
236
+ }![メージ説明](9ed47be23b87b2651666d940d39a7caf.png)
221
- -GAME OVER-
237
+ ```