diff options
Diffstat (limited to 'samples/99_genre_3d')
| -rw-r--r-- | samples/99_genre_3d/02_wireframe/replay.txt | 242 | ||||
| -rw-r--r-- | samples/99_genre_3d/03_yaw_pitch_roll/app/main.rb | 351 | ||||
| -rw-r--r-- | samples/99_genre_3d/03_yaw_pitch_roll/replay.txt | 361 | ||||
| -rw-r--r-- | samples/99_genre_3d/3d_cube/app/main.rb | 50 | ||||
| -rw-r--r-- | samples/99_genre_3d/3d_cube/sprites/square-blue.png | bin | 283 -> 0 bytes |
5 files changed, 954 insertions, 50 deletions
diff --git a/samples/99_genre_3d/02_wireframe/replay.txt b/samples/99_genre_3d/02_wireframe/replay.txt new file mode 100644 index 0000000..2786904 --- /dev/null +++ b/samples/99_genre_3d/02_wireframe/replay.txt @@ -0,0 +1,242 @@ +replay_version 2.0 +stopped_at 706 +seed 100 +recorded_at 2021-11-20 11:26:04 -0600 +[:mouse_button_up, 1, 0, 1, 1, 4] +[:key_down_raw, 1073741906, 0, 2, 2, 63] +[:key_down_raw, 1073741906, 0, 2, 3, 77] +[:key_down_raw, 1073741906, 0, 2, 4, 79] +[:key_down_raw, 1073741906, 0, 2, 5, 81] +[:key_down_raw, 1073741906, 0, 2, 6, 84] +[:key_down_raw, 1073741906, 0, 2, 7, 85] +[:key_down_raw, 1073741906, 0, 2, 8, 87] +[:key_down_raw, 1073741906, 0, 2, 9, 90] +[:key_down_raw, 1073741906, 0, 2, 10, 92] +[:key_down_raw, 1073741906, 0, 2, 11, 94] +[:key_down_raw, 1073741906, 0, 2, 12, 96] +[:key_down_raw, 1073741906, 0, 2, 13, 98] +[:key_down_raw, 1073741906, 0, 2, 14, 100] +[:key_down_raw, 1073741906, 0, 2, 15, 102] +[:key_up_raw, 1073741906, 0, 2, 16, 103] +[:key_down_raw, 1073741905, 0, 2, 17, 110] +[:key_down_raw, 1073741905, 0, 2, 18, 125] +[:key_down_raw, 1073741905, 0, 2, 19, 127] +[:key_down_raw, 1073741905, 0, 2, 20, 129] +[:key_down_raw, 1073741905, 0, 2, 21, 131] +[:key_down_raw, 1073741905, 0, 2, 22, 133] +[:key_down_raw, 1073741905, 0, 2, 23, 135] +[:key_down_raw, 1073741905, 0, 2, 24, 137] +[:key_down_raw, 1073741905, 0, 2, 25, 139] +[:key_down_raw, 1073741905, 0, 2, 26, 141] +[:key_down_raw, 1073741905, 0, 2, 27, 143] +[:key_down_raw, 1073741905, 0, 2, 28, 145] +[:key_down_raw, 1073741905, 0, 2, 29, 147] +[:key_down_raw, 1073741905, 0, 2, 30, 149] +[:key_down_raw, 1073741905, 0, 2, 31, 151] +[:key_down_raw, 1073741905, 0, 2, 32, 153] +[:key_down_raw, 1073741905, 0, 2, 33, 155] +[:key_down_raw, 1073741905, 0, 2, 34, 157] +[:key_down_raw, 1073741905, 0, 2, 35, 159] +[:key_down_raw, 1073741905, 0, 2, 36, 161] +[:key_down_raw, 1073741905, 0, 2, 37, 163] +[:key_down_raw, 1073741905, 0, 2, 38, 165] +[:key_down_raw, 1073741905, 0, 2, 39, 167] +[:key_down_raw, 1073741905, 0, 2, 40, 169] +[:key_down_raw, 1073741905, 0, 2, 41, 171] +[:key_up_raw, 1073741905, 0, 2, 42, 171] +[:key_down_raw, 1073741904, 0, 2, 43, 175] +[:key_down_raw, 1073741904, 0, 2, 44, 190] +[:key_down_raw, 1073741904, 0, 2, 45, 192] +[:key_down_raw, 1073741904, 0, 2, 46, 194] +[:key_down_raw, 1073741904, 0, 2, 47, 196] +[:key_down_raw, 1073741904, 0, 2, 48, 198] +[:key_down_raw, 1073741904, 0, 2, 49, 200] +[:key_down_raw, 1073741904, 0, 2, 50, 202] +[:key_down_raw, 1073741904, 0, 2, 51, 204] +[:key_down_raw, 1073741904, 0, 2, 52, 206] +[:key_down_raw, 1073741904, 0, 2, 53, 208] +[:key_down_raw, 1073741904, 0, 2, 54, 210] +[:key_down_raw, 1073741904, 0, 2, 55, 212] +[:key_down_raw, 1073741903, 0, 2, 56, 214] +[:key_down_raw, 1073741903, 0, 2, 57, 229] +[:key_down_raw, 1073741903, 0, 2, 58, 231] +[:key_down_raw, 1073741903, 0, 2, 59, 233] +[:key_down_raw, 1073741906, 0, 2, 60, 234] +[:key_up_raw, 1073741904, 0, 2, 61, 238] +[:key_down_raw, 1073741906, 0, 2, 62, 249] +[:key_down_raw, 1073741906, 0, 2, 63, 251] +[:key_down_raw, 1073741906, 0, 2, 64, 253] +[:key_down_raw, 1073741906, 0, 2, 65, 255] +[:key_down_raw, 1073741906, 0, 2, 66, 257] +[:key_down_raw, 1073741906, 0, 2, 67, 259] +[:key_down_raw, 1073741906, 0, 2, 68, 261] +[:key_down_raw, 1073741906, 0, 2, 69, 263] +[:key_down_raw, 1073741906, 0, 2, 70, 265] +[:key_down_raw, 1073741906, 0, 2, 71, 267] +[:key_down_raw, 1073741906, 0, 2, 72, 269] +[:key_down_raw, 1073741906, 0, 2, 73, 271] +[:key_down_raw, 1073741906, 0, 2, 74, 273] +[:key_down_raw, 1073741906, 0, 2, 75, 275] +[:key_down_raw, 1073741906, 0, 2, 76, 277] +[:key_down_raw, 1073741906, 0, 2, 77, 279] +[:key_down_raw, 1073741906, 0, 2, 78, 281] +[:key_down_raw, 1073741906, 0, 2, 79, 283] +[:key_down_raw, 1073741906, 0, 2, 80, 285] +[:key_down_raw, 1073741906, 0, 2, 81, 287] +[:key_down_raw, 1073741906, 0, 2, 82, 289] +[:key_down_raw, 1073741906, 0, 2, 83, 291] +[:key_down_raw, 1073741906, 0, 2, 84, 293] +[:key_down_raw, 1073741906, 0, 2, 85, 295] +[:key_down_raw, 1073741906, 0, 2, 86, 297] +[:key_down_raw, 1073741906, 0, 2, 87, 299] +[:key_down_raw, 1073741906, 0, 2, 88, 301] +[:key_down_raw, 1073741905, 0, 2, 89, 301] +[:key_up_raw, 1073741906, 0, 2, 90, 310] +[:key_up_raw, 1073741903, 0, 2, 91, 310] +[:key_down_raw, 1073741904, 0, 2, 92, 316] +[:key_down_raw, 1073741904, 0, 2, 93, 331] +[:key_down_raw, 1073741904, 0, 2, 94, 333] +[:key_down_raw, 1073741904, 0, 2, 95, 335] +[:key_down_raw, 1073741904, 0, 2, 96, 337] +[:key_down_raw, 1073741904, 0, 2, 97, 339] +[:key_down_raw, 1073741904, 0, 2, 98, 341] +[:key_down_raw, 1073741904, 0, 2, 99, 343] +[:key_down_raw, 1073741904, 0, 2, 100, 345] +[:key_down_raw, 1073741904, 0, 2, 101, 347] +[:key_down_raw, 1073741904, 0, 2, 102, 349] +[:key_down_raw, 1073741904, 0, 2, 103, 351] +[:key_down_raw, 1073741904, 0, 2, 104, 353] +[:key_down_raw, 1073741904, 0, 2, 105, 355] +[:key_down_raw, 1073741904, 0, 2, 106, 357] +[:key_down_raw, 1073741904, 0, 2, 107, 359] +[:key_down_raw, 1073741904, 0, 2, 108, 361] +[:key_up_raw, 1073741905, 0, 2, 109, 363] +[:key_down_raw, 1073741904, 0, 2, 110, 363] +[:key_down_raw, 1073741904, 0, 2, 111, 365] +[:key_down_raw, 1073741904, 0, 2, 112, 367] +[:key_down_raw, 1073741904, 0, 2, 113, 369] +[:key_down_raw, 1073741904, 0, 2, 114, 371] +[:key_down_raw, 1073741904, 0, 2, 115, 373] +[:key_down_raw, 1073741904, 0, 2, 116, 375] +[:key_down_raw, 1073741904, 0, 2, 117, 377] +[:key_down_raw, 1073741904, 0, 2, 118, 379] +[:key_down_raw, 1073741904, 0, 2, 119, 381] +[:key_down_raw, 1073741904, 0, 2, 120, 383] +[:key_down_raw, 1073741904, 0, 2, 121, 385] +[:key_down_raw, 1073741904, 0, 2, 122, 387] +[:key_down_raw, 1073741904, 0, 2, 123, 389] +[:key_down_raw, 1073741904, 0, 2, 124, 391] +[:key_down_raw, 1073741904, 0, 2, 125, 393] +[:key_down_raw, 1073741904, 0, 2, 126, 395] +[:key_down_raw, 1073741904, 0, 2, 127, 397] +[:key_up_raw, 1073741904, 0, 2, 128, 399] +[:key_down_raw, 1073741903, 0, 2, 129, 400] +[:key_down_raw, 1073741903, 0, 2, 130, 415] +[:key_down_raw, 1073741903, 0, 2, 131, 417] +[:key_down_raw, 1073741903, 0, 2, 132, 419] +[:key_down_raw, 1073741903, 0, 2, 133, 421] +[:key_down_raw, 1073741903, 0, 2, 134, 423] +[:key_down_raw, 1073741903, 0, 2, 135, 425] +[:key_down_raw, 1073741903, 0, 2, 136, 427] +[:key_down_raw, 1073741903, 0, 2, 137, 429] +[:key_down_raw, 1073741903, 0, 2, 138, 431] +[:key_down_raw, 1073741903, 0, 2, 139, 433] +[:key_down_raw, 1073741903, 0, 2, 140, 435] +[:key_down_raw, 1073741903, 0, 2, 141, 437] +[:key_down_raw, 1073741903, 0, 2, 142, 439] +[:key_down_raw, 1073741903, 0, 2, 143, 441] +[:key_down_raw, 1073741903, 0, 2, 144, 443] +[:key_down_raw, 1073741903, 0, 2, 145, 445] +[:key_down_raw, 1073741903, 0, 2, 146, 447] +[:key_down_raw, 1073741903, 0, 2, 147, 449] +[:key_down_raw, 1073741903, 0, 2, 148, 451] +[:key_down_raw, 1073741903, 0, 2, 149, 453] +[:key_down_raw, 1073741903, 0, 2, 150, 455] +[:key_down_raw, 1073741903, 0, 2, 151, 457] +[:key_down_raw, 1073741903, 0, 2, 152, 459] +[:key_down_raw, 1073741903, 0, 2, 153, 461] +[:key_down_raw, 1073741903, 0, 2, 154, 463] +[:key_down_raw, 1073741903, 0, 2, 155, 465] +[:key_down_raw, 1073741903, 0, 2, 156, 467] +[:key_down_raw, 1073741903, 0, 2, 157, 469] +[:key_down_raw, 1073741903, 0, 2, 158, 471] +[:key_down_raw, 1073741903, 0, 2, 159, 473] +[:key_down_raw, 1073741903, 0, 2, 160, 475] +[:key_down_raw, 1073741903, 0, 2, 161, 477] +[:key_down_raw, 1073741903, 0, 2, 162, 479] +[:key_down_raw, 1073741903, 0, 2, 163, 481] +[:key_down_raw, 1073741903, 0, 2, 164, 483] +[:key_down_raw, 1073741903, 0, 2, 165, 485] +[:key_down_raw, 1073741903, 0, 2, 166, 487] +[:key_down_raw, 1073741903, 0, 2, 167, 489] +[:key_down_raw, 1073741903, 0, 2, 168, 491] +[:key_down_raw, 1073741903, 0, 2, 169, 493] +[:key_down_raw, 1073741903, 0, 2, 170, 495] +[:key_down_raw, 1073741903, 0, 2, 171, 497] +[:key_down_raw, 1073741905, 0, 2, 172, 498] +[:key_down_raw, 1073741905, 0, 2, 173, 513] +[:key_down_raw, 1073741905, 0, 2, 174, 515] +[:key_down_raw, 1073741905, 0, 2, 175, 517] +[:key_down_raw, 1073741905, 0, 2, 176, 519] +[:key_down_raw, 1073741905, 0, 2, 177, 521] +[:key_down_raw, 1073741905, 0, 2, 178, 523] +[:key_down_raw, 1073741905, 0, 2, 179, 525] +[:key_down_raw, 1073741905, 0, 2, 180, 527] +[:key_down_raw, 1073741905, 0, 2, 181, 529] +[:key_down_raw, 1073741905, 0, 2, 182, 531] +[:key_down_raw, 1073741905, 0, 2, 183, 533] +[:key_down_raw, 1073741905, 0, 2, 184, 535] +[:key_down_raw, 1073741905, 0, 2, 185, 537] +[:key_down_raw, 1073741905, 0, 2, 186, 539] +[:key_down_raw, 1073741905, 0, 2, 187, 541] +[:key_down_raw, 1073741905, 0, 2, 188, 543] +[:key_up_raw, 1073741905, 0, 2, 189, 543] +[:key_up_raw, 1073741903, 0, 2, 190, 544] +[:key_down_raw, 1073741906, 0, 2, 191, 547] +[:key_down_raw, 1073741906, 0, 2, 192, 562] +[:key_down_raw, 1073741906, 0, 2, 193, 564] +[:key_down_raw, 1073741906, 0, 2, 194, 566] +[:key_down_raw, 1073741906, 0, 2, 195, 568] +[:key_down_raw, 1073741906, 0, 2, 196, 570] +[:key_down_raw, 1073741906, 0, 2, 197, 572] +[:key_down_raw, 1073741906, 0, 2, 198, 574] +[:key_down_raw, 1073741906, 0, 2, 199, 576] +[:key_down_raw, 1073741906, 0, 2, 200, 578] +[:key_down_raw, 1073741906, 0, 2, 201, 580] +[:key_down_raw, 1073741906, 0, 2, 202, 582] +[:key_down_raw, 1073741906, 0, 2, 203, 584] +[:key_down_raw, 1073741906, 0, 2, 204, 586] +[:key_down_raw, 1073741906, 0, 2, 205, 588] +[:key_down_raw, 1073741906, 0, 2, 206, 590] +[:key_down_raw, 1073741906, 0, 2, 207, 592] +[:key_down_raw, 1073741906, 0, 2, 208, 594] +[:key_down_raw, 1073741906, 0, 2, 209, 596] +[:key_down_raw, 1073741906, 0, 2, 210, 598] +[:key_down_raw, 1073741906, 0, 2, 211, 600] +[:key_down_raw, 1073741906, 0, 2, 212, 602] +[:key_down_raw, 1073741906, 0, 2, 213, 604] +[:key_down_raw, 1073741906, 0, 2, 214, 606] +[:key_down_raw, 1073741906, 0, 2, 215, 608] +[:key_down_raw, 1073741906, 0, 2, 216, 610] +[:key_down_raw, 1073741906, 0, 2, 217, 612] +[:key_down_raw, 1073741906, 0, 2, 218, 614] +[:key_down_raw, 1073741906, 0, 2, 219, 616] +[:key_down_raw, 1073741906, 0, 2, 220, 618] +[:key_down_raw, 1073741906, 0, 2, 221, 620] +[:key_down_raw, 1073741906, 0, 2, 222, 622] +[:key_down_raw, 1073741906, 0, 2, 223, 624] +[:key_down_raw, 1073741906, 0, 2, 224, 626] +[:key_down_raw, 1073741906, 0, 2, 225, 628] +[:key_down_raw, 1073741906, 0, 2, 226, 630] +[:key_down_raw, 1073741906, 0, 2, 227, 632] +[:key_down_raw, 1073741906, 0, 2, 228, 634] +[:key_up_raw, 1073741906, 0, 2, 229, 634] +[:key_down_raw, 96, 0, 2, 230, 648] +[:key_up_raw, 96, 0, 2, 231, 652] +[:mouse_move, 800, 84, 2, 232, 674] +[:mouse_move, 782, 88, 2, 233, 675] +[:mouse_move, 764, 94, 2, 234, 676] +[:mouse_move, 760, 94, 2, 235, 677] +[:mouse_move, 761, 94, 2, 236, 679] +[:mouse_move, 762, 93, 2, 237, 680] +[:key_down_raw, 13, 0, 2, 238, 706] diff --git a/samples/99_genre_3d/03_yaw_pitch_roll/app/main.rb b/samples/99_genre_3d/03_yaw_pitch_roll/app/main.rb new file mode 100644 index 0000000..52b5962 --- /dev/null +++ b/samples/99_genre_3d/03_yaw_pitch_roll/app/main.rb @@ -0,0 +1,351 @@ +class Game + attr_gtk + + def tick + defaults + render + input + end + + def matrix_mul m, v + (hmap x: ((m.x.x * v.x) + (m.x.y * v.y) + (m.x.z * v.z) + (m.x.w * v.w)), + y: ((m.y.x * v.x) + (m.y.y * v.y) + (m.y.z * v.z) + (m.y.w * v.w)), + z: ((m.z.x * v.x) + (m.z.y * v.y) + (m.z.z * v.z) + (m.z.w * v.w)), + w: ((m.w.x * v.x) + (m.w.y * v.y) + (m.w.z * v.z) + (m.w.w * v.w))) + end + + def player_ship + [ + # engine back + { x: -1, y: -1, z: 1, w: 0 }, + { x: -1, y: 1, z: 1, w: 0 }, + + { x: -1, y: 1, z: 1, w: 0 }, + { x: 1, y: 1, z: 1, w: 0 }, + + { x: 1, y: 1, z: 1, w: 0 }, + { x: 1, y: -1, z: 1, w: 0 }, + + { x: 1, y: -1, z: 1, w: 0 }, + { x: -1, y: -1, z: 1, w: 0 }, + + # engine front + { x: -1, y: -1, z: -1, w: 0 }, + { x: -1, y: 1, z: -1, w: 0 }, + + { x: -1, y: 1, z: -1, w: 0 }, + { x: 1, y: 1, z: -1, w: 0 }, + + { x: 1, y: 1, z: -1, w: 0 }, + { x: 1, y: -1, z: -1, w: 0 }, + + { x: 1, y: -1, z: -1, w: 0 }, + { x: -1, y: -1, z: -1, w: 0 }, + + # engine left + { x: -1, z: -1, y: -1, w: 0 }, + { x: -1, z: -1, y: 1, w: 0 }, + + { x: -1, z: -1, y: 1, w: 0 }, + { x: -1, z: 1, y: 1, w: 0 }, + + { x: -1, z: 1, y: 1, w: 0 }, + { x: -1, z: 1, y: -1, w: 0 }, + + { x: -1, z: 1, y: -1, w: 0 }, + { x: -1, z: -1, y: -1, w: 0 }, + + # engine right + { x: 1, z: -1, y: -1, w: 0 }, + { x: 1, z: -1, y: 1, w: 0 }, + + { x: 1, z: -1, y: 1, w: 0 }, + { x: 1, z: 1, y: 1, w: 0 }, + + { x: 1, z: 1, y: 1, w: 0 }, + { x: 1, z: 1, y: -1, w: 0 }, + + { x: 1, z: 1, y: -1, w: 0 }, + { x: 1, z: -1, y: -1, w: 0 }, + + # top front of engine to front of ship + { x: 1, y: 1, z: 1, w: 0 }, + { x: 0, y: -1, z: 9, w: 0 }, + + { x: 0, y: -1, z: 9, w: 0 }, + { x: -1, y: 1, z: 1, w: 0 }, + + # bottom front of engine + { x: 1, y: -1, z: 1, w: 0 }, + { x: 0, y: -1, z: 9, w: 0 }, + + { x: -1, y: -1, z: 1, w: 0 }, + { x: 0, y: -1, z: 9, w: 0 }, + + # right wing + # front of wing + { x: 1, y: 0.10, z: 1, w: 0 }, + { x: 9, y: 0.10, z: -1, w: 0 }, + + { x: 9, y: 0.10, z: -1, w: 0 }, + { x: 10, y: 0.10, z: -2, w: 0 }, + + # back of wing + { x: 1, y: 0.10, z: -1, w: 0 }, + { x: 9, y: 0.10, z: -1, w: 0 }, + + { x: 10, y: 0.10, z: -2, w: 0 }, + { x: 8, y: 0.10, z: -1, w: 0 }, + + # front of wing + { x: 1, y: -0.10, z: 1, w: 0 }, + { x: 9, y: -0.10, z: -1, w: 0 }, + + { x: 9, y: -0.10, z: -1, w: 0 }, + { x: 10, y: -0.10, z: -2, w: 0 }, + + # back of wing + { x: 1, y: -0.10, z: -1, w: 0 }, + { x: 9, y: -0.10, z: -1, w: 0 }, + + { x: 10, y: -0.10, z: -2, w: 0 }, + { x: 8, y: -0.10, z: -1, w: 0 }, + + # left wing + # front of wing + { x: -1, y: 0.10, z: 1, w: 0 }, + { x: -9, y: 0.10, z: -1, w: 0 }, + + { x: -9, y: 0.10, z: -1, w: 0 }, + { x: -10, y: 0.10, z: -2, w: 0 }, + + # back of wing + { x: -1, y: 0.10, z: -1, w: 0 }, + { x: -9, y: 0.10, z: -1, w: 0 }, + + { x: -10, y: 0.10, z: -2, w: 0 }, + { x: -8, y: 0.10, z: -1, w: 0 }, + + # front of wing + { x: -1, y: -0.10, z: 1, w: 0 }, + { x: -9, y: -0.10, z: -1, w: 0 }, + + { x: -9, y: -0.10, z: -1, w: 0 }, + { x: -10, y: -0.10, z: -2, w: 0 }, + + # back of wing + { x: -1, y: -0.10, z: -1, w: 0 }, + { x: -9, y: -0.10, z: -1, w: 0 }, + + { x: -10, y: -0.10, z: -2, w: 0 }, + { x: -8, y: -0.10, z: -1, w: 0 }, + + # left fin + # top + { x: -1, y: 0.10, z: 1, w: 0 }, + { x: -1, y: 3, z: -3, w: 0 }, + + { x: -1, y: 0.10, z: -1, w: 0 }, + { x: -1, y: 3, z: -3, w: 0 }, + + { x: -1.1, y: 0.10, z: 1, w: 0 }, + { x: -1.1, y: 3, z: -3, w: 0 }, + + { x: -1.1, y: 0.10, z: -1, w: 0 }, + { x: -1.1, y: 3, z: -3, w: 0 }, + + # bottom + { x: -1, y: -0.10, z: 1, w: 0 }, + { x: -1, y: -2, z: -2, w: 0 }, + + { x: -1, y: -0.10, z: -1, w: 0 }, + { x: -1, y: -2, z: -2, w: 0 }, + + { x: -1.1, y: -0.10, z: 1, w: 0 }, + { x: -1.1, y: -2, z: -2, w: 0 }, + + { x: -1.1, y: -0.10, z: -1, w: 0 }, + { x: -1.1, y: -2, z: -2, w: 0 }, + + # right fin + { x: 1, y: 0.10, z: 1, w: 0 }, + { x: 1, y: 3, z: -3, w: 0 }, + + { x: 1, y: 0.10, z: -1, w: 0 }, + { x: 1, y: 3, z: -3, w: 0 }, + + { x: 1.1, y: 0.10, z: 1, w: 0 }, + { x: 1.1, y: 3, z: -3, w: 0 }, + + { x: 1.1, y: 0.10, z: -1, w: 0 }, + { x: 1.1, y: 3, z: -3, w: 0 }, + + # bottom + { x: 1, y: -0.10, z: 1, w: 0 }, + { x: 1, y: -2, z: -2, w: 0 }, + + { x: 1, y: -0.10, z: -1, w: 0 }, + { x: 1, y: -2, z: -2, w: 0 }, + + { x: 1.1, y: -0.10, z: 1, w: 0 }, + { x: 1.1, y: -2, z: -2, w: 0 }, + + { x: 1.1, y: -0.10, z: -1, w: 0 }, + { x: 1.1, y: -2, z: -2, w: 0 }, + ] + end + + def defaults + state.points ||= player_ship + state.shifted_points ||= state.points.map { |point| point } + + state.scale ||= 1 + state.angle_x ||= 0 + state.angle_y ||= 0 + state.angle_z ||= 0 + end + + def matrix_new x0, y0, z0, w0, x1, y1, z1, w1, x2, y2, z2, w2, x3, y3, z3, w3 + (hmap x: (hmap x: x0, y: y0, z: z0, w: w0), + y: (hmap x: x1, y: y1, z: z1, w: w1), + z: (hmap x: x2, y: y2, z: z2, w: w2), + w: (hmap x: x3, y: y3, z: z3, w: w3)) + end + + def angle_z_matrix degrees + cos_t = Math.cos degrees.to_radians + sin_t = Math.sin degrees.to_radians + (matrix_new cos_t, -sin_t, 0, 0, + sin_t, cos_t, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1) + end + + def angle_y_matrix degrees + cos_t = Math.cos degrees.to_radians + sin_t = Math.sin degrees.to_radians + (matrix_new cos_t, 0, sin_t, 0, + 0, 1, 0, 0, + -sin_t, 0, cos_t, 0, + 0, 0, 0, 1) + end + + def angle_x_matrix degrees + cos_t = Math.cos degrees.to_radians + sin_t = Math.sin degrees.to_radians + (matrix_new 1, 0, 0, 0, + 0, cos_t, -sin_t, 0, + 0, sin_t, cos_t, 0, + 0, 0, 0, 1) + end + + def scale_matrix factor + (matrix_new factor, 0, 0, 0, + 0, factor, 0, 0, + 0, 0, factor, 0, + 0, 0, 0, 1) + end + + def input + if (inputs.keyboard.shift && inputs.keyboard.p) + state.scale -= 0.1 + elsif inputs.keyboard.p + state.scale += 0.1 + end + + if inputs.mouse.wheel + state.scale += inputs.mouse.wheel.y + end + + state.scale = state.scale.clamp(0.1, 1000) + + if (inputs.keyboard.shift && inputs.keyboard.y) || inputs.keyboard.right + state.angle_y += 1 + elsif (inputs.keyboard.y) || inputs.keyboard.left + state.angle_y -= 1 + end + + if (inputs.keyboard.shift && inputs.keyboard.x) || inputs.keyboard.down + state.angle_x -= 1 + elsif (inputs.keyboard.x || inputs.keyboard.up) + state.angle_x += 1 + end + + if inputs.keyboard.shift && inputs.keyboard.z + state.angle_z += 1 + elsif inputs.keyboard.z + state.angle_z -= 1 + end + + if inputs.keyboard.zero + state.angle_x = 0 + state.angle_y = 0 + state.angle_z = 0 + end + + angle_x = state.angle_x + angle_y = state.angle_y + angle_z = state.angle_z + scale = state.scale + + s_matrix = scale_matrix state.scale + x_matrix = angle_z_matrix angle_z + y_matrix = angle_y_matrix angle_y + z_matrix = angle_x_matrix angle_x + + state.shifted_points = state.points.map do |point| + (matrix_mul s_matrix, + (matrix_mul z_matrix, + (matrix_mul x_matrix, + (matrix_mul y_matrix, point)))).merge(original: point) + end + end + + def thick_line line + [ + line.merge(y: line.y - 1, y2: line.y2 - 1, r: 0, g: 0, b: 0), + line.merge(x: line.x - 1, x2: line.x2 - 1, r: 0, g: 0, b: 0), + line.merge(x: line.x - 0, x2: line.x2 - 0, r: 0, g: 0, b: 0), + line.merge(y: line.y + 1, y2: line.y2 + 1, r: 0, g: 0, b: 0), + line.merge(x: line.x + 1, x2: line.x2 + 1, r: 0, g: 0, b: 0) + ] + end + + def render + outputs.lines << state.shifted_points.each_slice(2).map do |(p1, p2)| + perc = 0 + thick_line({ x: p1.x.*(10) + 640, y: p1.y.*(10) + 320, + x2: p2.x.*(10) + 640, y2: p2.y.*(10) + 320, + r: 255 * perc, + g: 255 * perc, + b: 255 * perc }) + end + + outputs.labels << [ 10, 700, "angle_x: #{state.angle_x.to_sf}", 0] + outputs.labels << [ 10, 670, "x, shift+x", 0] + + outputs.labels << [210, 700, "angle_y: #{state.angle_y.to_sf}", 0] + outputs.labels << [210, 670, "y, shift+y", 0] + + outputs.labels << [410, 700, "angle_z: #{state.angle_z.to_sf}", 0] + outputs.labels << [410, 670, "z, shift+z", 0] + + outputs.labels << [610, 700, "scale: #{state.scale.to_sf}", 0] + outputs.labels << [610, 670, "p, shift+p", 0] + end +end + +$game = Game.new + +def tick args + $game.args = args + $game.tick +end + +def set_angles x, y, z + $game.state.angle_x = x + $game.state.angle_y = y + $game.state.angle_z = z +end + +$gtk.reset diff --git a/samples/99_genre_3d/03_yaw_pitch_roll/replay.txt b/samples/99_genre_3d/03_yaw_pitch_roll/replay.txt new file mode 100644 index 0000000..918fc9e --- /dev/null +++ b/samples/99_genre_3d/03_yaw_pitch_roll/replay.txt @@ -0,0 +1,361 @@ +replay_version 2.0 +stopped_at 493 +seed 100 +recorded_at 2021-10-18 16:32:03 -0500 +[:mouse_button_up, 1, 0, 1, 1, 1] +[:mouse_move, 813, 82, 2, 2, 9] +[:mouse_move, 813, 83, 2, 3, 17] +[:mouse_move, 812, 84, 2, 4, 17] +[:mouse_move, 809, 86, 2, 5, 17] +[:mouse_move, 803, 91, 2, 6, 18] +[:mouse_move, 795, 96, 2, 7, 18] +[:mouse_move, 792, 98, 2, 8, 19] +[:mouse_move, 791, 106, 2, 9, 19] +[:mouse_move, 791, 120, 2, 10, 19] +[:mouse_move, 791, 138, 2, 11, 20] +[:mouse_move, 794, 157, 2, 12, 20] +[:mouse_move, 795, 175, 2, 13, 21] +[:mouse_move, 795, 193, 2, 14, 21] +[:mouse_move, 795, 211, 2, 15, 21] +[:mouse_move, 795, 225, 2, 16, 22] +[:mouse_move, 795, 233, 2, 17, 22] +[:mouse_move, 795, 236, 2, 18, 23] +[:mouse_move, 795, 237, 2, 19, 23] +[:mouse_move, 795, 238, 2, 20, 24] +[:mouse_move, 795, 239, 2, 21, 24] +[:mouse_move, 795, 240, 2, 22, 25] +[:mouse_move, 794, 241, 2, 23, 26] +[:mouse_button_pressed, 1, 0, 1, 24, 29] +[:mouse_button_up, 1, 0, 1, 25, 31] +[:key_down_raw, 120, 0, 2, 26, 49] +[:key_down_raw, 120, 0, 2, 27, 55] +[:key_down_raw, 120, 0, 2, 28, 56] +[:key_down_raw, 120, 0, 2, 29, 56] +[:key_down_raw, 120, 0, 2, 30, 57] +[:key_down_raw, 120, 0, 2, 31, 58] +[:key_down_raw, 120, 0, 2, 32, 59] +[:key_down_raw, 120, 0, 2, 33, 60] +[:key_down_raw, 120, 0, 2, 34, 60] +[:key_down_raw, 120, 0, 2, 35, 61] +[:key_down_raw, 120, 0, 2, 36, 62] +[:key_down_raw, 120, 0, 2, 37, 63] +[:key_down_raw, 120, 0, 2, 38, 64] +[:key_down_raw, 120, 0, 2, 39, 65] +[:key_down_raw, 120, 0, 2, 40, 66] +[:key_down_raw, 120, 0, 2, 41, 66] +[:key_down_raw, 120, 0, 2, 42, 67] +[:key_down_raw, 120, 0, 2, 43, 68] +[:key_down_raw, 120, 0, 2, 44, 69] +[:key_down_raw, 120, 0, 2, 45, 70] +[:key_down_raw, 120, 0, 2, 46, 70] +[:key_down_raw, 120, 0, 2, 47, 71] +[:key_down_raw, 120, 0, 2, 48, 72] +[:key_down_raw, 120, 0, 2, 49, 73] +[:key_down_raw, 120, 0, 2, 50, 74] +[:key_down_raw, 120, 0, 2, 51, 75] +[:key_up_raw, 120, 0, 2, 52, 75] +[:key_down_raw, 1073742053, 2, 2, 53, 81] +[:key_down_raw, 120, 2, 2, 54, 83] +[:key_down_raw, 120, 2, 2, 55, 89] +[:key_down_raw, 120, 2, 2, 56, 90] +[:key_down_raw, 120, 2, 2, 57, 91] +[:key_down_raw, 120, 2, 2, 58, 92] +[:key_down_raw, 120, 2, 2, 59, 93] +[:key_down_raw, 120, 2, 2, 60, 93] +[:key_down_raw, 120, 2, 2, 61, 94] +[:key_down_raw, 120, 2, 2, 62, 95] +[:key_down_raw, 120, 2, 2, 63, 96] +[:key_down_raw, 120, 2, 2, 64, 97] +[:key_down_raw, 120, 2, 2, 65, 97] +[:key_down_raw, 120, 2, 2, 66, 98] +[:key_down_raw, 120, 2, 2, 67, 99] +[:key_down_raw, 120, 2, 2, 68, 100] +[:key_down_raw, 120, 2, 2, 69, 101] +[:key_down_raw, 120, 2, 2, 70, 102] +[:key_down_raw, 120, 2, 2, 71, 102] +[:key_down_raw, 120, 2, 2, 72, 103] +[:key_down_raw, 120, 2, 2, 73, 104] +[:key_down_raw, 120, 2, 2, 74, 105] +[:key_down_raw, 120, 2, 2, 75, 106] +[:key_down_raw, 120, 2, 2, 76, 107] +[:key_down_raw, 120, 2, 2, 77, 107] +[:key_down_raw, 120, 2, 2, 78, 108] +[:key_down_raw, 120, 2, 2, 79, 109] +[:key_down_raw, 120, 2, 2, 80, 110] +[:key_down_raw, 120, 2, 2, 81, 111] +[:key_down_raw, 120, 2, 2, 82, 111] +[:key_down_raw, 120, 2, 2, 83, 112] +[:key_down_raw, 120, 2, 2, 84, 113] +[:key_down_raw, 120, 2, 2, 85, 114] +[:key_down_raw, 120, 2, 2, 86, 115] +[:key_down_raw, 120, 2, 2, 87, 116] +[:key_down_raw, 120, 2, 2, 88, 117] +[:key_down_raw, 120, 2, 2, 89, 117] +[:key_down_raw, 120, 2, 2, 90, 118] +[:key_down_raw, 120, 2, 2, 91, 119] +[:key_down_raw, 120, 2, 2, 92, 120] +[:key_down_raw, 120, 2, 2, 93, 121] +[:key_down_raw, 120, 2, 2, 94, 122] +[:key_down_raw, 120, 2, 2, 95, 122] +[:key_down_raw, 120, 2, 2, 96, 123] +[:key_down_raw, 120, 2, 2, 97, 124] +[:key_down_raw, 120, 2, 2, 98, 125] +[:key_down_raw, 120, 2, 2, 99, 126] +[:key_down_raw, 120, 2, 2, 100, 127] +[:key_down_raw, 120, 2, 2, 101, 127] +[:key_down_raw, 120, 2, 2, 102, 128] +[:key_down_raw, 120, 2, 2, 103, 129] +[:key_down_raw, 120, 2, 2, 104, 130] +[:key_down_raw, 120, 2, 2, 105, 131] +[:key_down_raw, 120, 2, 2, 106, 131] +[:key_down_raw, 120, 2, 2, 107, 132] +[:key_down_raw, 120, 2, 2, 108, 133] +[:key_down_raw, 120, 2, 2, 109, 134] +[:key_down_raw, 120, 2, 2, 110, 135] +[:key_down_raw, 120, 2, 2, 111, 136] +[:key_down_raw, 120, 2, 2, 112, 136] +[:key_down_raw, 120, 2, 2, 113, 137] +[:key_down_raw, 120, 2, 2, 114, 138] +[:key_down_raw, 120, 2, 2, 115, 139] +[:key_down_raw, 120, 2, 2, 116, 140] +[:key_down_raw, 120, 2, 2, 117, 140] +[:key_down_raw, 120, 2, 2, 118, 141] +[:key_down_raw, 120, 2, 2, 119, 142] +[:key_down_raw, 120, 2, 2, 120, 143] +[:key_down_raw, 120, 2, 2, 121, 144] +[:key_up_raw, 1073742053, 0, 2, 122, 144] +[:key_down_raw, 120, 0, 2, 123, 145] +[:key_up_raw, 120, 0, 2, 124, 145] +[:key_down_raw, 121, 0, 2, 125, 158] +[:key_down_raw, 121, 0, 2, 126, 165] +[:key_down_raw, 121, 0, 2, 127, 166] +[:key_down_raw, 121, 0, 2, 128, 166] +[:key_down_raw, 121, 0, 2, 129, 167] +[:key_down_raw, 121, 0, 2, 130, 168] +[:key_down_raw, 121, 0, 2, 131, 169] +[:key_down_raw, 121, 0, 2, 132, 170] +[:key_down_raw, 121, 0, 2, 133, 171] +[:key_down_raw, 121, 0, 2, 134, 171] +[:key_down_raw, 121, 0, 2, 135, 172] +[:key_down_raw, 121, 0, 2, 136, 173] +[:key_down_raw, 121, 0, 2, 137, 174] +[:key_down_raw, 121, 0, 2, 138, 175] +[:key_down_raw, 121, 0, 2, 139, 175] +[:key_down_raw, 121, 0, 2, 140, 176] +[:key_down_raw, 121, 0, 2, 141, 177] +[:key_down_raw, 121, 0, 2, 142, 178] +[:key_down_raw, 121, 0, 2, 143, 179] +[:key_down_raw, 121, 0, 2, 144, 180] +[:key_down_raw, 121, 0, 2, 145, 180] +[:key_down_raw, 121, 0, 2, 146, 181] +[:key_down_raw, 121, 0, 2, 147, 182] +[:key_down_raw, 121, 0, 2, 148, 183] +[:key_down_raw, 121, 0, 2, 149, 184] +[:key_down_raw, 121, 0, 2, 150, 185] +[:key_down_raw, 121, 0, 2, 151, 185] +[:key_down_raw, 121, 0, 2, 152, 186] +[:key_down_raw, 121, 0, 2, 153, 187] +[:key_down_raw, 121, 0, 2, 154, 188] +[:key_down_raw, 121, 0, 2, 155, 189] +[:key_down_raw, 121, 0, 2, 156, 190] +[:key_down_raw, 121, 0, 2, 157, 190] +[:key_up_raw, 121, 0, 2, 158, 191] +[:key_down_raw, 1073742053, 2, 2, 159, 198] +[:key_down_raw, 121, 2, 2, 160, 203] +[:key_down_raw, 121, 2, 2, 161, 209] +[:key_down_raw, 121, 2, 2, 162, 210] +[:key_down_raw, 121, 2, 2, 163, 211] +[:key_down_raw, 121, 2, 2, 164, 212] +[:key_down_raw, 121, 2, 2, 165, 213] +[:key_down_raw, 121, 2, 2, 166, 213] +[:key_down_raw, 121, 2, 2, 167, 214] +[:key_down_raw, 121, 2, 2, 168, 215] +[:key_down_raw, 121, 2, 2, 169, 216] +[:key_down_raw, 121, 2, 2, 170, 217] +[:key_down_raw, 121, 2, 2, 171, 217] +[:key_down_raw, 121, 2, 2, 172, 219] +[:key_down_raw, 121, 2, 2, 173, 220] +[:key_down_raw, 121, 2, 2, 174, 220] +[:key_down_raw, 121, 2, 2, 175, 221] +[:key_down_raw, 121, 2, 2, 176, 222] +[:key_down_raw, 121, 2, 2, 177, 223] +[:key_down_raw, 121, 2, 2, 178, 224] +[:key_down_raw, 121, 2, 2, 179, 224] +[:key_down_raw, 121, 2, 2, 180, 225] +[:key_down_raw, 121, 2, 2, 181, 226] +[:key_down_raw, 121, 2, 2, 182, 227] +[:key_down_raw, 121, 2, 2, 183, 228] +[:key_down_raw, 121, 2, 2, 184, 229] +[:key_down_raw, 121, 2, 2, 185, 229] +[:key_down_raw, 121, 2, 2, 186, 230] +[:key_down_raw, 121, 2, 2, 187, 231] +[:key_down_raw, 121, 2, 2, 188, 232] +[:key_down_raw, 121, 2, 2, 189, 233] +[:key_down_raw, 121, 2, 2, 190, 233] +[:key_down_raw, 121, 2, 2, 191, 234] +[:key_down_raw, 121, 2, 2, 192, 235] +[:key_down_raw, 121, 2, 2, 193, 236] +[:key_down_raw, 121, 2, 2, 194, 237] +[:key_down_raw, 121, 2, 2, 195, 238] +[:key_down_raw, 121, 2, 2, 196, 238] +[:key_down_raw, 121, 2, 2, 197, 239] +[:key_down_raw, 121, 2, 2, 198, 240] +[:key_down_raw, 121, 2, 2, 199, 241] +[:key_down_raw, 121, 2, 2, 200, 242] +[:key_down_raw, 121, 2, 2, 201, 242] +[:key_down_raw, 121, 2, 2, 202, 243] +[:key_down_raw, 121, 2, 2, 203, 244] +[:key_down_raw, 121, 2, 2, 204, 245] +[:key_down_raw, 121, 2, 2, 205, 246] +[:key_down_raw, 121, 2, 2, 206, 247] +[:key_down_raw, 121, 2, 2, 207, 247] +[:key_down_raw, 121, 2, 2, 208, 248] +[:key_down_raw, 121, 2, 2, 209, 249] +[:key_down_raw, 121, 2, 2, 210, 250] +[:key_down_raw, 121, 2, 2, 211, 251] +[:key_down_raw, 121, 2, 2, 212, 251] +[:key_down_raw, 121, 2, 2, 213, 252] +[:key_down_raw, 121, 2, 2, 214, 253] +[:key_down_raw, 121, 2, 2, 215, 254] +[:key_down_raw, 121, 2, 2, 216, 255] +[:key_down_raw, 121, 2, 2, 217, 255] +[:key_down_raw, 121, 2, 2, 218, 256] +[:key_down_raw, 121, 2, 2, 219, 257] +[:key_down_raw, 121, 2, 2, 220, 258] +[:key_down_raw, 121, 2, 2, 221, 259] +[:key_down_raw, 121, 2, 2, 222, 260] +[:key_down_raw, 121, 2, 2, 223, 260] +[:key_down_raw, 121, 2, 2, 224, 261] +[:key_down_raw, 121, 2, 2, 225, 262] +[:key_down_raw, 121, 2, 2, 226, 263] +[:key_up_raw, 121, 2, 2, 227, 263] +[:key_up_raw, 1073742053, 0, 2, 228, 266] +[:key_down_raw, 122, 0, 2, 229, 270] +[:key_up_raw, 122, 0, 2, 230, 272] +[:key_down_raw, 122, 0, 2, 231, 289] +[:key_down_raw, 122, 0, 2, 232, 295] +[:key_down_raw, 122, 0, 2, 233, 296] +[:key_down_raw, 122, 0, 2, 234, 297] +[:key_down_raw, 122, 0, 2, 235, 297] +[:key_down_raw, 122, 0, 2, 236, 298] +[:key_down_raw, 122, 0, 2, 237, 299] +[:key_down_raw, 122, 0, 2, 238, 300] +[:key_down_raw, 122, 0, 2, 239, 301] +[:key_down_raw, 122, 0, 2, 240, 302] +[:key_down_raw, 122, 0, 2, 241, 302] +[:key_down_raw, 122, 0, 2, 242, 303] +[:key_down_raw, 122, 0, 2, 243, 304] +[:key_down_raw, 122, 0, 2, 244, 305] +[:key_down_raw, 122, 0, 2, 245, 306] +[:key_down_raw, 122, 0, 2, 246, 306] +[:key_down_raw, 122, 0, 2, 247, 307] +[:key_down_raw, 122, 0, 2, 248, 308] +[:key_down_raw, 122, 0, 2, 249, 309] +[:key_down_raw, 122, 0, 2, 250, 310] +[:key_up_raw, 122, 0, 2, 251, 310] +[:key_down_raw, 1073742053, 2, 2, 252, 319] +[:key_down_raw, 122, 2, 2, 253, 322] +[:key_down_raw, 122, 2, 2, 254, 328] +[:key_down_raw, 122, 2, 2, 255, 329] +[:key_down_raw, 122, 2, 2, 256, 330] +[:key_down_raw, 122, 2, 2, 257, 331] +[:key_down_raw, 122, 2, 2, 258, 332] +[:key_down_raw, 122, 2, 2, 259, 333] +[:key_down_raw, 122, 2, 2, 260, 333] +[:key_down_raw, 122, 2, 2, 261, 334] +[:key_down_raw, 122, 2, 2, 262, 335] +[:key_down_raw, 122, 2, 2, 263, 336] +[:key_down_raw, 122, 2, 2, 264, 337] +[:key_down_raw, 122, 2, 2, 265, 338] +[:key_down_raw, 122, 2, 2, 266, 339] +[:key_down_raw, 122, 2, 2, 267, 340] +[:key_down_raw, 122, 2, 2, 268, 341] +[:key_down_raw, 122, 2, 2, 269, 341] +[:key_down_raw, 122, 2, 2, 270, 342] +[:key_down_raw, 122, 2, 2, 271, 343] +[:key_down_raw, 122, 2, 2, 272, 344] +[:key_down_raw, 122, 2, 2, 273, 345] +[:key_down_raw, 122, 2, 2, 274, 346] +[:key_down_raw, 122, 2, 2, 275, 346] +[:key_down_raw, 122, 2, 2, 276, 347] +[:key_down_raw, 122, 2, 2, 277, 348] +[:key_down_raw, 122, 2, 2, 278, 349] +[:key_down_raw, 122, 2, 2, 279, 350] +[:key_down_raw, 122, 2, 2, 280, 350] +[:key_down_raw, 122, 2, 2, 281, 351] +[:key_down_raw, 122, 2, 2, 282, 352] +[:key_down_raw, 122, 2, 2, 283, 353] +[:key_down_raw, 122, 2, 2, 284, 354] +[:key_down_raw, 122, 2, 2, 285, 355] +[:key_down_raw, 122, 2, 2, 286, 355] +[:key_down_raw, 122, 2, 2, 287, 356] +[:key_down_raw, 122, 2, 2, 288, 357] +[:key_down_raw, 122, 2, 2, 289, 358] +[:key_down_raw, 122, 2, 2, 290, 359] +[:key_down_raw, 122, 2, 2, 291, 360] +[:key_down_raw, 122, 2, 2, 292, 360] +[:key_down_raw, 122, 2, 2, 293, 361] +[:key_down_raw, 122, 2, 2, 294, 362] +[:key_down_raw, 122, 2, 2, 295, 363] +[:key_up_raw, 122, 2, 2, 296, 363] +[:key_up_raw, 1073742053, 0, 2, 297, 366] +[:key_down_raw, 112, 0, 2, 298, 370] +[:key_down_raw, 112, 0, 2, 299, 376] +[:key_down_raw, 112, 0, 2, 300, 377] +[:key_down_raw, 112, 0, 2, 301, 378] +[:key_down_raw, 112, 0, 2, 302, 379] +[:key_down_raw, 112, 0, 2, 303, 380] +[:key_down_raw, 112, 0, 2, 304, 381] +[:key_down_raw, 112, 0, 2, 305, 381] +[:key_down_raw, 112, 0, 2, 306, 382] +[:key_down_raw, 112, 0, 2, 307, 383] +[:key_down_raw, 112, 0, 2, 308, 384] +[:key_down_raw, 112, 0, 2, 309, 385] +[:key_down_raw, 112, 0, 2, 310, 386] +[:key_down_raw, 112, 0, 2, 311, 386] +[:key_down_raw, 112, 0, 2, 312, 387] +[:key_down_raw, 112, 0, 2, 313, 388] +[:key_down_raw, 112, 0, 2, 314, 389] +[:key_down_raw, 112, 0, 2, 315, 390] +[:key_down_raw, 112, 0, 2, 316, 391] +[:key_down_raw, 112, 0, 2, 317, 391] +[:key_down_raw, 112, 0, 2, 318, 392] +[:key_down_raw, 112, 0, 2, 319, 393] +[:key_down_raw, 112, 0, 2, 320, 394] +[:key_down_raw, 112, 0, 2, 321, 395] +[:key_up_raw, 112, 0, 2, 322, 395] +[:key_down_raw, 1073742049, 1, 2, 323, 402] +[:key_down_raw, 112, 1, 2, 324, 402] +[:key_down_raw, 112, 1, 2, 325, 409] +[:key_down_raw, 112, 1, 2, 326, 410] +[:key_down_raw, 112, 1, 2, 327, 410] +[:key_down_raw, 112, 1, 2, 328, 411] +[:key_down_raw, 112, 1, 2, 329, 412] +[:key_down_raw, 112, 1, 2, 330, 413] +[:key_down_raw, 112, 1, 2, 331, 414] +[:key_down_raw, 112, 1, 2, 332, 415] +[:key_down_raw, 112, 1, 2, 333, 415] +[:key_down_raw, 112, 1, 2, 334, 416] +[:key_down_raw, 112, 1, 2, 335, 417] +[:key_down_raw, 112, 1, 2, 336, 418] +[:key_down_raw, 112, 1, 2, 337, 419] +[:key_down_raw, 112, 1, 2, 338, 420] +[:key_down_raw, 112, 1, 2, 339, 420] +[:key_down_raw, 112, 1, 2, 340, 421] +[:key_down_raw, 112, 1, 2, 341, 422] +[:key_down_raw, 112, 1, 2, 342, 423] +[:key_down_raw, 112, 1, 2, 343, 424] +[:key_down_raw, 112, 1, 2, 344, 424] +[:key_down_raw, 112, 1, 2, 345, 425] +[:key_down_raw, 112, 1, 2, 346, 426] +[:key_down_raw, 112, 1, 2, 347, 427] +[:key_down_raw, 112, 1, 2, 348, 428] +[:key_down_raw, 112, 1, 2, 349, 429] +[:key_down_raw, 112, 1, 2, 350, 429] +[:key_down_raw, 112, 1, 2, 351, 430] +[:key_down_raw, 112, 1, 2, 352, 431] +[:key_up_raw, 112, 1, 2, 353, 432] +[:key_up_raw, 1073742049, 0, 2, 354, 433] +[:key_down_raw, 96, 0, 2, 355, 439] +[:key_up_raw, 96, 0, 2, 356, 441] +[:key_down_raw, 13, 0, 2, 357, 493] diff --git a/samples/99_genre_3d/3d_cube/app/main.rb b/samples/99_genre_3d/3d_cube/app/main.rb deleted file mode 100644 index fc95291..0000000 --- a/samples/99_genre_3d/3d_cube/app/main.rb +++ /dev/null @@ -1,50 +0,0 @@ -STARTX = 0.0 -STARTY = 0.0 -ENDY = 20.0 -ENDX = 20.0 -SPINPOINT = 10 -SPINDURATION = 400 -POINTSIZE = 8 -BOXDEPTH = 40 -YAW = 1 -DISTANCE = 10 - -def tick args - args.outputs.background_color = [0, 0, 0] - a = Math.sin(args.state.tick_count / SPINDURATION) * Math.tan(args.state.tick_count / SPINDURATION) - s = Math.sin(a) - c = Math.cos(a) - x = STARTX - y = STARTY - offset_x = (1280 - (ENDX - STARTX)) / 2 - offset_y = (360 - (ENDY - STARTY)) / 2 - - srand(1) - while y < ENDY do - while x < ENDX do - if (y == STARTY || - y == (ENDY / 0.5) * 2 || - y == (ENDY / 0.5) * 2 + 0.5 || - y == ENDY - 0.5 || - x == STARTX || - x == ENDX - 0.5) - z = rand(BOXDEPTH) - z *= Math.sin(a / 2) - x -= SPINPOINT - u = (x * c) - (z * s) - v = (x * s) + (z * c) - k = DISTANCE.fdiv(100) + (v / 500 * YAW) - u = u / k - v = y / k - w = POINTSIZE / 10 / k - args.outputs.sprites << { x: offset_x + u - w, y: offset_y + v - w, w: w, h: w, path: 'sprites/square-blue.png'} - x += SPINPOINT - end - x += 0.5 - end - y += 0.5 - x = STARTX - end -end - -$gtk.reset diff --git a/samples/99_genre_3d/3d_cube/sprites/square-blue.png b/samples/99_genre_3d/3d_cube/sprites/square-blue.png Binary files differdeleted file mode 100644 index b840849..0000000 --- a/samples/99_genre_3d/3d_cube/sprites/square-blue.png +++ /dev/null |
