####Reference links obelisk.js で立体的なドット絵を描いてみるテスト http://jsdo.it/cx20/bQtQ
nosir obelisk.js - GitHub https://github.com/nosir/obelisk.js/
MARIO JUMP - BY ANTONIO R / Q-BLOCK Create 3D Pixel Art Online http://kyucon.com/qblock/#/2300
| <canvas id="canvas-floor" width="465" height="465"></canvas> | |
| <canvas id="canvas-demo" width="465" height="465"></canvas> |
| var DOT_SIZE = 14; | |
| var X_START_POS = 0; | |
| var Y_START_POS = 70; | |
| var Z_START_POS = 0; | |
| // ‥‥‥‥‥‥‥‥‥‥‥‥‥□□□ | |
| // ‥‥‥‥‥‥〓〓〓〓〓‥‥□□□ | |
| // ‥‥‥‥‥〓〓〓〓〓〓〓〓〓□□ | |
| // ‥‥‥‥‥■■■□□■□‥■■■ | |
| // ‥‥‥‥■□■□□□■□□■■■ | |
| // ‥‥‥‥■□■■□□□■□□□■ | |
| // ‥‥‥‥■■□□□□■■■■■‥ | |
| // ‥‥‥‥‥‥□□□□□□□■‥‥ | |
| // ‥‥■■■■■〓■■■〓■‥‥‥ | |
| // ‥■■■■■■■〓■■■〓‥‥■ | |
| // □□■■■■■■〓〓〓〓〓‥‥■ | |
| // □□□‥〓〓■〓〓□〓〓□〓■■ | |
| // ‥□‥■〓〓〓〓〓〓〓〓〓〓■■ | |
| // ‥‥■■■〓〓〓〓〓〓〓〓〓■■ | |
| // ‥■■■〓〓〓〓〓〓〓‥‥‥‥‥ | |
| // ‥■‥‥〓〓〓〓‥‥‥‥‥‥‥‥ | |
| var dataSet = [ | |
| /* 1 */ | |
| [ | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BG","BG","BG", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BG","BG","BG", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BG","BG","BG" | |
| ], | |
| /* 2 */ | |
| [ | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BG","BG","BG", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BG","BG","BG", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BG","BG","BG" | |
| ], | |
| /* 3 */ | |
| [ | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BL","RD","RD","RD","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BL","BL","RD","RD","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BK","BK","BK","BK","BR","BR","BR","BR","RD","BK", | |
| "BK","BK","BK","BK","BR","BG","BK","BK","BK","BK","BK","BR","RD","RD","RD","RD", | |
| "BK","BK","BK","BK","BR","BG","BK","BK","BK","BK","BK","BK","BK","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BK","BK","BK","BK","BK","RD","RD","RD", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","BG","BG","BG", | |
| "BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","BK","BK","BK","BG","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ], | |
| /* 4 */ | |
| [ | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BL","BL","BL","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BL","RD","BL","BL","BL","BL","BL","BL","BL","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","BL","BL","BL","BL","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","BL","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","BL","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BG","BG","BG","BG","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BG","BG","BG","BG","BR","BR","BR","BR","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BR","BG","BG","BG","BR","BG","BG","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BG","BG","BG","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BG","BG","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ], | |
| /* 5 */ | |
| [ | |
| "BK","BR","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BR","BR","BR","BK","BK","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BL","BL","BK","BR","BR", | |
| "BK","BK","BK","BR","BK","BL","BL","BL","BL","BL","BL","BL","BL","BK","BR","BR", | |
| "BK","BK","BK","BK","BK","BL","RD","BL","BL","BL","BL","BL","YL","BK","BR","BR", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","BL","BL","BL","BL","BL","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","BL","RD","RD","RD","BK","BK","BK","BR", | |
| "BK","BK","BK","BK","BK","BK","RD","BL","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BG","BG","BG","BG","BG","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BG","BG","BG","BG","BR","BR","BR","BR","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BR","BG","BG","BG","BR","BG","BG","BG","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BG","BG","BG","BR","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BG","BG","BR","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ], | |
| /* 6 */ | |
| [ | |
| "BK","BR","BK","BK","BL","BL","BL","BL","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK", | |
| "BK","BK","BK","BR","BK","BL","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BL","RD","BL","BL","BL","BL","BL","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BL","RD","RD","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BL","RD","RD","BL","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BL","RD","BL","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BG","BG","BG","BG","BG","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BG","BG","BG","BG","BR","BR","BR","BR","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BR","BG","BG","BG","BR","BG","BG","BG","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BG","BG","BG","BR","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BG","BG","BR","BG","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ], | |
| /* 7 */ | |
| [ | |
| "BK","BR","BK","BK","BL","BL","BL","BL","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK", | |
| "BK","BG","BK","BR","BK","BK","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK", | |
| "BG","BG","BG","BK","BK","BK","RD","BL","BL","BL","BL","BL","BK","BK","BK","BK", | |
| "BG","BG","RD","RD","RD","RD","RD","RD","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","RD","RD","RD","RD","RD","RD","RD","BL","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","RD","RD","RD","RD","RD","BL","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BG","BG","BG","BG","BG","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BG","BG","BG","BG","BR","BR","BR","BR","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BR","BG","BG","BG","BR","BG","BG","BG","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BG","BG","BG","BR","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BG","BG","BR","BG","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ], | |
| /* 8 */ | |
| [ | |
| "BK","BR","BK","BK","BL","BL","BL","BL","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BK","BR","BR","BR","BL","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BK","BG","BK","BR","BK","BK","BL","BL","BL","BL","BL","BK","BK","BK","BK","BK", | |
| "BG","BG","BG","BK","BK","BK","RD","BL","BL","YL","BK","BK","BK","BK","BK","BK", | |
| "BG","BG","RD","RD","RD","RD","RD","RD","BL","BL","BK","BK","BK","BK","BK","BK", | |
| "BK","RD","RD","RD","RD","RD","RD","RD","BL","RD","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","RD","RD","RD","RD","RD","BL","RD","RD","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BG","BG","BG","BG","BG","BG","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BG","BG","BG","BG","BR","BR","BR","BR","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BR","BG","BG","BG","BR","BG","BG","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BR","BG","BG","BG","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BG","BG","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","RD","RD","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ], | |
| /* 9 */ | |
| [ | |
| "BK","BR","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BR","BR","BR","BK","BK","BL","BL","BL","BL","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BR","BR","BR","BK","BL","BL","BL","BL","BK","BK","BK","BK","BK","BK", | |
| "BK","BG","BK","BR","BK","BK","BL","BL","BL","BL","BK","BK","BK","BK","BK","BK", | |
| "BG","BG","BG","BK","BK","BK","BK","BL","BL","BK","BK","BK","BK","BK","BK","BK", | |
| "BG","BG","RD","RD","RD","RD","RD","RD","BL","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","RD","RD","RD","RD","RD","RD","RD","BL","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","RD","RD","RD","RD","RD","BL","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BR","BK","BK","BK","BK","BR","BR","BR","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BK","BK","BK","BK","BK","BR","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BR","BG","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BR","BR","BR","BK","BK","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","RD","RD","RD","RD","RD","RD","RD","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","RD","RD","RD","BK","BK","BK","BK","BK","BK", | |
| "BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK","BK" | |
| ] | |
| ]; | |
| var colorHash = { | |
| "BK": 0x000000, // black | |
| "WH": 0xFFFFFF, // white | |
| "BG": 0xFFCCCC, // beige | |
| "BR": 0x800000, // brown | |
| "RD": 0xFF0000, // red | |
| "YL": 0xFFFF00, // yellow | |
| "GN": 0x00FF00, // green | |
| "WT": 0x00FFFF, // water | |
| "BL": 0x0000FF, // blue | |
| "PR": 0x800080 // purple | |
| }; | |
| function getRgbColor(colorType) | |
| { | |
| return colorHash[colorType]; | |
| } | |
| function main() { | |
| // 0 point in 2d canvas | |
| var point = new obelisk.Point(230, 120); | |
| var pos = 0; | |
| // control bar | |
| var ControlBar = function () { | |
| this.xDimension = DOT_SIZE; | |
| this.yDimension = DOT_SIZE; | |
| this.zDimension = DOT_SIZE; | |
| this.border = true; | |
| }; | |
| // build floor | |
| var canvasFloor = document.getElementById('canvas-floor'); | |
| var pixelViewFloor = new obelisk.PixelView(canvasFloor, point); | |
| var brickDimension = new obelisk.BrickDimension(16, 16); | |
| var brick = new obelisk.Brick(brickDimension); | |
| var dimension = new obelisk.CubeDimension(16, 16, 16); | |
| for (var i = 0; i < 16; i++) { | |
| for (var j = 0; j < 16; j++) { | |
| var p3D = new obelisk.Point3D(i * DOT_SIZE, j * DOT_SIZE, 0); | |
| pixelViewFloor.renderObject(brick, p3D); | |
| } | |
| } | |
| // build cube | |
| var canvas = document.getElementById('canvas-demo'); | |
| var pixelView = new obelisk.PixelView(canvas, point); | |
| function renderCube( x, y, z, c, border) { | |
| var cube = cubes[c]; | |
| var p3D = new obelisk.Point3D(x, y, z); | |
| pixelView.renderObject(cube, p3D); | |
| } | |
| // make array for color cube | |
| var cubes = []; | |
| var colors = []; | |
| var con = new ControlBar(); | |
| for( var c in colorHash) { | |
| colors[c] = new obelisk.CubeColor().getByHorizontalColor( getRgbColor(c) ); | |
| cubes[c] = new obelisk.Cube(dimension, colors[c], con.border); | |
| } | |
| setInterval( draw, 200 ); | |
| function draw() { | |
| drawScreen(); | |
| drawMario(); | |
| } | |
| function drawScreen() { | |
| pixelView.clear(); | |
| } | |
| function drawMario() { | |
| var x, y, z; | |
| var c; | |
| for (var j = 0; j < dataSet.length; j++) { | |
| for (var i = 0; i < dataSet[j].length; i++) { | |
| x = ((i + pos) % 16) * DOT_SIZE + X_START_POS; | |
| y = j * DOT_SIZE + Y_START_POS; | |
| z = (Math.floor(i / 16)) * DOT_SIZE + Z_START_POS; | |
| c = dataSet[j][i]; | |
| if (dataSet[j][i] != "BK") { | |
| renderCube( x, y, z, c, con.border); | |
| } | |
| } | |
| } | |
| pos++; | |
| } | |
| } | |
| main(); |
| * { | |
| margin: 0; | |
| padding: 0; | |
| border: 0; | |
| } | |
| body { | |
| background: #FFF; | |
| font: 15px sans-serif; | |
| } | |
| canvas { | |
| position: absolute; left: 0; top: 0; | |
| } |
####Reference links obelisk.js で立体的なドット絵を描いてみるテスト http://jsdo.it/cx20/bQtQ
nosir obelisk.js - GitHub https://github.com/nosir/obelisk.js/
MARIO JUMP - BY ANTONIO R / Q-BLOCK Create 3D Pixel Art Online http://kyucon.com/qblock/#/2300