reqct-gamehub-module 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,359 @@
1
+ /* PlatformerGame.css - Стили для платформера */
2
+
3
+ .platformer-game {
4
+ width: 100%;
5
+ height: 100%;
6
+ display: flex;
7
+ flex-direction: column;
8
+ background: white;
9
+ color: #333;
10
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
11
+ overflow: hidden;
12
+ }
13
+
14
+ .game-header {
15
+ display: flex;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ padding: 12px 16px;
19
+ border-bottom: 1px solid #e1e5e9;
20
+ flex-shrink: 0;
21
+ }
22
+
23
+ .game-header h2 {
24
+ margin: 0;
25
+ font-size: 18px;
26
+ color: #333;
27
+ font-weight: 600;
28
+ }
29
+
30
+ .game-controls {
31
+ display: flex;
32
+ gap: 8px;
33
+ }
34
+
35
+ .control-btn {
36
+ padding: 8px 16px;
37
+ border: none;
38
+ border-radius: 8px;
39
+ font-size: 12px;
40
+ font-weight: 600;
41
+ cursor: pointer;
42
+ transition: all 0.2s;
43
+ text-transform: uppercase;
44
+ letter-spacing: 0.5px;
45
+ }
46
+
47
+ .start-btn {
48
+ background: linear-gradient(45deg, #00b09b, #96c93d);
49
+ color: white;
50
+ }
51
+
52
+ .pause-btn {
53
+ background: linear-gradient(45deg, #ff9966, #ff5e62);
54
+ color: white;
55
+ }
56
+
57
+ .reset-btn {
58
+ background: linear-gradient(45deg, #667eea, #764ba2);
59
+ color: white;
60
+ }
61
+
62
+ .control-btn:hover {
63
+ transform: translateY(-2px);
64
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
65
+ }
66
+
67
+ .game-stats {
68
+ display: grid;
69
+ grid-template-columns: repeat(4, 1fr);
70
+ gap: 8px;
71
+ padding: 12px 16px;
72
+ border-bottom: 1px solid #e1e5e9;
73
+ flex-shrink: 0;
74
+ }
75
+
76
+ .stat-box {
77
+ background: #f8f9fa;
78
+ border-radius: 8px;
79
+ padding: 10px;
80
+ text-align: center;
81
+ border: 1px solid #e1e5e9;
82
+ }
83
+
84
+ .stat-label {
85
+ font-size: 10px;
86
+ color: #666;
87
+ margin-bottom: 4px;
88
+ text-transform: uppercase;
89
+ letter-spacing: 0.5px;
90
+ }
91
+
92
+ .stat-value {
93
+ font-size: 18px;
94
+ font-weight: 700;
95
+ color: #667eea;
96
+ }
97
+
98
+ .game-area {
99
+ flex: 1;
100
+ display: flex;
101
+ align-items: center;
102
+ justify-content: center;
103
+ padding: 16px;
104
+ min-height: 0;
105
+ position: relative;
106
+ }
107
+
108
+ .platformer-container {
109
+ width: 100%;
110
+ max-width: 800px;
111
+ height: 400px;
112
+ position: relative;
113
+ border: 2px solid #e1e5e9;
114
+ border-radius: 12px;
115
+ overflow: hidden;
116
+ background: #222;
117
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
118
+ }
119
+
120
+ .platformer-canvas {
121
+ width: 100%;
122
+ height: 100%;
123
+ display: block;
124
+ }
125
+
126
+ .start-screen,
127
+ .win-screen,
128
+ .lose-screen {
129
+ position: absolute;
130
+ top: 0;
131
+ left: 0;
132
+ right: 0;
133
+ bottom: 0;
134
+ background: rgba(34, 34, 34, 0.95);
135
+ display: flex;
136
+ align-items: center;
137
+ justify-content: center;
138
+ z-index: 20;
139
+ }
140
+
141
+ .start-message,
142
+ .win-message,
143
+ .lose-message {
144
+ background: white;
145
+ padding: 30px;
146
+ border-radius: 12px;
147
+ text-align: center;
148
+ max-width: 400px;
149
+ box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
150
+ }
151
+
152
+ .start-message h3,
153
+ .win-message h3,
154
+ .lose-message h3 {
155
+ color: #667eea;
156
+ margin-bottom: 15px;
157
+ font-size: 20px;
158
+ }
159
+
160
+ .win-message h3 {
161
+ color: #00b09b;
162
+ }
163
+
164
+ .lose-message h3 {
165
+ color: #ff5e62;
166
+ }
167
+
168
+ .start-message p,
169
+ .win-message p,
170
+ .lose-message p {
171
+ margin: 8px 0;
172
+ color: #666;
173
+ font-size: 14px;
174
+ }
175
+
176
+ .start-btn-big,
177
+ .next-level-btn,
178
+ .restart-btn {
179
+ padding: 12px 24px;
180
+ background: linear-gradient(45deg, #667eea, #764ba2);
181
+ color: white;
182
+ border: none;
183
+ border-radius: 8px;
184
+ font-size: 14px;
185
+ font-weight: bold;
186
+ cursor: pointer;
187
+ margin-top: 20px;
188
+ transition: all 0.2s;
189
+ text-transform: uppercase;
190
+ letter-spacing: 1px;
191
+ }
192
+
193
+ .start-btn-big:hover,
194
+ .next-level-btn:hover,
195
+ .restart-btn:hover {
196
+ transform: translateY(-2px);
197
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
198
+ }
199
+
200
+ .next-level-btn {
201
+ background: linear-gradient(45deg, #00b09b, #96c93d);
202
+ }
203
+
204
+ .restart-btn {
205
+ background: linear-gradient(45deg, #ff9966, #ff5e62);
206
+ }
207
+
208
+ .game-instructions {
209
+ padding: 12px 16px;
210
+ border-top: 1px solid #e1e5e9;
211
+ flex-shrink: 0;
212
+ display: flex;
213
+ flex-direction: column;
214
+ gap: 12px;
215
+ }
216
+
217
+ .instructions-row {
218
+ display: flex;
219
+ justify-content: space-between;
220
+ font-size: 11px;
221
+ color: #666;
222
+ }
223
+
224
+ .instructions-row p {
225
+ margin: 0;
226
+ }
227
+
228
+ .instructions-row strong {
229
+ color: #333;
230
+ }
231
+
232
+ .legend {
233
+ display: flex;
234
+ justify-content: center;
235
+ gap: 20px;
236
+ margin-top: 5px;
237
+ }
238
+
239
+ .legend-item {
240
+ display: flex;
241
+ align-items: center;
242
+ gap: 6px;
243
+ font-size: 10px;
244
+ color: #666;
245
+ }
246
+
247
+ .legend-color {
248
+ width: 12px;
249
+ height: 12px;
250
+ border-radius: 2px;
251
+ }
252
+
253
+ .player-color {
254
+ background: #335699;
255
+ }
256
+
257
+ .coin-color {
258
+ background: #e2e838;
259
+ }
260
+
261
+ .lava-color {
262
+ background: #e55;
263
+ }
264
+
265
+ .wall-color {
266
+ background: #444;
267
+ border: 1px solid #333;
268
+ }
269
+
270
+ /* Адаптивность */
271
+ @media (max-width: 768px) {
272
+ .platformer-container {
273
+ height: 300px;
274
+ }
275
+
276
+ .platformer-canvas {
277
+ width: 100%;
278
+ height: 100%;
279
+ }
280
+
281
+ .game-stats {
282
+ grid-template-columns: repeat(2, 1fr);
283
+ }
284
+
285
+ .instructions-row {
286
+ flex-direction: column;
287
+ gap: 5px;
288
+ text-align: center;
289
+ }
290
+
291
+ .legend {
292
+ flex-wrap: wrap;
293
+ gap: 10px;
294
+ }
295
+ }
296
+
297
+ @media (max-width: 480px) {
298
+ .platformer-container {
299
+ height: 250px;
300
+ }
301
+
302
+ .start-message,
303
+ .win-message,
304
+ .lose-message {
305
+ padding: 20px;
306
+ max-width: 280px;
307
+ }
308
+
309
+ .start-message h3,
310
+ .win-message h3,
311
+ .lose-message h3 {
312
+ font-size: 18px;
313
+ }
314
+
315
+ .start-btn-big,
316
+ .next-level-btn,
317
+ .restart-btn {
318
+ padding: 10px 20px;
319
+ font-size: 12px;
320
+ }
321
+
322
+ .stat-value {
323
+ font-size: 16px;
324
+ }
325
+ }
326
+
327
+ /* Анимации */
328
+ @keyframes pulse {
329
+ 0%, 100% {
330
+ opacity: 1;
331
+ transform: scale(1);
332
+ }
333
+ 50% {
334
+ opacity: 0.8;
335
+ transform: scale(1.05);
336
+ }
337
+ }
338
+
339
+ @keyframes lava-pulse {
340
+ 0%, 100% { background-color: #e55; }
341
+ 50% { background-color: #f66; }
342
+ }
343
+
344
+ .win-screen .win-message {
345
+ animation: pulse 1.5s infinite;
346
+ }
347
+
348
+ .lava-animated {
349
+ animation: lava-pulse 1s infinite;
350
+ }
351
+
352
+ @keyframes death-shrink {
353
+ 0% { transform: scale(1); opacity: 1; }
354
+ 100% { transform: scale(0); opacity: 0; }
355
+ }
356
+
357
+ .death-animation {
358
+ animation: death-shrink 0.5s ease-out forwards;
359
+ }