@@ -168,6 +168,8 @@ Read more about `.chart` files: <https://github.com/TheNathannator/GuitarGame_Ch
168
168
169
169
#### ` Parsers.ParseSectionsFromChart `
170
170
171
+ ##### C#
172
+
171
173
``` csharp
172
174
using System ;
173
175
using RhythmGameUtilities ;
@@ -179,6 +181,8 @@ Console.WriteLine(sections.Count); // 4
179
181
180
182
#### ` Parsers.ParseMetaDataFromChartSection `
181
183
184
+ ##### C#
185
+
182
186
``` csharp
183
187
using System ;
184
188
using RhythmGameUtilities ;
@@ -192,8 +196,37 @@ Console.WriteLine(metaData["Resolution"]); // 192
192
196
Console .WriteLine (metaData [" MusicStream" ]); // Example Song.ogg
193
197
```
194
198
199
+ ##### C++
200
+
201
+ ``` cpp
202
+ #include < iostream>
203
+
204
+ #include " RhythmGameUtilities/File.hpp"
205
+ #include " RhythmGameUtilities/Parsers.hpp"
206
+ #include " RhythmGameUtilities/Utilities.hpp"
207
+
208
+ using namespace RhythmGameUtilities ;
209
+
210
+ int main ()
211
+ {
212
+ auto content = ReadFromFile("./tests/Mocks/song.chart");
213
+
214
+ auto sections = ParseSectionsFromChart(content.c_str());
215
+
216
+ auto metaData = ParseMetaDataFromChartSections(sections);
217
+
218
+ std::cout << metaData["Name"] << std::endl; // Example Song
219
+ std::cout << metaData["Resolution"] << std::endl; // 192
220
+ std::cout << metaData["MusicStream"] << std::endl; // Example Song.ogg
221
+
222
+ return 0;
223
+ }
224
+ ```
225
+
195
226
#### ` Parsers.ParseTimeSignaturesFromChartSection `
196
227
228
+ ##### C#
229
+
197
230
``` csharp
198
231
using System ;
199
232
using RhythmGameUtilities ;
@@ -205,8 +238,35 @@ var timeSignatures = Parsers.ParseTimeSignaturesFromChartSection(sections[NamedS
205
238
Console .WriteLine (timeSignatures .Count ); // 4
206
239
```
207
240
241
+ ##### C++
242
+
243
+ ``` cpp
244
+ #include < iostream>
245
+
246
+ #include " RhythmGameUtilities/File.hpp"
247
+ #include " RhythmGameUtilities/Parsers.hpp"
248
+ #include " RhythmGameUtilities/Utilities.hpp"
249
+
250
+ using namespace RhythmGameUtilities ;
251
+
252
+ int main ()
253
+ {
254
+ auto content = ReadFromFile("./tests/Mocks/song.chart");
255
+
256
+ auto sections = ParseSectionsFromChart(content.c_str());
257
+
258
+ auto timeSignatures = ParseTimeSignaturesFromChartSections(sections);
259
+
260
+ std::cout << size(timeSignatures) << std::endl; // 4
261
+
262
+ return 0;
263
+ }
264
+ ```
265
+
208
266
#### ` Parsers.ParseBpmFromChartSection `
209
267
268
+ ##### C#
269
+
210
270
``` csharp
211
271
using System ;
212
272
using RhythmGameUtilities ;
@@ -218,8 +278,35 @@ var bpm = Parsers.ParseBpmFromChartSection(sections[NamedSection.SyncTrack]);
218
278
Console .WriteLine (bpm .Count ); // 7
219
279
```
220
280
281
+ ##### C++
282
+
283
+ ``` cpp
284
+ #include < iostream>
285
+
286
+ #include " RhythmGameUtilities/File.hpp"
287
+ #include " RhythmGameUtilities/Parsers.hpp"
288
+ #include " RhythmGameUtilities/Utilities.hpp"
289
+
290
+ using namespace RhythmGameUtilities ;
291
+
292
+ int main ()
293
+ {
294
+ auto content = ReadFromFile("./tests/Mocks/song.chart");
295
+
296
+ auto sections = ParseSectionsFromChart(content.c_str());
297
+
298
+ auto bpm = ParseBpmFromChartSections(sections);
299
+
300
+ std::cout << size(bpm) << std::endl; // 7
301
+
302
+ return 0;
303
+ }
304
+ ```
305
+
221
306
#### ` Parsers.ParseNotesFromChartSection `
222
307
308
+ ##### C#
309
+
223
310
``` csharp
224
311
using System ;
225
312
using RhythmGameUtilities ;
@@ -231,8 +318,43 @@ var notes = Parsers.ParseNotesFromChartSection(sections[$"{Difficulty.Expert}Sin
231
318
Console .WriteLine (notes .Count ); // 8
232
319
```
233
320
321
+ ##### C++
322
+
323
+ ``` cpp
324
+ #include < iostream>
325
+
326
+ #include " RhythmGameUtilities/File.hpp"
327
+ #include " RhythmGameUtilities/Parsers.hpp"
328
+ #include " RhythmGameUtilities/Utilities.hpp"
329
+
330
+ using namespace RhythmGameUtilities ;
331
+
332
+ int main ()
333
+ {
334
+ auto content = ReadFromFile("./tests/Mocks/song.chart");
335
+
336
+ auto sections = ParseSectionsFromChart(content.c_str());
337
+
338
+ auto notes = ParseNotesFromChartSections(sections, Expert);
339
+
340
+ for (auto ¬e : notes)
341
+ {
342
+ if (note.HandPosition > 5)
343
+ {
344
+ continue;
345
+ }
346
+
347
+ std::cout << note.Position << " " << note.HandPosition << std::endl;
348
+ }
349
+
350
+ return 0;
351
+ }
352
+ ```
353
+
234
354
#### ` Parsers.ParseLyricsFromChartSection `
235
355
356
+ ##### C#
357
+
236
358
``` csharp
237
359
using System ;
238
360
using RhythmGameUtilities ;
@@ -244,10 +366,37 @@ var lyrics = Parsers.ParseLyricsFromChartSection(sections[NamedSection.Events]);
244
366
Console .WriteLine (notes .Count ); // 12
245
367
```
246
368
369
+ ##### C++
370
+
371
+ ``` cpp
372
+ #include < iostream>
373
+
374
+ #include " RhythmGameUtilities/File.hpp"
375
+ #include " RhythmGameUtilities/Parsers.hpp"
376
+ #include " RhythmGameUtilities/Utilities.hpp"
377
+
378
+ using namespace RhythmGameUtilities ;
379
+
380
+ int main ()
381
+ {
382
+ auto content = ReadFromFile("./tests/Mocks/song.chart");
383
+
384
+ auto sections = ParseSectionsFromChart(content.c_str());
385
+
386
+ auto lyrics = ParseLyricsFromChartSections(sections);
387
+
388
+ std::cout << size(lyrics) << std::endl; // 12
389
+
390
+ return 0;
391
+ }
392
+ ```
393
+
247
394
### Utilities
248
395
249
396
#### ` Utilities.ConvertTickToPosition `
250
397
398
+ ##### C#
399
+
251
400
``` csharp
252
401
using System ;
253
402
using RhythmGameUtilities ;
@@ -260,8 +409,32 @@ var position = Utilities.ConvertTickToPosition(tick, resolution);
260
409
Console .WriteLine (position ); // 14.5
261
410
```
262
411
412
+ ##### C++
413
+
414
+ ``` cpp
415
+ #include < iostream>
416
+
417
+ #include " RhythmGameUtilities/Utilities.hpp"
418
+
419
+ using namespace RhythmGameUtilities ;
420
+
421
+ int main ()
422
+ {
423
+ const int tick = 2784;
424
+ const int resolution = 192;
425
+
426
+ auto position = ConvertTickToPosition(tick, resolution);
427
+
428
+ std::cout << position << std::endl; // 14.5
429
+
430
+ return 0;
431
+ }
432
+ ```
433
+
263
434
#### ` Utilities.ConvertSecondsToTicks `
264
435
436
+ ##### C#
437
+
265
438
``` csharp
266
439
using System ;
267
440
using RhythmGameUtilities ;
@@ -285,8 +458,36 @@ var ticks = Utilities.ConvertSecondsToTicks(seconds, resolution, bpmChanges);
285
458
Console .WriteLine (ticks ); // 1408
286
459
```
287
460
461
+ ##### C++
462
+
463
+ ``` cpp
464
+ #include < iostream>
465
+
466
+ #include " RhythmGameUtilities/Utilities.hpp"
467
+
468
+ using namespace RhythmGameUtilities ;
469
+
470
+ int main ()
471
+ {
472
+ const int seconds = 5;
473
+ const int resolution = 192;
474
+
475
+ std::map<int, int> bpmChanges = {
476
+ {0, 88000}, {3840, 112000}, {9984, 89600}, {22272, 112000},
477
+ {33792, 111500}, {34560, 112000}, {42240, 111980}};
478
+
479
+ auto ticks = ConvertSecondsToTicks(seconds, resolution, bpmChanges);
480
+
481
+ std::cout << ticks << std::endl; // 1408
482
+
483
+ return 0;
484
+ }
485
+ ```
486
+
288
487
#### ` Utilities.IsOnTheBeat `
289
488
489
+ ##### C#
490
+
290
491
``` csharp
291
492
using System ;
292
493
using RhythmGameUtilities ;
@@ -296,7 +497,30 @@ const int currentTime = 10;
296
497
297
498
if (Utilities .IsOnTheBeat (bpm , currentTime ))
298
499
{
299
- Console .WriteLine (" On the beat!" );
500
+ Console .WriteLine (" Is on the beat!" );
501
+ }
502
+ ```
503
+
504
+ ##### C++
505
+
506
+ ``` cpp
507
+ #include < iostream>
508
+
509
+ #include " RhythmGameUtilities/Utilities.hpp"
510
+
511
+ using namespace RhythmGameUtilities ;
512
+
513
+ int main ()
514
+ {
515
+ const int bpm = 120;
516
+ const int currentTime = 10;
517
+
518
+ if (IsOnTheBeat(bpm, currentTime))
519
+ {
520
+ std::cout << "Is on the beat!" << std::endl;
521
+ }
522
+
523
+ return 0;
300
524
}
301
525
```
302
526
0 commit comments