Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
MinerEngine/MinerEngine.cpp@14:3731b0791970, 2020-05-10 (annotated)
- Committer:
- ZhongYufan
- Date:
- Sun May 10 14:39:06 2020 +0000
- Revision:
- 14:3731b0791970
- Parent:
- 13:3299ab0ff2f0
- Child:
- 15:c90c1c35ae5c
version 3.0 (all function achived)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| ZhongYufan | 1:9c7bb3db32bc | 1 | #include "MinerEngine.h" |
| ZhongYufan | 1:9c7bb3db32bc | 2 | |
| ZhongYufan | 1:9c7bb3db32bc | 3 | |
| ZhongYufan | 1:9c7bb3db32bc | 4 | MinerEngine::MinerEngine() |
| ZhongYufan | 1:9c7bb3db32bc | 5 | { |
| ZhongYufan | 1:9c7bb3db32bc | 6 | |
| ZhongYufan | 1:9c7bb3db32bc | 7 | } |
| ZhongYufan | 1:9c7bb3db32bc | 8 | |
| ZhongYufan | 1:9c7bb3db32bc | 9 | MinerEngine::~MinerEngine() |
| ZhongYufan | 1:9c7bb3db32bc | 10 | { |
| ZhongYufan | 1:9c7bb3db32bc | 11 | |
| ZhongYufan | 1:9c7bb3db32bc | 12 | } |
| ZhongYufan | 1:9c7bb3db32bc | 13 | |
| ZhongYufan | 1:9c7bb3db32bc | 14 | int sprite[48][84] = { |
| ZhongYufan | 1:9c7bb3db32bc | 15 | // *10 *20 *30 *40 *50 *60 *70 *80 |
| ZhongYufan | 1:9c7bb3db32bc | 16 | /*1 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 17 | /*2 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 18 | /*3 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 19 | /*4 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,0,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 20 | /*5 */ {1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 21 | /*6 */ {1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 22 | /*7 */ {1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 23 | /*8 */ {1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 24 | /*9 */ {1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 25 | /*10 */ {1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 26 | /*11 */ {1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 27 | /*12 */ {1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,0,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 28 | /*13 */ {1,1,1,1,1,0,0,1,0,1,1,0,0,0,1,1,1,0,0,0,1,0,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,1,1,0,1,1,0,0,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 29 | /*14 */ {1,1,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 30 | /*15 */ {1,1,1,1,0,0,0,1,0,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 31 | /*16 */ {1,1,1,1,0,0,0,1,0,0,1,1,1,0,0,1,1,0,1,1,1,1,0,1,0,0,0,1,1,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 32 | /*17 */ {1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 33 | /*18 */ {1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 34 | /*19 */ {1,1,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0,0,1,0,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 35 | /*20 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,1,0,1,0,0,0,0,1,1,1,1,0,1,0,0,1,1,1,1,1,1,0,0,0,1,1,0,1,1,0,1,0,0,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 36 | /*21 */ {1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,1,1,1,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 37 | /*22 */ {1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,1,0,1,0,1,1,1,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,1,1,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 38 | /*23 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,1,0,0,0,1,1,0,0,1,0,0,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 39 | /*24 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,1,1,1,0,0,1,0,0,0,1,1,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 40 | /*25 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,1,1,1,1,0,1,1,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 41 | /*26 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,1,1,0,0,0,0,0,1,0,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,0,0,0,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 42 | /*27 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 43 | /*28 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,1,1,0,1,1,1,1,1,0,1,0,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 44 | /*29 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,0,1,0,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 45 | /*30 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0 }, |
| ZhongYufan | 1:9c7bb3db32bc | 46 | /*31 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 47 | /*32 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 48 | /*33 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 49 | /*34 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 50 | /*35 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 51 | /*36 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,0,0,1,0,1,1,1,0,1,0,0,1,0,0,1,1,0,0,1,0,0,0,1,0,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 52 | /*37 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 53 | /*38 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 54 | /*39 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 55 | /*40 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,1,1,1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 56 | /*41 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 57 | /*42 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 58 | /*43 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 59 | /*44 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 60 | /*45 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 61 | /*46 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 62 | /*47 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 63 | /*48 */ {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 }, |
| ZhongYufan | 1:9c7bb3db32bc | 64 | }; |
| ZhongYufan | 1:9c7bb3db32bc | 65 | |
| ZhongYufan | 1:9c7bb3db32bc | 66 | int arrow[8][8] = { |
| ZhongYufan | 1:9c7bb3db32bc | 67 | {0,0,0,0,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 68 | {0,0,0,0,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 69 | {0,0,0,1,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 70 | {0,0,1,0,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 71 | {0,1,1,1,1,1,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 72 | {0,0,1,0,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 73 | {0,0,0,1,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 74 | {0,0,0,0,0,0,0,0}, |
| ZhongYufan | 1:9c7bb3db32bc | 75 | }; |
| ZhongYufan | 1:9c7bb3db32bc | 76 | |
| ZhongYufan | 13:3299ab0ff2f0 | 77 | int man_state1[10][7] = { |
| ZhongYufan | 13:3299ab0ff2f0 | 78 | {0,0,1,1,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 79 | {0,0,1,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 80 | {0,0,1,1,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 81 | {1,0,0,1,0,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 82 | {1,1,1,1,1,1,1}, |
| ZhongYufan | 13:3299ab0ff2f0 | 83 | {0,0,0,1,0,0,1}, |
| ZhongYufan | 13:3299ab0ff2f0 | 84 | {0,0,1,1,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 85 | {0,0,1,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 86 | {0,0,1,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 87 | {0,0,0,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 88 | }; |
| ZhongYufan | 13:3299ab0ff2f0 | 89 | |
| ZhongYufan | 13:3299ab0ff2f0 | 90 | int man_state2[10][7] = { |
| ZhongYufan | 13:3299ab0ff2f0 | 91 | {0,0,1,1,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 92 | {0,0,1,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 93 | {0,0,1,1,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 94 | {0,0,0,1,0,0,1}, |
| ZhongYufan | 13:3299ab0ff2f0 | 95 | {1,1,1,1,1,1,1}, |
| ZhongYufan | 13:3299ab0ff2f0 | 96 | {1,0,0,1,0,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 97 | {0,0,1,1,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 98 | {0,0,1,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 99 | {0,0,1,0,1,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 100 | {0,0,1,0,0,0,0}, |
| ZhongYufan | 13:3299ab0ff2f0 | 101 | }; |
| ZhongYufan | 13:3299ab0ff2f0 | 102 | |
| ZhongYufan | 1:9c7bb3db32bc | 103 | void MinerEngine::init(int winch_width,int winch_height,int gold_num,int monster_speed) |
| ZhongYufan | 1:9c7bb3db32bc | 104 | { |
| ZhongYufan | 1:9c7bb3db32bc | 105 | // initialise the game parameters |
| ZhongYufan | 1:9c7bb3db32bc | 106 | _winch_width = winch_width; |
| ZhongYufan | 1:9c7bb3db32bc | 107 | _winch_height = winch_height; |
| ZhongYufan | 1:9c7bb3db32bc | 108 | _gold_num = gold_num; |
| ZhongYufan | 1:9c7bb3db32bc | 109 | _monster_speed = monster_speed; |
| ZhongYufan | 1:9c7bb3db32bc | 110 | |
| ZhongYufan | 1:9c7bb3db32bc | 111 | _winch.init(_winch_height,_winch_width); |
| ZhongYufan | 1:9c7bb3db32bc | 112 | _monster.init(_monster_speed); |
| ZhongYufan | 1:9c7bb3db32bc | 113 | _claw.init(_winch_width); |
| ZhongYufan | 1:9c7bb3db32bc | 114 | _gold.init(_gold_num); |
| ZhongYufan | 1:9c7bb3db32bc | 115 | _s = 1; |
| ZhongYufan | 12:07a9f2140d9b | 116 | //_s = 1; |
| ZhongYufan | 1:9c7bb3db32bc | 117 | _state = 0; |
| ZhongYufan | 12:07a9f2140d9b | 118 | _claw_speed = 1; |
| ZhongYufan | 2:fe0dbd155c4b | 119 | _catching = 0;//是否正在抓取,x轴锁定 |
| ZhongYufan | 2:fe0dbd155c4b | 120 | _claw_get = 0;//是否已经碰到金子 |
| ZhongYufan | 7:5bb5cde8951a | 121 | _monster_collision=0;//是否撞到怪物 |
| ZhongYufan | 2:fe0dbd155c4b | 122 | _now_score = 0; |
| ZhongYufan | 13:3299ab0ff2f0 | 123 | _h = 37; |
| ZhongYufan | 14:3731b0791970 | 124 | _i = 0; |
| ZhongYufan | 14:3731b0791970 | 125 | _n = 0; |
| ZhongYufan | 14:3731b0791970 | 126 | _z = 1; |
| ZhongYufan | 14:3731b0791970 | 127 | _j = 0; |
| ZhongYufan | 12:07a9f2140d9b | 128 | |
| ZhongYufan | 10:51870f8e2e1a | 129 | for (int i=0;i<9;i++) { |
| ZhongYufan | 10:51870f8e2e1a | 130 | _gold_reached_num[i] = 0; |
| ZhongYufan | 10:51870f8e2e1a | 131 | } |
| ZhongYufan | 1:9c7bb3db32bc | 132 | } |
| ZhongYufan | 1:9c7bb3db32bc | 133 | |
| ZhongYufan | 12:07a9f2140d9b | 134 | void MinerEngine::init_unchanged_parameter() { |
| ZhongYufan | 12:07a9f2140d9b | 135 | _highest_score = 0; |
| ZhongYufan | 12:07a9f2140d9b | 136 | } |
| ZhongYufan | 1:9c7bb3db32bc | 137 | |
| ZhongYufan | 1:9c7bb3db32bc | 138 | /////////////// |
| ZhongYufan | 7:5bb5cde8951a | 139 | void MinerEngine::state_switch(Gamepad &pad, N5110 &lcd) |
| ZhongYufan | 1:9c7bb3db32bc | 140 | { |
| ZhongYufan | 7:5bb5cde8951a | 141 | |
| ZhongYufan | 1:9c7bb3db32bc | 142 | while(1){ |
| ZhongYufan | 1:9c7bb3db32bc | 143 | switch(_state) { |
| ZhongYufan | 1:9c7bb3db32bc | 144 | case 0: |
| ZhongYufan | 1:9c7bb3db32bc | 145 | menu(pad,lcd) ; |
| ZhongYufan | 1:9c7bb3db32bc | 146 | break; |
| ZhongYufan | 1:9c7bb3db32bc | 147 | case 1: |
| ZhongYufan | 1:9c7bb3db32bc | 148 | instruction(pad,lcd); |
| ZhongYufan | 14:3731b0791970 | 149 | |
| ZhongYufan | 1:9c7bb3db32bc | 150 | break; |
| ZhongYufan | 1:9c7bb3db32bc | 151 | case 2: |
| ZhongYufan | 1:9c7bb3db32bc | 152 | options(pad,lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 153 | break; |
| ZhongYufan | 1:9c7bb3db32bc | 154 | case 3: |
| ZhongYufan | 1:9c7bb3db32bc | 155 | game_run(pad,lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 156 | break; |
| ZhongYufan | 1:9c7bb3db32bc | 157 | case 4: |
| ZhongYufan | 1:9c7bb3db32bc | 158 | game_over(pad,lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 159 | break; |
| ZhongYufan | 1:9c7bb3db32bc | 160 | } |
| ZhongYufan | 1:9c7bb3db32bc | 161 | } |
| ZhongYufan | 1:9c7bb3db32bc | 162 | } |
| ZhongYufan | 1:9c7bb3db32bc | 163 | |
| ZhongYufan | 1:9c7bb3db32bc | 164 | int MinerEngine::get_select(Gamepad &pad) { |
| ZhongYufan | 1:9c7bb3db32bc | 165 | if ( pad.check_event(Gamepad::Y_PRESSED) == true && _s >0) { |
| ZhongYufan | 1:9c7bb3db32bc | 166 | _s--; |
| ZhongYufan | 14:3731b0791970 | 167 | } |
| ZhongYufan | 14:3731b0791970 | 168 | else if ( pad.check_event(Gamepad::A_PRESSED) == true && _s < 2) { |
| ZhongYufan | 14:3731b0791970 | 169 | _s++; |
| ZhongYufan | 1:9c7bb3db32bc | 170 | } |
| ZhongYufan | 14:3731b0791970 | 171 | |
| ZhongYufan | 1:9c7bb3db32bc | 172 | return _s; |
| ZhongYufan | 1:9c7bb3db32bc | 173 | } |
| ZhongYufan | 1:9c7bb3db32bc | 174 | |
| ZhongYufan | 7:5bb5cde8951a | 175 | void MinerEngine::instruction(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 14:3731b0791970 | 176 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
| ZhongYufan | 10:51870f8e2e1a | 177 | lcd.clear(); |
| ZhongYufan | 12:07a9f2140d9b | 178 | lcd.printString("Joystick is",0,0); |
| ZhongYufan | 12:07a9f2140d9b | 179 | lcd.printString("used to",0,1); |
| ZhongYufan | 12:07a9f2140d9b | 180 | lcd.printString("control the",0,2); |
| ZhongYufan | 12:07a9f2140d9b | 181 | lcd.printString("left & right",0,3); |
| ZhongYufan | 12:07a9f2140d9b | 182 | lcd.printString("of the winch",0,4); |
| ZhongYufan | 12:07a9f2140d9b | 183 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 184 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 185 | } |
| ZhongYufan | 14:3731b0791970 | 186 | |
| ZhongYufan | 14:3731b0791970 | 187 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
| ZhongYufan | 12:07a9f2140d9b | 188 | lcd.clear(); |
| ZhongYufan | 12:07a9f2140d9b | 189 | lcd.printString("Press button",0,0); |
| ZhongYufan | 12:07a9f2140d9b | 190 | lcd.printString(" A to put",0,1); |
| ZhongYufan | 12:07a9f2140d9b | 191 | lcd.printString("the claw down",0,2); |
| ZhongYufan | 12:07a9f2140d9b | 192 | lcd.printString("to catch &",0,3); |
| ZhongYufan | 12:07a9f2140d9b | 193 | lcd.printString("lift the gold",0,4); |
| ZhongYufan | 10:51870f8e2e1a | 194 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 195 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 196 | } |
| ZhongYufan | 14:3731b0791970 | 197 | |
| ZhongYufan | 14:3731b0791970 | 198 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
| ZhongYufan | 12:07a9f2140d9b | 199 | lcd.clear(); |
| ZhongYufan | 12:07a9f2140d9b | 200 | lcd.printString("The most ",0,0); |
| ZhongYufan | 12:07a9f2140d9b | 201 | lcd.printString("vital thing",0,1); |
| ZhongYufan | 12:07a9f2140d9b | 202 | lcd.printString("is to try",0,2); |
| ZhongYufan | 12:07a9f2140d9b | 203 | lcd.printString("to avoid the",0,3); |
| ZhongYufan | 12:07a9f2140d9b | 204 | lcd.printString("moving monster",0,4); |
| ZhongYufan | 12:07a9f2140d9b | 205 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 206 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 207 | } |
| ZhongYufan | 14:3731b0791970 | 208 | |
| ZhongYufan | 14:3731b0791970 | 209 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
| ZhongYufan | 12:07a9f2140d9b | 210 | lcd.clear(); |
| ZhongYufan | 12:07a9f2140d9b | 211 | lcd.printString("The 'c' means",0,0); |
| ZhongYufan | 12:07a9f2140d9b | 212 | lcd.printString("current score",0,1); |
| ZhongYufan | 12:07a9f2140d9b | 213 | lcd.printString("and 'h' means",0,2); |
| ZhongYufan | 12:07a9f2140d9b | 214 | lcd.printString("highest score",0,3); |
| ZhongYufan | 12:07a9f2140d9b | 215 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 216 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 217 | } |
| ZhongYufan | 14:3731b0791970 | 218 | |
| ZhongYufan | 14:3731b0791970 | 219 | |
| ZhongYufan | 12:07a9f2140d9b | 220 | _state = 0; |
| ZhongYufan | 14:3731b0791970 | 221 | |
| ZhongYufan | 7:5bb5cde8951a | 222 | } |
| ZhongYufan | 7:5bb5cde8951a | 223 | |
| ZhongYufan | 1:9c7bb3db32bc | 224 | void MinerEngine::menu(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 14:3731b0791970 | 225 | |
| ZhongYufan | 1:9c7bb3db32bc | 226 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
| ZhongYufan | 1:9c7bb3db32bc | 227 | lcd.clear(); |
| ZhongYufan | 1:9c7bb3db32bc | 228 | _s = get_select(pad); // get the selection |
| ZhongYufan | 1:9c7bb3db32bc | 229 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
| ZhongYufan | 1:9c7bb3db32bc | 230 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); |
| ZhongYufan | 1:9c7bb3db32bc | 231 | lcd.printString(" Press Y or A",2,1); // print the instruction |
| ZhongYufan | 12:07a9f2140d9b | 232 | lcd.printString(" Intro",2,2); |
| ZhongYufan | 12:07a9f2140d9b | 233 | lcd.printString(" Start Game",2,3); |
| ZhongYufan | 12:07a9f2140d9b | 234 | lcd.printString(" Options",2,4); |
| ZhongYufan | 14:3731b0791970 | 235 | if ( _s == 1 ) { |
| ZhongYufan | 12:07a9f2140d9b | 236 | lcd.drawSprite(70,24,8,8,(int *)arrow); |
| ZhongYufan | 14:3731b0791970 | 237 | }else if ( _s == 2) { |
| ZhongYufan | 14:3731b0791970 | 238 | lcd.drawSprite(70,32,8,8,(int *)arrow); |
| ZhongYufan | 1:9c7bb3db32bc | 239 | }else if( _s == 0) { |
| ZhongYufan | 12:07a9f2140d9b | 240 | lcd.drawSprite(70,16,8,8,(int *)arrow); |
| ZhongYufan | 14:3731b0791970 | 241 | } |
| ZhongYufan | 1:9c7bb3db32bc | 242 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 243 | wait(1); |
| ZhongYufan | 7:5bb5cde8951a | 244 | } |
| ZhongYufan | 14:3731b0791970 | 245 | |
| ZhongYufan | 7:5bb5cde8951a | 246 | |
| ZhongYufan | 14:3731b0791970 | 247 | |
| ZhongYufan | 7:5bb5cde8951a | 248 | if ( _s == 0) { // select the game |
| ZhongYufan | 1:9c7bb3db32bc | 249 | _state = 1; |
| ZhongYufan | 7:5bb5cde8951a | 250 | } |
| ZhongYufan | 1:9c7bb3db32bc | 251 | else if ( _s == 1){ |
| ZhongYufan | 7:5bb5cde8951a | 252 | _state = 3; |
| ZhongYufan | 7:5bb5cde8951a | 253 | } |
| ZhongYufan | 1:9c7bb3db32bc | 254 | else if (_s == 2){ |
| ZhongYufan | 1:9c7bb3db32bc | 255 | _state = 2; |
| ZhongYufan | 14:3731b0791970 | 256 | } |
| ZhongYufan | 14:3731b0791970 | 257 | |
| ZhongYufan | 1:9c7bb3db32bc | 258 | } |
| ZhongYufan | 1:9c7bb3db32bc | 259 | |
| ZhongYufan | 1:9c7bb3db32bc | 260 | void MinerEngine::options(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 1:9c7bb3db32bc | 261 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
| ZhongYufan | 1:9c7bb3db32bc | 262 | lcd.clear(); |
| ZhongYufan | 1:9c7bb3db32bc | 263 | int _s = get_select(pad); |
| ZhongYufan | 1:9c7bb3db32bc | 264 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
| ZhongYufan | 1:9c7bb3db32bc | 265 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); |
| ZhongYufan | 1:9c7bb3db32bc | 266 | lcd.printString(" Press Y or A",2,1); |
| ZhongYufan | 1:9c7bb3db32bc | 267 | lcd.printString(" Easy",4,2); |
| ZhongYufan | 1:9c7bb3db32bc | 268 | lcd.printString(" Normal",4,3); |
| ZhongYufan | 1:9c7bb3db32bc | 269 | lcd.printString(" Hard",4,4); |
| ZhongYufan | 1:9c7bb3db32bc | 270 | if ( _s == 0) { |
| ZhongYufan | 12:07a9f2140d9b | 271 | lcd.drawSprite(60,15,8,8,(int *)arrow); |
| ZhongYufan | 12:07a9f2140d9b | 272 | _monster.set_speed(1); |
| ZhongYufan | 1:9c7bb3db32bc | 273 | }else if ( _s == 1 ) { |
| ZhongYufan | 12:07a9f2140d9b | 274 | lcd.drawSprite(60,24,8,8,(int *)arrow); |
| ZhongYufan | 12:07a9f2140d9b | 275 | _monster.set_speed(1.5); |
| ZhongYufan | 1:9c7bb3db32bc | 276 | }else if ( _s == 2) { |
| ZhongYufan | 12:07a9f2140d9b | 277 | lcd.drawSprite(60,32,8,8,(int *)arrow); |
| ZhongYufan | 12:07a9f2140d9b | 278 | _monster.set_speed(2); |
| ZhongYufan | 1:9c7bb3db32bc | 279 | } |
| ZhongYufan | 1:9c7bb3db32bc | 280 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 281 | wait(1); |
| ZhongYufan | 1:9c7bb3db32bc | 282 | } |
| ZhongYufan | 14:3731b0791970 | 283 | |
| ZhongYufan | 1:9c7bb3db32bc | 284 | _state = 0; |
| ZhongYufan | 1:9c7bb3db32bc | 285 | } |
| ZhongYufan | 1:9c7bb3db32bc | 286 | |
| ZhongYufan | 7:5bb5cde8951a | 287 | void MinerEngine::game_run(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 13:3299ab0ff2f0 | 288 | // while(_h>24) { |
| ZhongYufan | 14:3731b0791970 | 289 | tunnel(pad,lcd); |
| ZhongYufan | 13:3299ab0ff2f0 | 290 | //} |
| ZhongYufan | 13:3299ab0ff2f0 | 291 | |
| ZhongYufan | 12:07a9f2140d9b | 292 | int fps=12; |
| ZhongYufan | 8:c5969685cf02 | 293 | _monster_collision=0; |
| ZhongYufan | 8:c5969685cf02 | 294 | while(_monster_collision==0) { |
| ZhongYufan | 8:c5969685cf02 | 295 | lcd.clear(); |
| ZhongYufan | 7:5bb5cde8951a | 296 | read_input(pad); |
| ZhongYufan | 1:9c7bb3db32bc | 297 | update(pad); |
| ZhongYufan | 1:9c7bb3db32bc | 298 | draw(lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 299 | lcd.refresh(); |
| ZhongYufan | 12:07a9f2140d9b | 300 | wait(1.0f/fps); |
| ZhongYufan | 7:5bb5cde8951a | 301 | } |
| ZhongYufan | 1:9c7bb3db32bc | 302 | } |
| ZhongYufan | 1:9c7bb3db32bc | 303 | ///////////// |
| ZhongYufan | 2:fe0dbd155c4b | 304 | ///////////// |
| ZhongYufan | 2:fe0dbd155c4b | 305 | |
| ZhongYufan | 2:fe0dbd155c4b | 306 | void MinerEngine::check_gold_collision(Gamepad &pad)//只检查金子Y<=13 |
| ZhongYufan | 1:9c7bb3db32bc | 307 | { |
| ZhongYufan | 2:fe0dbd155c4b | 308 | for (int i=0;i<9;i++) { |
| ZhongYufan | 10:51870f8e2e1a | 309 | |
| ZhongYufan | 10:51870f8e2e1a | 310 | if (_gold_reached_num[i]==0) { |
| ZhongYufan | 10:51870f8e2e1a | 311 | Vector2D gold_pos = _gold.get_pos(i); |
| ZhongYufan | 2:fe0dbd155c4b | 312 | |
| ZhongYufan | 12:07a9f2140d9b | 313 | if (gold_pos.y <= 17) { |
| ZhongYufan | 10:51870f8e2e1a | 314 | _claw_get=0; |
| ZhongYufan | 10:51870f8e2e1a | 315 | _now_score++; |
| ZhongYufan | 12:07a9f2140d9b | 316 | _catching = 0; |
| ZhongYufan | 10:51870f8e2e1a | 317 | _claw.add_now_score(); |
| ZhongYufan | 10:51870f8e2e1a | 318 | _gold_reached_num[i] = 1; |
| ZhongYufan | 10:51870f8e2e1a | 319 | //pad.tone(1500.0,0.5); |
| ZhongYufan | 10:51870f8e2e1a | 320 | pad.leds_on(); |
| ZhongYufan | 10:51870f8e2e1a | 321 | wait(0.5); |
| ZhongYufan | 10:51870f8e2e1a | 322 | pad.leds_off(); |
| ZhongYufan | 10:51870f8e2e1a | 323 | } |
| ZhongYufan | 10:51870f8e2e1a | 324 | } |
| ZhongYufan | 1:9c7bb3db32bc | 325 | } |
| ZhongYufan | 1:9c7bb3db32bc | 326 | } |
| ZhongYufan | 1:9c7bb3db32bc | 327 | |
| ZhongYufan | 7:5bb5cde8951a | 328 | void MinerEngine::print_scores(N5110 &lcd) { |
| ZhongYufan | 7:5bb5cde8951a | 329 | |
| ZhongYufan | 1:9c7bb3db32bc | 330 | // get scores from winchs |
| ZhongYufan | 2:fe0dbd155c4b | 331 | int highest_score = _winch.get_highest_score(); |
| ZhongYufan | 2:fe0dbd155c4b | 332 | |
| ZhongYufan | 2:fe0dbd155c4b | 333 | // print to LCD |
| ZhongYufan | 1:9c7bb3db32bc | 334 | char buffer1[14]; |
| ZhongYufan | 2:fe0dbd155c4b | 335 | sprintf(buffer1,"%2d",_now_score); |
| ZhongYufan | 8:c5969685cf02 | 336 | lcd.printString(buffer1,1,0); // font is 8 wide, so leave 4 pixel gape from middle assuming two digits |
| ZhongYufan | 12:07a9f2140d9b | 337 | lcd.printString("c",WIDTH/2-18,0); |
| ZhongYufan | 12:07a9f2140d9b | 338 | lcd.printString("h",WIDTH/2+18,0); |
| ZhongYufan | 11:9da147cd7c18 | 339 | if (_now_score>_highest_score) { |
| ZhongYufan | 12:07a9f2140d9b | 340 | _highest_score = _now_score; |
| ZhongYufan | 11:9da147cd7c18 | 341 | } |
| ZhongYufan | 1:9c7bb3db32bc | 342 | char buffer2[14]; |
| ZhongYufan | 2:fe0dbd155c4b | 343 | sprintf(buffer2,"%2d",_highest_score); |
| ZhongYufan | 8:c5969685cf02 | 344 | lcd.printString(buffer2,WIDTH-13,0); |
| ZhongYufan | 1:9c7bb3db32bc | 345 | } |
| ZhongYufan | 1:9c7bb3db32bc | 346 | |
| ZhongYufan | 1:9c7bb3db32bc | 347 | void MinerEngine::read_input(Gamepad &pad) |
| ZhongYufan | 1:9c7bb3db32bc | 348 | { |
| ZhongYufan | 1:9c7bb3db32bc | 349 | _d = pad.get_direction(); |
| ZhongYufan | 1:9c7bb3db32bc | 350 | _mag = pad.get_mag(); |
| ZhongYufan | 8:c5969685cf02 | 351 | if (pad.check_event(Gamepad::A_PRESSED) == true){ |
| ZhongYufan | 8:c5969685cf02 | 352 | _catching=1; |
| ZhongYufan | 12:07a9f2140d9b | 353 | _claw.set_velocity(_claw_speed); |
| ZhongYufan | 8:c5969685cf02 | 354 | } |
| ZhongYufan | 1:9c7bb3db32bc | 355 | } |
| ZhongYufan | 1:9c7bb3db32bc | 356 | |
| ZhongYufan | 1:9c7bb3db32bc | 357 | void MinerEngine::draw(N5110 &lcd) |
| ZhongYufan | 1:9c7bb3db32bc | 358 | { |
| ZhongYufan | 1:9c7bb3db32bc | 359 | // draw the elements in the LCD buffer |
| ZhongYufan | 1:9c7bb3db32bc | 360 | // pitch |
| ZhongYufan | 8:c5969685cf02 | 361 | |
| ZhongYufan | 1:9c7bb3db32bc | 362 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
| ZhongYufan | 1:9c7bb3db32bc | 363 | //horizontal line |
| ZhongYufan | 1:9c7bb3db32bc | 364 | lcd.drawLine(0,13,WIDTH,13,1); |
| ZhongYufan | 8:c5969685cf02 | 365 | lcd.drawLine(0,0,WIDTH,0,0); |
| ZhongYufan | 1:9c7bb3db32bc | 366 | print_scores(lcd); |
| ZhongYufan | 8:c5969685cf02 | 367 | |
| ZhongYufan | 1:9c7bb3db32bc | 368 | _winch.draw(lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 369 | _claw.draw(lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 370 | _gold.draw(lcd); |
| ZhongYufan | 1:9c7bb3db32bc | 371 | _monster.draw(lcd); |
| ZhongYufan | 8:c5969685cf02 | 372 | |
| ZhongYufan | 8:c5969685cf02 | 373 | |
| ZhongYufan | 7:5bb5cde8951a | 374 | } |
| ZhongYufan | 1:9c7bb3db32bc | 375 | |
| ZhongYufan | 1:9c7bb3db32bc | 376 | void MinerEngine::update(Gamepad &pad) |
| ZhongYufan | 1:9c7bb3db32bc | 377 | { |
| ZhongYufan | 9:9a30f26fed81 | 378 | if (_catching==0) { |
| ZhongYufan | 8:c5969685cf02 | 379 | _winch.update(_d,_mag); |
| ZhongYufan | 9:9a30f26fed81 | 380 | } |
| ZhongYufan | 8:c5969685cf02 | 381 | Vector2D winch_pos = _winch.get_pos(); |
| ZhongYufan | 8:c5969685cf02 | 382 | _claw.update(_d,_mag,winch_pos); |
| ZhongYufan | 12:07a9f2140d9b | 383 | // wait(0.05); |
| ZhongYufan | 8:c5969685cf02 | 384 | |
| ZhongYufan | 1:9c7bb3db32bc | 385 | _monster.update(); |
| ZhongYufan | 12:07a9f2140d9b | 386 | // wait(0.05); |
| ZhongYufan | 1:9c7bb3db32bc | 387 | _gold.update(); |
| ZhongYufan | 8:c5969685cf02 | 388 | |
| ZhongYufan | 1:9c7bb3db32bc | 389 | check_monster_collision(pad); |
| ZhongYufan | 7:5bb5cde8951a | 390 | check_claw_collision(pad); |
| ZhongYufan | 1:9c7bb3db32bc | 391 | check_gold_collision(pad); |
| ZhongYufan | 7:5bb5cde8951a | 392 | check_gold_reload(); |
| ZhongYufan | 1:9c7bb3db32bc | 393 | } |
| ZhongYufan | 1:9c7bb3db32bc | 394 | |
| ZhongYufan | 1:9c7bb3db32bc | 395 | void MinerEngine::check_monster_collision(Gamepad &pad) |
| ZhongYufan | 1:9c7bb3db32bc | 396 | { |
| ZhongYufan | 1:9c7bb3db32bc | 397 | // read current claw attributes |
| ZhongYufan | 1:9c7bb3db32bc | 398 | Vector2D claw_pos = _claw.get_pos(); |
| ZhongYufan | 6:3381131afe50 | 399 | int monster_x = _monster.get_pos(); |
| ZhongYufan | 12:07a9f2140d9b | 400 | float monster_speed = _monster.get_speed(); |
| ZhongYufan | 12:07a9f2140d9b | 401 | if ((monster_x-claw_pos.x)<=0 |
| ZhongYufan | 12:07a9f2140d9b | 402 | && (monster_x-claw_pos.x)>(-2) |
| ZhongYufan | 12:07a9f2140d9b | 403 | && claw_pos.y>=22) { |
| ZhongYufan | 6:3381131afe50 | 404 | _monster_collision=1; |
| ZhongYufan | 12:07a9f2140d9b | 405 | // audio feedback |
| ZhongYufan | 12:07a9f2140d9b | 406 | pad.tone(1500.0,0.3); |
| ZhongYufan | 12:07a9f2140d9b | 407 | pad.leds_on(); |
| ZhongYufan | 12:07a9f2140d9b | 408 | wait(0.3); |
| ZhongYufan | 12:07a9f2140d9b | 409 | pad.leds_off(); |
| ZhongYufan | 12:07a9f2140d9b | 410 | wait(0.2); |
| ZhongYufan | 12:07a9f2140d9b | 411 | pad.tone(1500.0,1.0); |
| ZhongYufan | 12:07a9f2140d9b | 412 | pad.leds_on(); |
| ZhongYufan | 12:07a9f2140d9b | 413 | wait(1.0); |
| ZhongYufan | 12:07a9f2140d9b | 414 | pad.leds_off(); |
| ZhongYufan | 12:07a9f2140d9b | 415 | wait(0.5); |
| ZhongYufan | 7:5bb5cde8951a | 416 | _state=4; |
| ZhongYufan | 6:3381131afe50 | 417 | } |
| ZhongYufan | 1:9c7bb3db32bc | 418 | } |
| ZhongYufan | 1:9c7bb3db32bc | 419 | |
| ZhongYufan | 2:fe0dbd155c4b | 420 | void MinerEngine::check_claw_collision(Gamepad &pad) |
| ZhongYufan | 1:9c7bb3db32bc | 421 | { |
| ZhongYufan | 8:c5969685cf02 | 422 | Vector2D claw_pos = _claw.get_pos();// read current claw attributes |
| ZhongYufan | 4:71d01af424c1 | 423 | |
| ZhongYufan | 4:71d01af424c1 | 424 | for (int i=0;i<9;i++) { |
| ZhongYufan | 10:51870f8e2e1a | 425 | if (_gold_reached_num[i]==0) { |
| ZhongYufan | 4:71d01af424c1 | 426 | Vector2D gold_pos = _gold.get_pos(i); |
| ZhongYufan | 10:51870f8e2e1a | 427 | if (claw_pos.x-gold_pos.x<5&& |
| ZhongYufan | 10:51870f8e2e1a | 428 | claw_pos.x-gold_pos.x>-5&& |
| ZhongYufan | 4:71d01af424c1 | 429 | (claw_pos.y+3)-gold_pos.y>-2) { |
| ZhongYufan | 4:71d01af424c1 | 430 | _claw_get=1; |
| ZhongYufan | 4:71d01af424c1 | 431 | _gold.gold_caught(i); |
| ZhongYufan | 14:3731b0791970 | 432 | // pad.tone(100.0,0.1); |
| ZhongYufan | 14:3731b0791970 | 433 | } |
| ZhongYufan | 10:51870f8e2e1a | 434 | } |
| ZhongYufan | 4:71d01af424c1 | 435 | } |
| ZhongYufan | 8:c5969685cf02 | 436 | if (claw_pos.y>HEIGHT-4||_claw_get==1) { |
| ZhongYufan | 10:51870f8e2e1a | 437 | //_claw_get=0; |
| ZhongYufan | 12:07a9f2140d9b | 438 | _claw.set_velocity(-(_claw_speed)); |
| ZhongYufan | 14:3731b0791970 | 439 | pad.tone(1000.0,0.1); |
| ZhongYufan | 12:07a9f2140d9b | 440 | //pad.leds_on(); |
| ZhongYufan | 12:07a9f2140d9b | 441 | //wait(0.2); |
| ZhongYufan | 12:07a9f2140d9b | 442 | //pad.leds_off(); |
| ZhongYufan | 2:fe0dbd155c4b | 443 | } |
| ZhongYufan | 2:fe0dbd155c4b | 444 | |
| ZhongYufan | 2:fe0dbd155c4b | 445 | if (claw_pos.y<=14) { |
| ZhongYufan | 8:c5969685cf02 | 446 | _claw.set_velocity(0.0); |
| ZhongYufan | 12:07a9f2140d9b | 447 | _catching=0; |
| ZhongYufan | 2:fe0dbd155c4b | 448 | } |
| ZhongYufan | 2:fe0dbd155c4b | 449 | } |
| ZhongYufan | 1:9c7bb3db32bc | 450 | |
| ZhongYufan | 8:c5969685cf02 | 451 | |
| ZhongYufan | 1:9c7bb3db32bc | 452 | ///////////////////////////////////////////////////// |
| ZhongYufan | 1:9c7bb3db32bc | 453 | void MinerEngine::welcome(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 1:9c7bb3db32bc | 454 | |
| ZhongYufan | 1:9c7bb3db32bc | 455 | |
| ZhongYufan | 1:9c7bb3db32bc | 456 | lcd.drawSprite(0,0,48,84,(int *)sprite); |
| ZhongYufan | 1:9c7bb3db32bc | 457 | lcd.drawRect(4,31,25,9, FILL_WHITE); |
| ZhongYufan | 1:9c7bb3db32bc | 458 | lcd.drawRect(4,39,31,10, FILL_WHITE); |
| ZhongYufan | 1:9c7bb3db32bc | 459 | lcd.printString("GOLD",5,4); |
| ZhongYufan | 1:9c7bb3db32bc | 460 | lcd.printString("MINER",5,5); |
| ZhongYufan | 1:9c7bb3db32bc | 461 | lcd.drawLine(0,47,84,47,1); |
| ZhongYufan | 1:9c7bb3db32bc | 462 | lcd.refresh(); |
| ZhongYufan | 1:9c7bb3db32bc | 463 | |
| ZhongYufan | 12:07a9f2140d9b | 464 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
| ZhongYufan | 12:07a9f2140d9b | 465 | play_music(pad); |
| ZhongYufan | 12:07a9f2140d9b | 466 | } |
| ZhongYufan | 12:07a9f2140d9b | 467 | screen_rollup(pad,lcd); |
| ZhongYufan | 12:07a9f2140d9b | 468 | loading(pad,lcd); |
| ZhongYufan | 2:fe0dbd155c4b | 469 | } |
| ZhongYufan | 2:fe0dbd155c4b | 470 | |
| ZhongYufan | 5:58932f73fc35 | 471 | void MinerEngine::game_over(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 11:9da147cd7c18 | 472 | lcd.clear(); |
| ZhongYufan | 12:07a9f2140d9b | 473 | if ( pad.check_event(Gamepad::START_PRESSED) == false |
| ZhongYufan | 5:58932f73fc35 | 474 | && pad.check_event(Gamepad::JOY_PRESSED) == false |
| ZhongYufan | 5:58932f73fc35 | 475 | && pad.check_event(Gamepad::BACK_PRESSED) == false) |
| ZhongYufan | 5:58932f73fc35 | 476 | { |
| ZhongYufan | 5:58932f73fc35 | 477 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
| ZhongYufan | 5:58932f73fc35 | 478 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); |
| ZhongYufan | 12:07a9f2140d9b | 479 | lcd.printString("!!Game Over!!",2,1); |
| ZhongYufan | 12:07a9f2140d9b | 480 | lcd.printString("[back][start]",2,3); |
| ZhongYufan | 12:07a9f2140d9b | 481 | lcd.printString(" menu restart",2,4); |
| ZhongYufan | 11:9da147cd7c18 | 482 | lcd.refresh(); |
| ZhongYufan | 12:07a9f2140d9b | 483 | play_music(pad); |
| ZhongYufan | 5:58932f73fc35 | 484 | } |
| ZhongYufan | 5:58932f73fc35 | 485 | |
| ZhongYufan | 5:58932f73fc35 | 486 | if (pad.check_event(Gamepad::START_PRESSED) == true |
| ZhongYufan | 5:58932f73fc35 | 487 | ||pad.check_event(Gamepad::JOY_PRESSED) == true) { |
| ZhongYufan | 12:07a9f2140d9b | 488 | init(12,6,9,1); |
| ZhongYufan | 7:5bb5cde8951a | 489 | _state=3; |
| ZhongYufan | 12:07a9f2140d9b | 490 | |
| ZhongYufan | 5:58932f73fc35 | 491 | } |
| ZhongYufan | 5:58932f73fc35 | 492 | |
| ZhongYufan | 5:58932f73fc35 | 493 | if (pad.check_event(Gamepad::BACK_PRESSED) == true) { |
| ZhongYufan | 12:07a9f2140d9b | 494 | init(12,6,9,1);; |
| ZhongYufan | 7:5bb5cde8951a | 495 | _state=0; |
| ZhongYufan | 12:07a9f2140d9b | 496 | |
| ZhongYufan | 5:58932f73fc35 | 497 | } |
| ZhongYufan | 5:58932f73fc35 | 498 | } |
| ZhongYufan | 5:58932f73fc35 | 499 | |
| ZhongYufan | 2:fe0dbd155c4b | 500 | void MinerEngine::play_music(Gamepad &pad) { |
| ZhongYufan | 1:9c7bb3db32bc | 501 | pad.tone(370,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 502 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 503 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 504 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 505 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 506 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 507 | pad.tone(554,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 508 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 509 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 510 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 511 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 512 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 513 | pad.tone(493,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 514 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 515 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 516 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 517 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 518 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 519 | pad.tone(554,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 520 | wait(0.2); |
| ZhongYufan | 1:9c7bb3db32bc | 521 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 522 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 523 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 524 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 525 | pad.tone(659,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 526 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 527 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 528 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 529 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 530 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 531 | pad.tone(554,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 532 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 533 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 534 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 535 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 536 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 537 | pad.tone(493,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 538 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 539 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 540 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 541 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 542 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 543 | pad.tone(554,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 544 | wait(0.35); |
| ZhongYufan | 1:9c7bb3db32bc | 545 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 546 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 547 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 548 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 549 | pad.tone(554,0.15); |
| ZhongYufan | 1:9c7bb3db32bc | 550 | wait(0.2); |
| ZhongYufan | 1:9c7bb3db32bc | 551 | pad.leds_on(); |
| ZhongYufan | 1:9c7bb3db32bc | 552 | wait(0.02); |
| ZhongYufan | 1:9c7bb3db32bc | 553 | pad.leds_off(); |
| ZhongYufan | 1:9c7bb3db32bc | 554 | wait(0.02); |
| ZhongYufan | 2:fe0dbd155c4b | 555 | } |
| ZhongYufan | 3:f894534ca2d1 | 556 | |
| ZhongYufan | 3:f894534ca2d1 | 557 | void MinerEngine::screen_rollup(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 3:f894534ca2d1 | 558 | |
| ZhongYufan | 3:f894534ca2d1 | 559 | lcd.clear(); |
| ZhongYufan | 3:f894534ca2d1 | 560 | for (int i=0;i<47;i++) { |
| ZhongYufan | 3:f894534ca2d1 | 561 | for(int m=0;m<47;m++) { |
| ZhongYufan | 3:f894534ca2d1 | 562 | for (int n=0;n<84;n++) { |
| ZhongYufan | 3:f894534ca2d1 | 563 | sprite[m][n]= sprite[m+1][n]; |
| ZhongYufan | 3:f894534ca2d1 | 564 | sprite[47][n]= 0; |
| ZhongYufan | 3:f894534ca2d1 | 565 | } |
| ZhongYufan | 3:f894534ca2d1 | 566 | } |
| ZhongYufan | 3:f894534ca2d1 | 567 | lcd.drawSprite(0,0,48,84,(int *)sprite); |
| ZhongYufan | 3:f894534ca2d1 | 568 | lcd.refresh(); |
| ZhongYufan | 3:f894534ca2d1 | 569 | wait(0.1); |
| ZhongYufan | 3:f894534ca2d1 | 570 | } |
| ZhongYufan | 3:f894534ca2d1 | 571 | } |
| ZhongYufan | 3:f894534ca2d1 | 572 | |
| ZhongYufan | 3:f894534ca2d1 | 573 | void MinerEngine::loading(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 3:f894534ca2d1 | 574 | |
| ZhongYufan | 3:f894534ca2d1 | 575 | lcd.printString("Loading....",12,0); |
| ZhongYufan | 3:f894534ca2d1 | 576 | lcd.drawRect(20,12,50,10,FILL_TRANSPARENT); |
| ZhongYufan | 3:f894534ca2d1 | 577 | |
| ZhongYufan | 3:f894534ca2d1 | 578 | for (int i=0;i<50;i++) { |
| ZhongYufan | 3:f894534ca2d1 | 579 | lcd.drawRect(20,12,i,10,FILL_BLACK); |
| ZhongYufan | 3:f894534ca2d1 | 580 | lcd.refresh(); |
| ZhongYufan | 3:f894534ca2d1 | 581 | wait(0.05); |
| ZhongYufan | 3:f894534ca2d1 | 582 | } |
| ZhongYufan | 3:f894534ca2d1 | 583 | lcd.printString("Complete!",20,4); |
| ZhongYufan | 3:f894534ca2d1 | 584 | lcd.refresh(); |
| ZhongYufan | 3:f894534ca2d1 | 585 | wait(0.8); |
| ZhongYufan | 3:f894534ca2d1 | 586 | lcd.clear(); |
| ZhongYufan | 3:f894534ca2d1 | 587 | } |
| ZhongYufan | 14:3731b0791970 | 588 | |
| ZhongYufan | 7:5bb5cde8951a | 589 | void MinerEngine::check_gold_reload() { |
| ZhongYufan | 8:c5969685cf02 | 590 | int gold_left = _gold.get_left_num(); |
| ZhongYufan | 8:c5969685cf02 | 591 | if (gold_left<1) { |
| ZhongYufan | 4:71d01af424c1 | 592 | _gold.init(9); |
| ZhongYufan | 10:51870f8e2e1a | 593 | for (int i=0;i<9;i++) { |
| ZhongYufan | 10:51870f8e2e1a | 594 | _gold_reached_num[i] = 0; |
| ZhongYufan | 4:71d01af424c1 | 595 | } |
| ZhongYufan | 10:51870f8e2e1a | 596 | } |
| ZhongYufan | 4:71d01af424c1 | 597 | } |
| ZhongYufan | 7:5bb5cde8951a | 598 | |
| ZhongYufan | 14:3731b0791970 | 599 | void MinerEngine::tunnel(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 14:3731b0791970 | 600 | while(_h>24) { |
| ZhongYufan | 14:3731b0791970 | 601 | draw_tunnel(lcd); |
| ZhongYufan | 14:3731b0791970 | 602 | _j++; |
| ZhongYufan | 14:3731b0791970 | 603 | if (_j==5) { |
| ZhongYufan | 14:3731b0791970 | 604 | _j=0; |
| ZhongYufan | 14:3731b0791970 | 605 | if (_h>24) { |
| ZhongYufan | 14:3731b0791970 | 606 | _h--;} |
| ZhongYufan | 14:3731b0791970 | 607 | else { |
| ZhongYufan | 14:3731b0791970 | 608 | _h=24;} |
| ZhongYufan | 14:3731b0791970 | 609 | } |
| ZhongYufan | 14:3731b0791970 | 610 | draw_man(lcd); |
| ZhongYufan | 14:3731b0791970 | 611 | _i++; |
| ZhongYufan | 14:3731b0791970 | 612 | _n++; |
| ZhongYufan | 14:3731b0791970 | 613 | if (_i==10) { |
| ZhongYufan | 14:3731b0791970 | 614 | _i=0;} |
| ZhongYufan | 14:3731b0791970 | 615 | if (_n==8) { |
| ZhongYufan | 14:3731b0791970 | 616 | _n=0;} |
| ZhongYufan | 14:3731b0791970 | 617 | |
| ZhongYufan | 14:3731b0791970 | 618 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 619 | wait(0.1); |
| ZhongYufan | 14:3731b0791970 | 620 | } |
| ZhongYufan | 14:3731b0791970 | 621 | tunnel_print(pad,lcd); |
| ZhongYufan | 14:3731b0791970 | 622 | |
| ZhongYufan | 14:3731b0791970 | 623 | } |
| ZhongYufan | 14:3731b0791970 | 624 | |
| ZhongYufan | 14:3731b0791970 | 625 | void MinerEngine::draw_tunnel(N5110 &lcd) { |
| ZhongYufan | 13:3299ab0ff2f0 | 626 | lcd.clear(); |
| ZhongYufan | 14:3731b0791970 | 627 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
| ZhongYufan | 14:3731b0791970 | 628 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); |
| ZhongYufan | 13:3299ab0ff2f0 | 629 | lcd.drawLine(41,24,18,47,1); |
| ZhongYufan | 13:3299ab0ff2f0 | 630 | lcd.drawLine(42,24,19,47,1); |
| ZhongYufan | 13:3299ab0ff2f0 | 631 | lcd.drawLine(43,24,66,47,1); |
| ZhongYufan | 13:3299ab0ff2f0 | 632 | lcd.drawLine(42,24,65,47,1); |
| ZhongYufan | 13:3299ab0ff2f0 | 633 | |
| ZhongYufan | 14:3731b0791970 | 634 | lcd.drawCircle(42,24,2+_i,FILL_TRANSPARENT); |
| ZhongYufan | 14:3731b0791970 | 635 | lcd.drawCircle(42,24,12+_i,FILL_TRANSPARENT); |
| ZhongYufan | 14:3731b0791970 | 636 | lcd.drawCircle(42,24,22+_i,FILL_TRANSPARENT); |
| ZhongYufan | 14:3731b0791970 | 637 | lcd.drawCircle(42,24,32+_i,FILL_TRANSPARENT); |
| ZhongYufan | 14:3731b0791970 | 638 | |
| ZhongYufan | 14:3731b0791970 | 639 | for(int _k=0;_k<23;_k++) { |
| ZhongYufan | 14:3731b0791970 | 640 | lcd.drawLine(42-_k,25+_k,42+_k,25+_k,0); |
| ZhongYufan | 13:3299ab0ff2f0 | 641 | } |
| ZhongYufan | 13:3299ab0ff2f0 | 642 | |
| ZhongYufan | 14:3731b0791970 | 643 | lcd.drawLine(38-_n,24+_n,46+_n,24+_n,1); |
| ZhongYufan | 14:3731b0791970 | 644 | lcd.drawLine(38-_n,25+_n,46+_n,25+_n,1); |
| ZhongYufan | 14:3731b0791970 | 645 | lcd.drawLine(30-_n,32+_n,54+_n,32+_n,1); |
| ZhongYufan | 14:3731b0791970 | 646 | lcd.drawLine(30-_n,33+_n,54+_n,33+_n,1); |
| ZhongYufan | 14:3731b0791970 | 647 | lcd.drawLine(22-_n,40+_n,62+_n,40+_n,1); |
| ZhongYufan | 14:3731b0791970 | 648 | lcd.drawLine(22-_n,41+_n,62+_n,41+_n,1); |
| ZhongYufan | 14:3731b0791970 | 649 | } |
| ZhongYufan | 14:3731b0791970 | 650 | |
| ZhongYufan | 14:3731b0791970 | 651 | void MinerEngine::draw_man(N5110 &lcd) { |
| ZhongYufan | 13:3299ab0ff2f0 | 652 | |
| ZhongYufan | 14:3731b0791970 | 653 | if(_z==1) { |
| ZhongYufan | 13:3299ab0ff2f0 | 654 | lcd.drawSprite(39,_h,10,7,(int *)man_state2); |
| ZhongYufan | 13:3299ab0ff2f0 | 655 | lcd.refresh(); |
| ZhongYufan | 13:3299ab0ff2f0 | 656 | |
| ZhongYufan | 13:3299ab0ff2f0 | 657 | } |
| ZhongYufan | 14:3731b0791970 | 658 | if(_z==-1) { |
| ZhongYufan | 13:3299ab0ff2f0 | 659 | lcd.drawSprite(39,_h,10,7,(int *)man_state1); |
| ZhongYufan | 13:3299ab0ff2f0 | 660 | |
| ZhongYufan | 13:3299ab0ff2f0 | 661 | lcd.refresh(); |
| ZhongYufan | 13:3299ab0ff2f0 | 662 | } |
| ZhongYufan | 14:3731b0791970 | 663 | _z=-_z; |
| ZhongYufan | 13:3299ab0ff2f0 | 664 | } |
| ZhongYufan | 14:3731b0791970 | 665 | |
| ZhongYufan | 14:3731b0791970 | 666 | void MinerEngine::tunnel_print(Gamepad &pad, N5110 &lcd) { |
| ZhongYufan | 14:3731b0791970 | 667 | pad.tone(500,0.2); |
| ZhongYufan | 14:3731b0791970 | 668 | wait(0.5); |
| ZhongYufan | 14:3731b0791970 | 669 | pad.tone(500,0.5); |
| ZhongYufan | 14:3731b0791970 | 670 | wait(0.5); |
| ZhongYufan | 14:3731b0791970 | 671 | lcd.printString(" WE ARE",2,1); |
| ZhongYufan | 14:3731b0791970 | 672 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 673 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 674 | lcd.printString(" IN THE",2,2); |
| ZhongYufan | 14:3731b0791970 | 675 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 676 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 677 | lcd.printString(" MINE!!!",2,3); |
| ZhongYufan | 14:3731b0791970 | 678 | lcd.refresh(); |
| ZhongYufan | 14:3731b0791970 | 679 | wait(1); |
| ZhongYufan | 14:3731b0791970 | 680 | } |