Yufan Zhong / Mbed 2 deprecated GOLD_MINER

Dependencies:   mbed

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?

UserRevisionLine numberNew 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 */