Professional Documents
Culture Documents
Kasdl
Kasdl
8.6: F1
8.7: F2
113
8.4
8.4
isClickedSelectBox
GetMouseInput
AND
8.4: selection-04.cpp
1
2
3
4
5
6
7
# define SELECT_BOX_X 50
# define SELECT_BOX_Y 200
8
9
10
11
12
# define SELECT_BOX_MESSAGE_Y 20
13
14
# define FONT_SIZE 16
15
16
17
18
19
20
21
22
23
24
25
26
27
// ( 2 )
//
int g_whiteColor ;
//
int g_backgroundGraphic ;
//
int g_selectBoxGraphicHandle ;
//
114
28
29
30
31
32
33
34
35
36
37
//
void initSelectBox ();
int isContainMousePointer (int x, int y, int width , int height );
void drawSelectBox ();
void setSelectBoxMessage (const char* message1 , const char* message2 );
int isClickedSelectBox ();
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//
void initSelectBox ()
{
//
g_whiteColor = GetColor (255 , 255, 255);
//
g_selectBoxGraphicHandle = LoadGraph ( GRAPHIC_SELECTBOX_FILENAME );
//
memset ( g_selectBoxMessage [0], 0, SELECT_BOX_MESSAGE_MAX_LENGTH );
memset ( g_selectBoxMessage [1], 0, SELECT_BOX_MESSAGE_MAX_LENGTH );
//
g_selectBoxVisibleFlag = SELECT_BOX_HIDE ;
}
52
53
54
55
56
57
58
//
// 1: 0:
int isContainMousePointer (int x, int y, int width , int height )
{
int mouseX , mouseY ;
59
//
GetMousePoint ( &mouseX , & mouseY );
60
61
62
//
if( ( mouseX >= x && mouseX <= x + width) &&
( mouseY >= y && mouseY <= y + height ) ) {
return 1;
}
return 0;
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
//
void setSelectBoxMessage (const char* message1 , const char* message2 )
{
//
strncpy ( g_selectBoxMessage [0], message1 , SELECT_BOX_MESSAGE_MAX_LENGTH );
strncpy ( g_selectBoxMessage [1], message2 , SELECT_BOX_MESSAGE_MAX_LENGTH );
//
g_selectBoxVisibleFlag = SELECT_BOX_SHOW ;
}
80
81
82
83
84
85
86
87
88
89
90
91
92
//
void drawSelectBox ()
{
//
if( g_selectBoxVisibleFlag ) {
// 1
if( isContainMousePointer ( SELECT_BOX_X , SELECT_BOX_Y ,
SELECT_BOX_WIDTH , SELECT_BOX_HEIGHT ) ) {
// 0
SetDrawBlendMode ( DX_BLENDMODE_ALPHA , 255 );
}else {
// 50%
115
8.4
SetDrawBlendMode ( DX_BLENDMODE_ALPHA , 128);
}
//
DrawGraph ( SELECT_BOX_X , SELECT_BOX_Y , g_selectBoxGraphicHandle , TRUE );
93
94
95
96
97
// 2
if( isContainMousePointer ( SELECT_BOX_X , SELECT_BOX_Y + SELECT_BOX_HEIGHT ,
SELECT_BOX_WIDTH , SELECT_BOX_HEIGHT ) ) {
// 0
SetDrawBlendMode ( DX_BLENDMODE_ALPHA , 255 );
}else {
// 50%
SetDrawBlendMode ( DX_BLENDMODE_ALPHA , 128);
}
// 2
DrawGraph ( SELECT_BOX_X , SELECT_BOX_Y + SELECT_BOX_HEIGHT ,
g_selectBoxGraphicHandle , TRUE );
98
99
100
101
102
103
104
105
106
107
108
109
110
//
SetDrawBlendMode ( DX_BLENDMODE_NOBLEND , 0 );
111
112
113
//
DrawString ( SELECT_BOX_X + 20, SELECT_BOX_Y + SELECT_BOX_MESSAGE_Y ,
g_selectBoxMessage [0], g_whiteColor );
DrawString ( SELECT_BOX_X + 20, SELECT_BOX_Y + SELECT_BOX_HEIGHT + SELECT_BOX_MESSAGE_Y ,
g_selectBoxMessage [1], g_whiteColor );
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
//
//0: 1: 1 2: 2
int isClickedSelectBox ()
{
//
if( g_selectBoxVisibleFlag ) {
//
//
if( ( GetMouseInput () & MOUSE_INPUT_LEFT ) != 0 ) {
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
}
}
return 0;
154
155
156
157
116
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
//
SetDrawScreen ( DX_SCREEN_BACK );
174
175
176
//
SetFontSize ( FONT_SIZE );
177
178
179
//
SetMouseDispFlag ( TRUE );
180
181
182
183
184
//
initSelectBox ();
//
g_backgroundGraphic = LoadGraph ( GRAPHIC_BACKGROUND_FILENAME );
185
186
int tmpClicked = 0; //
187
188
189
//
while( ProcessMessage () == 0 && CheckHitKey ( KEY_INPUT_ESCAPE ) == 0 ) {
190
// F 1
if( CheckHitKey ( KEY_INPUT_F1 ) ) {
setSelectBoxMessage (" F 1 1 ", " 2");
}
191
192
193
194
195
//
ClearDrawScreen ();
196
197
198
//
DrawGraph ( 0, 0, g_backgroundGraphic , FALSE );
199
200
201
//
drawSelectBox ();
202
203
204
//
tmpClicked = isClickedSelectBox ();
if( tmpClicked == 1 ) {
DrawString (50, 50, " 1 ", g_whiteColor );
}else if( tmpClicked == 2 ) {
DrawString (50, 50, " 2 ", g_whiteColor );
}
205
206
207
208
209
210
211
212
ScreenFlip ();
213
214
//
if( tmpClicked != 0 ) {
Sleep (1000);
}
215
216
217
218
219
220
221
222
DxLib_End ();
return 0;
117
8.4
223
8.8
8.8:
118
119
C
C
9.1
9.1
9.1:
9.1
ScriptInformation
9.1: script-01.cpp
1
2
3
4
5
6
7
// 1000
# define SCRIPT_MAX_LINE 1000
//
# define SCRIPT_MAX_STRING_LENGTH 300
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//
// -1 : 0 :
int loadScript (const char* filename , ScriptInformation * scriptInfo )
{
int pos;
char c;
//
FILE* fp;
24
25
26
//
memset ( scriptInfo , 0, sizeof ( ScriptInformation ) );
27
28
29
30
31
32
33
34
//
fp = fopen(filename , "r");
if( fp == NULL ) {
//
printf (" %s \ n", filename );
return -1;
}
35
36
37
// s c r i p t
pos = 0;
38
39
40
41
42
43
44
45
for( ;; ) {
//
c = fgetc( fp );
//
if( feof( fp ) ) {
break;
}
46
47
48
49
50
51
52
53
54
55
//
if( c == \n ) {
//\0
120
9
scriptInfo -> script [ scriptInfo -> currentLine ][ pos ] = \0 ;
//
scriptInfo -> currentLine ++;
// 0
pos = 0;
}else {
//
scriptInfo -> script [ scriptInfo -> currentLine ][ pos ] = c;
//
pos ++;
}
56
57
58
59
60
61
62
63
64
65
66
}
//
scriptInfo -> maxLineNumber = scriptInfo -> currentLine ;
// 0
scriptInfo -> currentLine = 0;
//
scriptInfo -> filename = filename ;
return 0;
67
68
69
70
71
72
73
74
75
76
int main ()
{
int i;
ScriptInformation script ;
77
78
79
80
81
82
83
//10
for( i = 0; i < 10; i++ ) {
printf ("%d : %s\n", i + 1, script . script [i] );
}
84
85
86
87
88
return 0;
89
90
ScriptInformation script
(\n)
script.txt
@@message
2
3
@@message
121
9.2
1 : @@message
2 :
3 : @@message
4 :
5 :
6 :
7 :
8 :
9 :
10 :
9.2
(\t)
(\n)
9.2: script-02.cpp
1
2
3
4
5
6
7
// 1000
# define SCRIPT_MAX_LINE 1000
//
# define SCRIPT_MAX_STRING_LENGTH 300
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//
// -1 : 0 :
int loadScript (const char* filename , ScriptInformation * scriptInfo )
{
int pos;
char c;
//
FILE* fp;
24
25
26
//
memset ( scriptInfo , 0, sizeof ( ScriptInformation ) );
27
28
29
30
//
fp = fopen(filename , "r");
if( fp == NULL ) {
122