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@4:71d01af424c1, 2020-04-25 (annotated)
- Committer:
- ZhongYufan
- Date:
- Sat Apr 25 08:55:23 2020 +0000
- Revision:
- 4:71d01af424c1
- Parent:
- 3:f894534ca2d1
- Child:
- 5:58932f73fc35
engine::claw_collision_check & gold_reload_check finished
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 | 1:9c7bb3db32bc | 77 | void MinerEngine::init(int winch_width,int winch_height,int gold_num,int monster_speed) |
ZhongYufan | 1:9c7bb3db32bc | 78 | { |
ZhongYufan | 1:9c7bb3db32bc | 79 | // initialise the game parameters |
ZhongYufan | 1:9c7bb3db32bc | 80 | _winch_width = winch_width; |
ZhongYufan | 1:9c7bb3db32bc | 81 | _winch_height = winch_height; |
ZhongYufan | 1:9c7bb3db32bc | 82 | _gold_num = gold_num; |
ZhongYufan | 1:9c7bb3db32bc | 83 | _monster_speed = monster_speed; |
ZhongYufan | 1:9c7bb3db32bc | 84 | |
ZhongYufan | 1:9c7bb3db32bc | 85 | _winch.init(_winch_height,_winch_width); |
ZhongYufan | 1:9c7bb3db32bc | 86 | _monster.init(_monster_speed); |
ZhongYufan | 1:9c7bb3db32bc | 87 | _claw.init(_winch_width); |
ZhongYufan | 1:9c7bb3db32bc | 88 | _gold.init(_gold_num); |
ZhongYufan | 1:9c7bb3db32bc | 89 | |
ZhongYufan | 1:9c7bb3db32bc | 90 | _s = 1; |
ZhongYufan | 1:9c7bb3db32bc | 91 | _state = 0; |
ZhongYufan | 2:fe0dbd155c4b | 92 | _catching = 0;//是否正在抓取,x轴锁定 |
ZhongYufan | 2:fe0dbd155c4b | 93 | _claw_get = 0;//是否已经碰到金子 |
ZhongYufan | 2:fe0dbd155c4b | 94 | _now_score = 0; |
ZhongYufan | 2:fe0dbd155c4b | 95 | _highest_score = 0; |
ZhongYufan | 1:9c7bb3db32bc | 96 | } |
ZhongYufan | 1:9c7bb3db32bc | 97 | |
ZhongYufan | 1:9c7bb3db32bc | 98 | |
ZhongYufan | 1:9c7bb3db32bc | 99 | /////////////// |
ZhongYufan | 1:9c7bb3db32bc | 100 | void MinerEngine::state_switch() |
ZhongYufan | 1:9c7bb3db32bc | 101 | { |
ZhongYufan | 1:9c7bb3db32bc | 102 | while(1){ |
ZhongYufan | 1:9c7bb3db32bc | 103 | switch(_state) { |
ZhongYufan | 1:9c7bb3db32bc | 104 | case 0: |
ZhongYufan | 1:9c7bb3db32bc | 105 | menu(pad,lcd) ; |
ZhongYufan | 1:9c7bb3db32bc | 106 | break; |
ZhongYufan | 1:9c7bb3db32bc | 107 | case 1: |
ZhongYufan | 1:9c7bb3db32bc | 108 | instruction(pad,lcd); |
ZhongYufan | 1:9c7bb3db32bc | 109 | break; |
ZhongYufan | 1:9c7bb3db32bc | 110 | case 2: |
ZhongYufan | 1:9c7bb3db32bc | 111 | options(pad,lcd); |
ZhongYufan | 1:9c7bb3db32bc | 112 | break; |
ZhongYufan | 1:9c7bb3db32bc | 113 | case 3: |
ZhongYufan | 1:9c7bb3db32bc | 114 | game_run(pad,lcd); |
ZhongYufan | 1:9c7bb3db32bc | 115 | break; |
ZhongYufan | 1:9c7bb3db32bc | 116 | case 4: |
ZhongYufan | 1:9c7bb3db32bc | 117 | game_over(pad,lcd); |
ZhongYufan | 1:9c7bb3db32bc | 118 | break; |
ZhongYufan | 1:9c7bb3db32bc | 119 | } |
ZhongYufan | 1:9c7bb3db32bc | 120 | } |
ZhongYufan | 1:9c7bb3db32bc | 121 | } |
ZhongYufan | 1:9c7bb3db32bc | 122 | |
ZhongYufan | 1:9c7bb3db32bc | 123 | int MinerEngine::get_select(Gamepad &pad) { |
ZhongYufan | 1:9c7bb3db32bc | 124 | if ( pad.check_event(Gamepad::Y_PRESSED) == true && _s >0) { |
ZhongYufan | 1:9c7bb3db32bc | 125 | _s--; |
ZhongYufan | 1:9c7bb3db32bc | 126 | }else if ( pad.check_event(Gamepad::A_PRESSED) == true && _s < 2) { |
ZhongYufan | 1:9c7bb3db32bc | 127 | _s++; |
ZhongYufan | 1:9c7bb3db32bc | 128 | } |
ZhongYufan | 1:9c7bb3db32bc | 129 | return _s; |
ZhongYufan | 1:9c7bb3db32bc | 130 | } |
ZhongYufan | 1:9c7bb3db32bc | 131 | |
ZhongYufan | 1:9c7bb3db32bc | 132 | void MinerEngine::menu(Gamepad &pad, N5110 &lcd) { |
ZhongYufan | 1:9c7bb3db32bc | 133 | |
ZhongYufan | 1:9c7bb3db32bc | 134 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
ZhongYufan | 1:9c7bb3db32bc | 135 | lcd.clear(); |
ZhongYufan | 1:9c7bb3db32bc | 136 | _s = get_select(pad); // get the selection |
ZhongYufan | 1:9c7bb3db32bc | 137 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
ZhongYufan | 1:9c7bb3db32bc | 138 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); |
ZhongYufan | 1:9c7bb3db32bc | 139 | lcd.printString(" Press Y or A",2,1); // print the instruction |
ZhongYufan | 1:9c7bb3db32bc | 140 | lcd.printString(" Instructions",4,2); |
ZhongYufan | 1:9c7bb3db32bc | 141 | lcd.printString(" Start Game",4,3); |
ZhongYufan | 1:9c7bb3db32bc | 142 | lcd.printString(" Options",4,4); |
ZhongYufan | 1:9c7bb3db32bc | 143 | if ( _s == 1 ) { |
ZhongYufan | 1:9c7bb3db32bc | 144 | lcd.drawSprite(65,24,8,8,(int *)arrow); |
ZhongYufan | 1:9c7bb3db32bc | 145 | }else if ( _s == 2) { |
ZhongYufan | 1:9c7bb3db32bc | 146 | lcd.drawSprite(65,32,8,8,(int *)arrow); |
ZhongYufan | 1:9c7bb3db32bc | 147 | }else if( _s == 0) { |
ZhongYufan | 1:9c7bb3db32bc | 148 | lcd.drawSprite(65,16,8,8,(int *)arrow); |
ZhongYufan | 1:9c7bb3db32bc | 149 | } |
ZhongYufan | 1:9c7bb3db32bc | 150 | lcd.refresh(); |
ZhongYufan | 1:9c7bb3db32bc | 151 | } |
ZhongYufan | 1:9c7bb3db32bc | 152 | } |
ZhongYufan | 1:9c7bb3db32bc | 153 | if ( _s == 0 ){ // select the game |
ZhongYufan | 1:9c7bb3db32bc | 154 | //select(pad,lcd); |
ZhongYufan | 1:9c7bb3db32bc | 155 | _state = 1; |
ZhongYufan | 1:9c7bb3db32bc | 156 | break;} |
ZhongYufan | 1:9c7bb3db32bc | 157 | else if ( _s == 1){ |
ZhongYufan | 1:9c7bb3db32bc | 158 | _staet = 3; |
ZhongYufan | 1:9c7bb3db32bc | 159 | break;} |
ZhongYufan | 1:9c7bb3db32bc | 160 | else if (_s == 2){ |
ZhongYufan | 1:9c7bb3db32bc | 161 | _state = 2; |
ZhongYufan | 1:9c7bb3db32bc | 162 | break;} |
ZhongYufan | 1:9c7bb3db32bc | 163 | } |
ZhongYufan | 1:9c7bb3db32bc | 164 | } |
ZhongYufan | 1:9c7bb3db32bc | 165 | |
ZhongYufan | 1:9c7bb3db32bc | 166 | void MinerEngine::options(Gamepad &pad, N5110 &lcd) { |
ZhongYufan | 1:9c7bb3db32bc | 167 | while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) { |
ZhongYufan | 1:9c7bb3db32bc | 168 | lcd.clear(); |
ZhongYufan | 1:9c7bb3db32bc | 169 | int _s = get_select(pad); |
ZhongYufan | 1:9c7bb3db32bc | 170 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
ZhongYufan | 1:9c7bb3db32bc | 171 | lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT); |
ZhongYufan | 1:9c7bb3db32bc | 172 | lcd.printString(" Press Y or A",2,1); |
ZhongYufan | 1:9c7bb3db32bc | 173 | lcd.printString(" Easy",4,2); |
ZhongYufan | 1:9c7bb3db32bc | 174 | lcd.printString(" Normal",4,3); |
ZhongYufan | 1:9c7bb3db32bc | 175 | lcd.printString(" Hard",4,4); |
ZhongYufan | 1:9c7bb3db32bc | 176 | if ( _s == 0) { |
ZhongYufan | 1:9c7bb3db32bc | 177 | lcd.drawSprite(63,15,8,8,(int *)arrow); |
ZhongYufan | 1:9c7bb3db32bc | 178 | _monster_speed = 0.5; // change the speed_winch |
ZhongYufan | 1:9c7bb3db32bc | 179 | }else if ( _s == 1 ) { |
ZhongYufan | 1:9c7bb3db32bc | 180 | lcd.drawSprite(63,24,8,8,(int *)arrow); |
ZhongYufan | 1:9c7bb3db32bc | 181 | _monster_speed = 1.0; |
ZhongYufan | 1:9c7bb3db32bc | 182 | }else if ( _s == 2) { |
ZhongYufan | 1:9c7bb3db32bc | 183 | lcd.drawSprite(63,32,8,8,(int *)arrow); |
ZhongYufan | 1:9c7bb3db32bc | 184 | _monster_speed = 1.5; |
ZhongYufan | 1:9c7bb3db32bc | 185 | } |
ZhongYufan | 1:9c7bb3db32bc | 186 | lcd.refresh(); |
ZhongYufan | 1:9c7bb3db32bc | 187 | } |
ZhongYufan | 1:9c7bb3db32bc | 188 | _state = 0; |
ZhongYufan | 1:9c7bb3db32bc | 189 | } |
ZhongYufan | 1:9c7bb3db32bc | 190 | |
ZhongYufan | 1:9c7bb3db32bc | 191 | void MinerEngine::game_run(Gamepad &pad, N5110 &lcd){ |
ZhongYufan | 1:9c7bb3db32bc | 192 | int fps = 8; |
ZhongYufan | 1:9c7bb3db32bc | 193 | while(1){ |
ZhongYufan | 2:fe0dbd155c4b | 194 | readinput(pad);//get _d &_mag |
ZhongYufan | 1:9c7bb3db32bc | 195 | update(pad); |
ZhongYufan | 1:9c7bb3db32bc | 196 | check_goal(pad); |
ZhongYufan | 1:9c7bb3db32bc | 197 | print_scores(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 198 | draw(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 199 | lcd.refresh(); |
ZhongYufan | 1:9c7bb3db32bc | 200 | wait(1.0f/fps); |
ZhongYufan | 1:9c7bb3db32bc | 201 | } |
ZhongYufan | 1:9c7bb3db32bc | 202 | |
ZhongYufan | 1:9c7bb3db32bc | 203 | |
ZhongYufan | 1:9c7bb3db32bc | 204 | } |
ZhongYufan | 1:9c7bb3db32bc | 205 | ///////////// |
ZhongYufan | 2:fe0dbd155c4b | 206 | ///////////// |
ZhongYufan | 2:fe0dbd155c4b | 207 | |
ZhongYufan | 2:fe0dbd155c4b | 208 | void MinerEngine::check_gold_collision(Gamepad &pad)//只检查金子Y<=13 |
ZhongYufan | 1:9c7bb3db32bc | 209 | { |
ZhongYufan | 2:fe0dbd155c4b | 210 | for (int i=0;i<9;i++) { |
ZhongYufan | 2:fe0dbd155c4b | 211 | |
ZhongYufan | 2:fe0dbd155c4b | 212 | Vector2D gold_pos = _gold.get_pos(i); |
ZhongYufan | 2:fe0dbd155c4b | 213 | |
ZhongYufan | 2:fe0dbd155c4b | 214 | if (gold_pos.y < 14) { |
ZhongYufan | 2:fe0dbd155c4b | 215 | _now_score++; |
ZhongYufan | 2:fe0dbd155c4b | 216 | _claw.add_now_score(); |
ZhongYufan | 1:9c7bb3db32bc | 217 | pad.tone(1500.0,0.5); |
ZhongYufan | 1:9c7bb3db32bc | 218 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 219 | wait(0.5); |
ZhongYufan | 1:9c7bb3db32bc | 220 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 221 | } |
ZhongYufan | 1:9c7bb3db32bc | 222 | } |
ZhongYufan | 1:9c7bb3db32bc | 223 | |
ZhongYufan | 1:9c7bb3db32bc | 224 | void MinerEngine::print_scores(N5110 &lcd)//显示左上角即时分 |
ZhongYufan | 1:9c7bb3db32bc | 225 | //右上最高分 |
ZhongYufan | 1:9c7bb3db32bc | 226 | { |
ZhongYufan | 1:9c7bb3db32bc | 227 | // get scores from winchs |
ZhongYufan | 2:fe0dbd155c4b | 228 | int highest_score = _winch.get_highest_score(); |
ZhongYufan | 2:fe0dbd155c4b | 229 | |
ZhongYufan | 2:fe0dbd155c4b | 230 | // print to LCD |
ZhongYufan | 1:9c7bb3db32bc | 231 | char buffer1[14]; |
ZhongYufan | 2:fe0dbd155c4b | 232 | sprintf(buffer1,"%2d",_now_score); |
ZhongYufan | 1:9c7bb3db32bc | 233 | lcd.printString(buffer1,WIDTH/2 - 20,1); // font is 8 wide, so leave 4 pixel gape from middle assuming two digits |
ZhongYufan | 1:9c7bb3db32bc | 234 | char buffer2[14]; |
ZhongYufan | 2:fe0dbd155c4b | 235 | sprintf(buffer2,"%2d",_highest_score); |
ZhongYufan | 1:9c7bb3db32bc | 236 | lcd.printString(buffer2,WIDTH/2 + 4,1); |
ZhongYufan | 1:9c7bb3db32bc | 237 | } |
ZhongYufan | 1:9c7bb3db32bc | 238 | |
ZhongYufan | 1:9c7bb3db32bc | 239 | void MinerEngine::read_input(Gamepad &pad) |
ZhongYufan | 1:9c7bb3db32bc | 240 | { |
ZhongYufan | 1:9c7bb3db32bc | 241 | _d = pad.get_direction(); |
ZhongYufan | 1:9c7bb3db32bc | 242 | _mag = pad.get_mag(); |
ZhongYufan | 1:9c7bb3db32bc | 243 | } |
ZhongYufan | 1:9c7bb3db32bc | 244 | |
ZhongYufan | 1:9c7bb3db32bc | 245 | void MinerEngine::draw(N5110 &lcd) |
ZhongYufan | 1:9c7bb3db32bc | 246 | { |
ZhongYufan | 1:9c7bb3db32bc | 247 | // draw the elements in the LCD buffer |
ZhongYufan | 1:9c7bb3db32bc | 248 | // pitch |
ZhongYufan | 1:9c7bb3db32bc | 249 | lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT); |
ZhongYufan | 1:9c7bb3db32bc | 250 | //horizontal line |
ZhongYufan | 1:9c7bb3db32bc | 251 | lcd.drawLine(0,13,WIDTH,13,1); |
ZhongYufan | 1:9c7bb3db32bc | 252 | //score |
ZhongYufan | 1:9c7bb3db32bc | 253 | print_scores(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 254 | // winchs |
ZhongYufan | 1:9c7bb3db32bc | 255 | _winch.draw(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 256 | _claw.draw(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 257 | _gold.draw(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 258 | _monster.draw(lcd); |
ZhongYufan | 1:9c7bb3db32bc | 259 | |
ZhongYufan | 1:9c7bb3db32bc | 260 | void MinerEngine::update(Gamepad &pad) |
ZhongYufan | 1:9c7bb3db32bc | 261 | { |
ZhongYufan | 1:9c7bb3db32bc | 262 | check_goal(pad); |
ZhongYufan | 1:9c7bb3db32bc | 263 | _winch.update(_d,_mag); |
ZhongYufan | 2:fe0dbd155c4b | 264 | _claw.update(_d,_mag); |
ZhongYufan | 1:9c7bb3db32bc | 265 | _monster.update(); |
ZhongYufan | 2:fe0dbd155c4b | 266 | |
ZhongYufan | 1:9c7bb3db32bc | 267 | _gold.update(); |
ZhongYufan | 1:9c7bb3db32bc | 268 | |
ZhongYufan | 1:9c7bb3db32bc | 269 | check_monster_collision(pad); |
ZhongYufan | 1:9c7bb3db32bc | 270 | check_gold_collision(pad); |
ZhongYufan | 1:9c7bb3db32bc | 271 | } |
ZhongYufan | 1:9c7bb3db32bc | 272 | |
ZhongYufan | 1:9c7bb3db32bc | 273 | void MinerEngine::check_monster_collision(Gamepad &pad) |
ZhongYufan | 1:9c7bb3db32bc | 274 | { |
ZhongYufan | 1:9c7bb3db32bc | 275 | // read current claw attributes |
ZhongYufan | 1:9c7bb3db32bc | 276 | Vector2D claw_pos = _claw.get_pos(); |
ZhongYufan | 1:9c7bb3db32bc | 277 | ///检查怪物和爪子X是否一样 |
ZhongYufan | 1:9c7bb3db32bc | 278 | |
ZhongYufan | 1:9c7bb3db32bc | 279 | |
ZhongYufan | 1:9c7bb3db32bc | 280 | |
ZhongYufan | 1:9c7bb3db32bc | 281 | |
ZhongYufan | 1:9c7bb3db32bc | 282 | Vector2D claw_velocity = _claw.get_velocity();////////////// |
ZhongYufan | 1:9c7bb3db32bc | 283 | |
ZhongYufan | 1:9c7bb3db32bc | 284 | // check if hit top wall |
ZhongYufan | 1:9c7bb3db32bc | 285 | if (claw_pos.y <= 1) { // 1 due to 1 pixel boundary/////改/检查怪物和爪子X是否一样 |
ZhongYufan | 1:9c7bb3db32bc | 286 | claw_pos.y = 1; // bounce off ceiling without going off screen |
ZhongYufan | 1:9c7bb3db32bc | 287 | claw_velocity.y = -claw_velocity.y; |
ZhongYufan | 1:9c7bb3db32bc | 288 | // audio feedback |
ZhongYufan | 1:9c7bb3db32bc | 289 | pad.tone(750.0,0.1); |
ZhongYufan | 1:9c7bb3db32bc | 290 | } |
ZhongYufan | 1:9c7bb3db32bc | 291 | // check if hit bottom wall |
ZhongYufan | 1:9c7bb3db32bc | 292 | else if (claw_pos.y + _claw_size >= (HEIGHT-1) ) { // bottom pixel is 47 |
ZhongYufan | 1:9c7bb3db32bc | 293 | // hit bottom |
ZhongYufan | 1:9c7bb3db32bc | 294 | claw_pos.y = (HEIGHT-1) - _claw_size; // stops claw going off screen |
ZhongYufan | 1:9c7bb3db32bc | 295 | claw_velocity.y = -claw_velocity.y; |
ZhongYufan | 1:9c7bb3db32bc | 296 | // audio feedback |
ZhongYufan | 1:9c7bb3db32bc | 297 | pad.tone(750.0,0.1); |
ZhongYufan | 1:9c7bb3db32bc | 298 | } |
ZhongYufan | 1:9c7bb3db32bc | 299 | |
ZhongYufan | 1:9c7bb3db32bc | 300 | // update claw parameters |
ZhongYufan | 1:9c7bb3db32bc | 301 | _claw.set_velocity(claw_velocity); |
ZhongYufan | 1:9c7bb3db32bc | 302 | _claw.set_pos(claw_pos); |
ZhongYufan | 1:9c7bb3db32bc | 303 | |
ZhongYufan | 1:9c7bb3db32bc | 304 | } |
ZhongYufan | 1:9c7bb3db32bc | 305 | |
ZhongYufan | 2:fe0dbd155c4b | 306 | void MinerEngine::check_claw_collision(Gamepad &pad) |
ZhongYufan | 1:9c7bb3db32bc | 307 | { |
ZhongYufan | 1:9c7bb3db32bc | 308 | // read current claw attributes |
ZhongYufan | 1:9c7bb3db32bc | 309 | Vector2D claw_pos = _claw.get_pos(); |
ZhongYufan | 4:71d01af424c1 | 310 | |
ZhongYufan | 1:9c7bb3db32bc | 311 | |
ZhongYufan | 4:71d01af424c1 | 312 | for (int i=0;i<9;i++) { |
ZhongYufan | 4:71d01af424c1 | 313 | Vector2D gold_pos = _gold.get_pos(i); |
ZhongYufan | 4:71d01af424c1 | 314 | if ((claw_pos.x+3)-gold_pos.x<5&& |
ZhongYufan | 4:71d01af424c1 | 315 | (claw_pos.x+3)-gold_pos.x>-5&& |
ZhongYufan | 4:71d01af424c1 | 316 | (claw_pos.y+3)-gold_pos.y>-2) { |
ZhongYufan | 4:71d01af424c1 | 317 | |
ZhongYufan | 4:71d01af424c1 | 318 | _claw_get=1; |
ZhongYufan | 4:71d01af424c1 | 319 | _gold.gold_caught(i); |
ZhongYufan | 4:71d01af424c1 | 320 | pad.tone(1000.0,0.1); // audio feedback |
ZhongYufan | 1:9c7bb3db32bc | 321 | } |
ZhongYufan | 4:71d01af424c1 | 322 | } |
ZhongYufan | 1:9c7bb3db32bc | 323 | } |
ZhongYufan | 1:9c7bb3db32bc | 324 | |
ZhongYufan | 2:fe0dbd155c4b | 325 | void MinerEngine::claw_down(){ |
ZhongYufan | 2:fe0dbd155c4b | 326 | _catching = 1; |
ZhongYufan | 4:71d01af424c1 | 327 | _claw.set_velocity(1); |
ZhongYufan | 4:71d01af424c1 | 328 | Vector2D claw_pos = _claw.get_pos(); |
ZhongYufan | 2:fe0dbd155c4b | 329 | |
ZhongYufan | 2:fe0dbd155c4b | 330 | if (claw_pos.y>HEIGHT-4||_claw_get==1) { |
ZhongYufan | 2:fe0dbd155c4b | 331 | _claw_get==0; |
ZhongYufan | 2:fe0dbd155c4b | 332 | claw.set_velocity(-1); |
ZhongYufan | 2:fe0dbd155c4b | 333 | } |
ZhongYufan | 2:fe0dbd155c4b | 334 | |
ZhongYufan | 2:fe0dbd155c4b | 335 | if (claw_pos.y<=14) { |
ZhongYufan | 4:71d01af424c1 | 336 | _claw.set_velocity(0); |
ZhongYufan | 2:fe0dbd155c4b | 337 | _catching = 0; |
ZhongYufan | 2:fe0dbd155c4b | 338 | } |
ZhongYufan | 2:fe0dbd155c4b | 339 | } |
ZhongYufan | 1:9c7bb3db32bc | 340 | |
ZhongYufan | 1:9c7bb3db32bc | 341 | |
ZhongYufan | 1:9c7bb3db32bc | 342 | ///////////////////////////////////////////////////// |
ZhongYufan | 1:9c7bb3db32bc | 343 | void MinerEngine::welcome(Gamepad &pad, N5110 &lcd) { |
ZhongYufan | 1:9c7bb3db32bc | 344 | |
ZhongYufan | 1:9c7bb3db32bc | 345 | |
ZhongYufan | 1:9c7bb3db32bc | 346 | lcd.drawSprite(0,0,48,84,(int *)sprite); |
ZhongYufan | 1:9c7bb3db32bc | 347 | lcd.drawRect(4,31,25,9, FILL_WHITE); |
ZhongYufan | 1:9c7bb3db32bc | 348 | lcd.drawRect(4,39,31,10, FILL_WHITE); |
ZhongYufan | 1:9c7bb3db32bc | 349 | lcd.printString("GOLD",5,4); |
ZhongYufan | 1:9c7bb3db32bc | 350 | lcd.printString("MINER",5,5); |
ZhongYufan | 1:9c7bb3db32bc | 351 | lcd.drawLine(0,47,84,47,1); |
ZhongYufan | 1:9c7bb3db32bc | 352 | lcd.refresh(); |
ZhongYufan | 1:9c7bb3db32bc | 353 | |
ZhongYufan | 1:9c7bb3db32bc | 354 | while ( pad.check_event(Gamepad::START_PRESSED) == false) { |
ZhongYufan | 2:fe0dbd155c4b | 355 | play_music(pad); |
ZhongYufan | 2:fe0dbd155c4b | 356 | } |
ZhongYufan | 3:f894534ca2d1 | 357 | screen_rollup(pad,lcd); |
ZhongYufan | 3:f894534ca2d1 | 358 | loading(pad,lcd); |
ZhongYufan | 2:fe0dbd155c4b | 359 | } |
ZhongYufan | 2:fe0dbd155c4b | 360 | |
ZhongYufan | 2:fe0dbd155c4b | 361 | |
ZhongYufan | 2:fe0dbd155c4b | 362 | void MinerEngine::play_music(Gamepad &pad) { |
ZhongYufan | 1:9c7bb3db32bc | 363 | pad.tone(370,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 364 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 365 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 366 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 367 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 368 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 369 | pad.tone(554,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 370 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 371 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 372 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 373 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 374 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 375 | pad.tone(493,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 376 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 377 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 378 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 379 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 380 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 381 | pad.tone(554,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 382 | wait(0.2); |
ZhongYufan | 1:9c7bb3db32bc | 383 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 384 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 385 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 386 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 387 | pad.tone(659,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 388 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 389 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 390 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 391 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 392 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 393 | pad.tone(554,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 394 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 395 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 396 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 397 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 398 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 399 | pad.tone(493,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 400 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 401 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 402 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 403 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 404 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 405 | pad.tone(554,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 406 | wait(0.35); |
ZhongYufan | 1:9c7bb3db32bc | 407 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 408 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 409 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 410 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 411 | pad.tone(554,0.15); |
ZhongYufan | 1:9c7bb3db32bc | 412 | wait(0.2); |
ZhongYufan | 1:9c7bb3db32bc | 413 | pad.leds_on(); |
ZhongYufan | 1:9c7bb3db32bc | 414 | wait(0.02); |
ZhongYufan | 1:9c7bb3db32bc | 415 | pad.leds_off(); |
ZhongYufan | 1:9c7bb3db32bc | 416 | wait(0.02); |
ZhongYufan | 2:fe0dbd155c4b | 417 | } |
ZhongYufan | 3:f894534ca2d1 | 418 | |
ZhongYufan | 3:f894534ca2d1 | 419 | void MinerEngine::screen_rollup(Gamepad &pad, N5110 &lcd) { |
ZhongYufan | 3:f894534ca2d1 | 420 | |
ZhongYufan | 3:f894534ca2d1 | 421 | lcd.clear(); |
ZhongYufan | 3:f894534ca2d1 | 422 | for (int i=0;i<47;i++) { |
ZhongYufan | 3:f894534ca2d1 | 423 | for(int m=0;m<47;m++) { |
ZhongYufan | 3:f894534ca2d1 | 424 | for (int n=0;n<84;n++) { |
ZhongYufan | 3:f894534ca2d1 | 425 | sprite[m][n]= sprite[m+1][n]; |
ZhongYufan | 3:f894534ca2d1 | 426 | sprite[47][n]= 0; |
ZhongYufan | 3:f894534ca2d1 | 427 | } |
ZhongYufan | 3:f894534ca2d1 | 428 | } |
ZhongYufan | 3:f894534ca2d1 | 429 | lcd.drawSprite(0,0,48,84,(int *)sprite); |
ZhongYufan | 3:f894534ca2d1 | 430 | lcd.refresh(); |
ZhongYufan | 3:f894534ca2d1 | 431 | wait(0.1); |
ZhongYufan | 3:f894534ca2d1 | 432 | } |
ZhongYufan | 3:f894534ca2d1 | 433 | } |
ZhongYufan | 3:f894534ca2d1 | 434 | |
ZhongYufan | 3:f894534ca2d1 | 435 | void MinerEngine::loading(Gamepad &pad, N5110 &lcd) { |
ZhongYufan | 3:f894534ca2d1 | 436 | |
ZhongYufan | 3:f894534ca2d1 | 437 | lcd.printString("Loading....",12,0); |
ZhongYufan | 3:f894534ca2d1 | 438 | lcd.drawRect(20,12,50,10,FILL_TRANSPARENT); |
ZhongYufan | 3:f894534ca2d1 | 439 | |
ZhongYufan | 3:f894534ca2d1 | 440 | for (int i=0;i<50;i++) { |
ZhongYufan | 3:f894534ca2d1 | 441 | lcd.drawRect(20,12,i,10,FILL_BLACK); |
ZhongYufan | 3:f894534ca2d1 | 442 | lcd.refresh(); |
ZhongYufan | 3:f894534ca2d1 | 443 | wait(0.05); |
ZhongYufan | 3:f894534ca2d1 | 444 | } |
ZhongYufan | 3:f894534ca2d1 | 445 | lcd.printString("Complete!",20,4); |
ZhongYufan | 3:f894534ca2d1 | 446 | lcd.refresh(); |
ZhongYufan | 3:f894534ca2d1 | 447 | wait(0.8); |
ZhongYufan | 3:f894534ca2d1 | 448 | lcd.clear(); |
ZhongYufan | 3:f894534ca2d1 | 449 | } |
ZhongYufan | 4:71d01af424c1 | 450 | void MinerEngine::gold_reload_check() { |
ZhongYufan | 4:71d01af424c1 | 451 | int gold_num = _gold.get_reached_num(); |
ZhongYufan | 4:71d01af424c1 | 452 | if (gold_num<1) { |
ZhongYufan | 4:71d01af424c1 | 453 | _gold.init(9); |
ZhongYufan | 4:71d01af424c1 | 454 | } |
ZhongYufan | 4:71d01af424c1 | 455 | } |
ZhongYufan | 1:9c7bb3db32bc | 456 | // check claw next |
ZhongYufan | 1:9c7bb3db32bc | 457 | /* |
ZhongYufan | 1:9c7bb3db32bc | 458 | Vector2D claw_pos = _claw.get_pos(); |
ZhongYufan | 1:9c7bb3db32bc | 459 | |
ZhongYufan | 1:9c7bb3db32bc | 460 | // see if claw has hit the winch by checking for overlaps |
ZhongYufan | 1:9c7bb3db32bc | 461 | if ( |
ZhongYufan | 1:9c7bb3db32bc | 462 | (claw_pos.y >= claw_pos.y) && //top |
ZhongYufan | 1:9c7bb3db32bc | 463 | (claw_pos.y <= claw_pos.y + _winch_height) && //bottom |
ZhongYufan | 1:9c7bb3db32bc | 464 | (claw_pos.x + _claw_size >= _claw_x) && //left |
ZhongYufan | 1:9c7bb3db32bc | 465 | (claw_pos.x + _claw_size <= _claw_x + _winch_width) //right |
ZhongYufan | 1:9c7bb3db32bc | 466 | ) { |
ZhongYufan | 1:9c7bb3db32bc | 467 | // if it has, fix position and reflect x velocity |
ZhongYufan | 1:9c7bb3db32bc | 468 | claw_pos.x = _claw_x - _claw_size; |
ZhongYufan | 1:9c7bb3db32bc | 469 | claw_velocity.x = -claw_velocity.x; |
ZhongYufan | 1:9c7bb3db32bc | 470 | // audio feedback |
ZhongYufan | 1:9c7bb3db32bc | 471 | pad.tone(1000.0,0.1); |
ZhongYufan | 1:9c7bb3db32bc | 472 | } |
ZhongYufan | 1:9c7bb3db32bc | 473 | |
ZhongYufan | 1:9c7bb3db32bc | 474 | // write new attributes |
ZhongYufan | 1:9c7bb3db32bc | 475 | _claw.set_velocity(claw_velocity); |
ZhongYufan | 1:9c7bb3db32bc | 476 | _claw.set_pos(claw_pos); |
ZhongYufan | 1:9c7bb3db32bc | 477 | */ |