Yufan Zhong / Mbed 2 deprecated GOLD_MINER

Dependencies:   mbed

Committer:
ZhongYufan
Date:
Mon Apr 27 16:02:47 2020 +0000
Revision:
12:07a9f2140d9b
Parent:
11:9da147cd7c18
Child:
13:3299ab0ff2f0
version 2.0 (almost complete)

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 _s = 1;
ZhongYufan 12:07a9f2140d9b 90 //_s = 1;
ZhongYufan 1:9c7bb3db32bc 91 _state = 0;
ZhongYufan 12:07a9f2140d9b 92 _claw_speed = 1;
ZhongYufan 2:fe0dbd155c4b 93 _catching = 0;//是否正在抓取,x轴锁定
ZhongYufan 2:fe0dbd155c4b 94 _claw_get = 0;//是否已经碰到金子
ZhongYufan 7:5bb5cde8951a 95 _monster_collision=0;//是否撞到怪物
ZhongYufan 2:fe0dbd155c4b 96 _now_score = 0;
ZhongYufan 12:07a9f2140d9b 97
ZhongYufan 10:51870f8e2e1a 98 for (int i=0;i<9;i++) {
ZhongYufan 10:51870f8e2e1a 99 _gold_reached_num[i] = 0;
ZhongYufan 10:51870f8e2e1a 100 }
ZhongYufan 1:9c7bb3db32bc 101 }
ZhongYufan 1:9c7bb3db32bc 102
ZhongYufan 12:07a9f2140d9b 103 void MinerEngine::init_unchanged_parameter() {
ZhongYufan 12:07a9f2140d9b 104 _highest_score = 0;
ZhongYufan 12:07a9f2140d9b 105 }
ZhongYufan 1:9c7bb3db32bc 106
ZhongYufan 1:9c7bb3db32bc 107 ///////////////
ZhongYufan 7:5bb5cde8951a 108 void MinerEngine::state_switch(Gamepad &pad, N5110 &lcd)
ZhongYufan 1:9c7bb3db32bc 109 {
ZhongYufan 7:5bb5cde8951a 110
ZhongYufan 1:9c7bb3db32bc 111 while(1){
ZhongYufan 1:9c7bb3db32bc 112 switch(_state) {
ZhongYufan 1:9c7bb3db32bc 113 case 0:
ZhongYufan 1:9c7bb3db32bc 114 menu(pad,lcd) ;
ZhongYufan 1:9c7bb3db32bc 115 break;
ZhongYufan 1:9c7bb3db32bc 116 case 1:
ZhongYufan 1:9c7bb3db32bc 117 instruction(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 118 break;
ZhongYufan 1:9c7bb3db32bc 119 case 2:
ZhongYufan 1:9c7bb3db32bc 120 options(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 121 break;
ZhongYufan 1:9c7bb3db32bc 122 case 3:
ZhongYufan 1:9c7bb3db32bc 123 game_run(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 124 break;
ZhongYufan 1:9c7bb3db32bc 125 case 4:
ZhongYufan 1:9c7bb3db32bc 126 game_over(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 127 break;
ZhongYufan 1:9c7bb3db32bc 128 }
ZhongYufan 1:9c7bb3db32bc 129 }
ZhongYufan 1:9c7bb3db32bc 130 }
ZhongYufan 1:9c7bb3db32bc 131
ZhongYufan 1:9c7bb3db32bc 132 int MinerEngine::get_select(Gamepad &pad) {
ZhongYufan 1:9c7bb3db32bc 133 if ( pad.check_event(Gamepad::Y_PRESSED) == true && _s >0) {
ZhongYufan 1:9c7bb3db32bc 134 _s--;
ZhongYufan 1:9c7bb3db32bc 135 }else if ( pad.check_event(Gamepad::A_PRESSED) == true && _s < 2) {
ZhongYufan 1:9c7bb3db32bc 136 _s++;
ZhongYufan 1:9c7bb3db32bc 137 }
ZhongYufan 1:9c7bb3db32bc 138 return _s;
ZhongYufan 1:9c7bb3db32bc 139 }
ZhongYufan 1:9c7bb3db32bc 140
ZhongYufan 7:5bb5cde8951a 141 void MinerEngine::instruction(Gamepad &pad, N5110 &lcd) {
ZhongYufan 10:51870f8e2e1a 142 lcd.clear();
ZhongYufan 12:07a9f2140d9b 143 lcd.printString("Joystick is",0,0);
ZhongYufan 12:07a9f2140d9b 144 lcd.printString("used to",0,1);
ZhongYufan 12:07a9f2140d9b 145 lcd.printString("control the",0,2);
ZhongYufan 12:07a9f2140d9b 146 lcd.printString("left & right",0,3);
ZhongYufan 12:07a9f2140d9b 147 lcd.printString("of the winch",0,4);
ZhongYufan 12:07a9f2140d9b 148 lcd.refresh();
ZhongYufan 12:07a9f2140d9b 149 wait(5.0);
ZhongYufan 12:07a9f2140d9b 150 lcd.clear();
ZhongYufan 12:07a9f2140d9b 151 lcd.printString("Press button",0,0);
ZhongYufan 12:07a9f2140d9b 152 lcd.printString(" A to put",0,1);
ZhongYufan 12:07a9f2140d9b 153 lcd.printString("the claw down",0,2);
ZhongYufan 12:07a9f2140d9b 154 lcd.printString("to catch &",0,3);
ZhongYufan 12:07a9f2140d9b 155 lcd.printString("lift the gold",0,4);
ZhongYufan 10:51870f8e2e1a 156 lcd.refresh();
ZhongYufan 12:07a9f2140d9b 157 wait(5.0);
ZhongYufan 12:07a9f2140d9b 158 lcd.clear();
ZhongYufan 12:07a9f2140d9b 159 lcd.printString("The most ",0,0);
ZhongYufan 12:07a9f2140d9b 160 lcd.printString("vital thing",0,1);
ZhongYufan 12:07a9f2140d9b 161 lcd.printString("is to try",0,2);
ZhongYufan 12:07a9f2140d9b 162 lcd.printString("to avoid the",0,3);
ZhongYufan 12:07a9f2140d9b 163 lcd.printString("moving monster",0,4);
ZhongYufan 12:07a9f2140d9b 164 lcd.refresh();
ZhongYufan 12:07a9f2140d9b 165 wait(5.0);
ZhongYufan 12:07a9f2140d9b 166 lcd.clear();
ZhongYufan 12:07a9f2140d9b 167 lcd.printString("The 'c' means",0,0);
ZhongYufan 12:07a9f2140d9b 168 lcd.printString("current score",0,1);
ZhongYufan 12:07a9f2140d9b 169 lcd.printString("and 'h' means",0,2);
ZhongYufan 12:07a9f2140d9b 170 lcd.printString("highest score",0,3);
ZhongYufan 12:07a9f2140d9b 171 lcd.refresh();
ZhongYufan 12:07a9f2140d9b 172 wait(5.0);
ZhongYufan 12:07a9f2140d9b 173 _state = 0;
ZhongYufan 12:07a9f2140d9b 174
ZhongYufan 7:5bb5cde8951a 175 }
ZhongYufan 7:5bb5cde8951a 176
ZhongYufan 1:9c7bb3db32bc 177 void MinerEngine::menu(Gamepad &pad, N5110 &lcd) {
ZhongYufan 1:9c7bb3db32bc 178
ZhongYufan 1:9c7bb3db32bc 179 while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) {
ZhongYufan 1:9c7bb3db32bc 180 lcd.clear();
ZhongYufan 1:9c7bb3db32bc 181 _s = get_select(pad); // get the selection
ZhongYufan 1:9c7bb3db32bc 182 lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
ZhongYufan 1:9c7bb3db32bc 183 lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT);
ZhongYufan 1:9c7bb3db32bc 184 lcd.printString(" Press Y or A",2,1); // print the instruction
ZhongYufan 12:07a9f2140d9b 185 lcd.printString(" Intro",2,2);
ZhongYufan 12:07a9f2140d9b 186 lcd.printString(" Start Game",2,3);
ZhongYufan 12:07a9f2140d9b 187 lcd.printString(" Options",2,4);
ZhongYufan 1:9c7bb3db32bc 188 if ( _s == 1 ) {
ZhongYufan 12:07a9f2140d9b 189 lcd.drawSprite(70,24,8,8,(int *)arrow);
ZhongYufan 1:9c7bb3db32bc 190 }else if ( _s == 2) {
ZhongYufan 12:07a9f2140d9b 191 lcd.drawSprite(70,32,8,8,(int *)arrow);
ZhongYufan 1:9c7bb3db32bc 192 }else if( _s == 0) {
ZhongYufan 12:07a9f2140d9b 193 lcd.drawSprite(70,16,8,8,(int *)arrow);
ZhongYufan 1:9c7bb3db32bc 194 }
ZhongYufan 1:9c7bb3db32bc 195 lcd.refresh();
ZhongYufan 7:5bb5cde8951a 196 }
ZhongYufan 7:5bb5cde8951a 197
ZhongYufan 7:5bb5cde8951a 198
ZhongYufan 7:5bb5cde8951a 199 if ( _s == 0) { // select the game
ZhongYufan 1:9c7bb3db32bc 200 //select(pad,lcd);
ZhongYufan 1:9c7bb3db32bc 201 _state = 1;
ZhongYufan 7:5bb5cde8951a 202 }
ZhongYufan 1:9c7bb3db32bc 203 else if ( _s == 1){
ZhongYufan 7:5bb5cde8951a 204 _state = 3;
ZhongYufan 7:5bb5cde8951a 205 }
ZhongYufan 1:9c7bb3db32bc 206 else if (_s == 2){
ZhongYufan 1:9c7bb3db32bc 207 _state = 2;
ZhongYufan 7:5bb5cde8951a 208 }
ZhongYufan 1:9c7bb3db32bc 209 }
ZhongYufan 1:9c7bb3db32bc 210
ZhongYufan 1:9c7bb3db32bc 211 void MinerEngine::options(Gamepad &pad, N5110 &lcd) {
ZhongYufan 1:9c7bb3db32bc 212 while ( pad.check_event(Gamepad::START_PRESSED) == false && pad.check_event(Gamepad::JOY_PRESSED) == false) {
ZhongYufan 1:9c7bb3db32bc 213 lcd.clear();
ZhongYufan 1:9c7bb3db32bc 214 int _s = get_select(pad);
ZhongYufan 1:9c7bb3db32bc 215 lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
ZhongYufan 1:9c7bb3db32bc 216 lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT);
ZhongYufan 1:9c7bb3db32bc 217 lcd.printString(" Press Y or A",2,1);
ZhongYufan 1:9c7bb3db32bc 218 lcd.printString(" Easy",4,2);
ZhongYufan 1:9c7bb3db32bc 219 lcd.printString(" Normal",4,3);
ZhongYufan 1:9c7bb3db32bc 220 lcd.printString(" Hard",4,4);
ZhongYufan 1:9c7bb3db32bc 221 if ( _s == 0) {
ZhongYufan 12:07a9f2140d9b 222 lcd.drawSprite(60,15,8,8,(int *)arrow);
ZhongYufan 12:07a9f2140d9b 223 _monster.set_speed(1);
ZhongYufan 1:9c7bb3db32bc 224 }else if ( _s == 1 ) {
ZhongYufan 12:07a9f2140d9b 225 lcd.drawSprite(60,24,8,8,(int *)arrow);
ZhongYufan 12:07a9f2140d9b 226 _monster.set_speed(1.5);
ZhongYufan 1:9c7bb3db32bc 227 }else if ( _s == 2) {
ZhongYufan 12:07a9f2140d9b 228 lcd.drawSprite(60,32,8,8,(int *)arrow);
ZhongYufan 12:07a9f2140d9b 229 _monster.set_speed(2);
ZhongYufan 1:9c7bb3db32bc 230 }
ZhongYufan 1:9c7bb3db32bc 231 lcd.refresh();
ZhongYufan 1:9c7bb3db32bc 232 }
ZhongYufan 1:9c7bb3db32bc 233 _state = 0;
ZhongYufan 1:9c7bb3db32bc 234 }
ZhongYufan 1:9c7bb3db32bc 235
ZhongYufan 7:5bb5cde8951a 236 void MinerEngine::game_run(Gamepad &pad, N5110 &lcd) {
ZhongYufan 12:07a9f2140d9b 237 int fps=12;
ZhongYufan 8:c5969685cf02 238 _monster_collision=0;
ZhongYufan 8:c5969685cf02 239 while(_monster_collision==0) {
ZhongYufan 8:c5969685cf02 240 lcd.clear();
ZhongYufan 7:5bb5cde8951a 241 read_input(pad);
ZhongYufan 1:9c7bb3db32bc 242 update(pad);
ZhongYufan 1:9c7bb3db32bc 243 draw(lcd);
ZhongYufan 1:9c7bb3db32bc 244 lcd.refresh();
ZhongYufan 12:07a9f2140d9b 245 wait(1.0f/fps);
ZhongYufan 7:5bb5cde8951a 246 }
ZhongYufan 1:9c7bb3db32bc 247 }
ZhongYufan 1:9c7bb3db32bc 248 /////////////
ZhongYufan 2:fe0dbd155c4b 249 /////////////
ZhongYufan 2:fe0dbd155c4b 250
ZhongYufan 2:fe0dbd155c4b 251 void MinerEngine::check_gold_collision(Gamepad &pad)//只检查金子Y<=13
ZhongYufan 1:9c7bb3db32bc 252 {
ZhongYufan 2:fe0dbd155c4b 253 for (int i=0;i<9;i++) {
ZhongYufan 10:51870f8e2e1a 254
ZhongYufan 10:51870f8e2e1a 255 if (_gold_reached_num[i]==0) {
ZhongYufan 10:51870f8e2e1a 256 Vector2D gold_pos = _gold.get_pos(i);
ZhongYufan 2:fe0dbd155c4b 257
ZhongYufan 12:07a9f2140d9b 258 if (gold_pos.y <= 17) {
ZhongYufan 10:51870f8e2e1a 259 _claw_get=0;
ZhongYufan 10:51870f8e2e1a 260 _now_score++;
ZhongYufan 12:07a9f2140d9b 261 _catching = 0;
ZhongYufan 10:51870f8e2e1a 262 _claw.add_now_score();
ZhongYufan 10:51870f8e2e1a 263 _gold_reached_num[i] = 1;
ZhongYufan 10:51870f8e2e1a 264 //pad.tone(1500.0,0.5);
ZhongYufan 10:51870f8e2e1a 265 pad.leds_on();
ZhongYufan 10:51870f8e2e1a 266 wait(0.5);
ZhongYufan 10:51870f8e2e1a 267 pad.leds_off();
ZhongYufan 10:51870f8e2e1a 268 }
ZhongYufan 10:51870f8e2e1a 269 }
ZhongYufan 1:9c7bb3db32bc 270 }
ZhongYufan 1:9c7bb3db32bc 271 }
ZhongYufan 1:9c7bb3db32bc 272
ZhongYufan 7:5bb5cde8951a 273 void MinerEngine::print_scores(N5110 &lcd) {
ZhongYufan 7:5bb5cde8951a 274
ZhongYufan 1:9c7bb3db32bc 275 // get scores from winchs
ZhongYufan 2:fe0dbd155c4b 276 int highest_score = _winch.get_highest_score();
ZhongYufan 2:fe0dbd155c4b 277
ZhongYufan 2:fe0dbd155c4b 278 // print to LCD
ZhongYufan 1:9c7bb3db32bc 279 char buffer1[14];
ZhongYufan 2:fe0dbd155c4b 280 sprintf(buffer1,"%2d",_now_score);
ZhongYufan 8:c5969685cf02 281 lcd.printString(buffer1,1,0); // font is 8 wide, so leave 4 pixel gape from middle assuming two digits
ZhongYufan 12:07a9f2140d9b 282 lcd.printString("c",WIDTH/2-18,0);
ZhongYufan 12:07a9f2140d9b 283 lcd.printString("h",WIDTH/2+18,0);
ZhongYufan 11:9da147cd7c18 284 if (_now_score>_highest_score) {
ZhongYufan 12:07a9f2140d9b 285 _highest_score = _now_score;
ZhongYufan 11:9da147cd7c18 286 }
ZhongYufan 1:9c7bb3db32bc 287 char buffer2[14];
ZhongYufan 2:fe0dbd155c4b 288 sprintf(buffer2,"%2d",_highest_score);
ZhongYufan 8:c5969685cf02 289 lcd.printString(buffer2,WIDTH-13,0);
ZhongYufan 1:9c7bb3db32bc 290 }
ZhongYufan 1:9c7bb3db32bc 291
ZhongYufan 1:9c7bb3db32bc 292 void MinerEngine::read_input(Gamepad &pad)
ZhongYufan 1:9c7bb3db32bc 293 {
ZhongYufan 1:9c7bb3db32bc 294 _d = pad.get_direction();
ZhongYufan 1:9c7bb3db32bc 295 _mag = pad.get_mag();
ZhongYufan 8:c5969685cf02 296 if (pad.check_event(Gamepad::A_PRESSED) == true){
ZhongYufan 8:c5969685cf02 297 _catching=1;
ZhongYufan 12:07a9f2140d9b 298 _claw.set_velocity(_claw_speed);
ZhongYufan 8:c5969685cf02 299 }
ZhongYufan 1:9c7bb3db32bc 300 }
ZhongYufan 1:9c7bb3db32bc 301
ZhongYufan 1:9c7bb3db32bc 302 void MinerEngine::draw(N5110 &lcd)
ZhongYufan 1:9c7bb3db32bc 303 {
ZhongYufan 1:9c7bb3db32bc 304 // draw the elements in the LCD buffer
ZhongYufan 1:9c7bb3db32bc 305 // pitch
ZhongYufan 8:c5969685cf02 306
ZhongYufan 1:9c7bb3db32bc 307 lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
ZhongYufan 1:9c7bb3db32bc 308 //horizontal line
ZhongYufan 1:9c7bb3db32bc 309 lcd.drawLine(0,13,WIDTH,13,1);
ZhongYufan 8:c5969685cf02 310 lcd.drawLine(0,0,WIDTH,0,0);
ZhongYufan 1:9c7bb3db32bc 311 print_scores(lcd);
ZhongYufan 8:c5969685cf02 312
ZhongYufan 1:9c7bb3db32bc 313 _winch.draw(lcd);
ZhongYufan 1:9c7bb3db32bc 314 _claw.draw(lcd);
ZhongYufan 1:9c7bb3db32bc 315 _gold.draw(lcd);
ZhongYufan 1:9c7bb3db32bc 316 _monster.draw(lcd);
ZhongYufan 8:c5969685cf02 317
ZhongYufan 8:c5969685cf02 318
ZhongYufan 7:5bb5cde8951a 319 }
ZhongYufan 1:9c7bb3db32bc 320
ZhongYufan 1:9c7bb3db32bc 321 void MinerEngine::update(Gamepad &pad)
ZhongYufan 1:9c7bb3db32bc 322 {
ZhongYufan 9:9a30f26fed81 323 if (_catching==0) {
ZhongYufan 8:c5969685cf02 324 _winch.update(_d,_mag);
ZhongYufan 9:9a30f26fed81 325 }
ZhongYufan 8:c5969685cf02 326 Vector2D winch_pos = _winch.get_pos();
ZhongYufan 8:c5969685cf02 327 _claw.update(_d,_mag,winch_pos);
ZhongYufan 12:07a9f2140d9b 328 // wait(0.05);
ZhongYufan 8:c5969685cf02 329
ZhongYufan 1:9c7bb3db32bc 330 _monster.update();
ZhongYufan 12:07a9f2140d9b 331 // wait(0.05);
ZhongYufan 1:9c7bb3db32bc 332 _gold.update();
ZhongYufan 8:c5969685cf02 333
ZhongYufan 1:9c7bb3db32bc 334 check_monster_collision(pad);
ZhongYufan 7:5bb5cde8951a 335 check_claw_collision(pad);
ZhongYufan 1:9c7bb3db32bc 336 check_gold_collision(pad);
ZhongYufan 7:5bb5cde8951a 337 check_gold_reload();
ZhongYufan 1:9c7bb3db32bc 338 }
ZhongYufan 1:9c7bb3db32bc 339
ZhongYufan 1:9c7bb3db32bc 340 void MinerEngine::check_monster_collision(Gamepad &pad)
ZhongYufan 1:9c7bb3db32bc 341 {
ZhongYufan 1:9c7bb3db32bc 342 // read current claw attributes
ZhongYufan 1:9c7bb3db32bc 343 Vector2D claw_pos = _claw.get_pos();
ZhongYufan 6:3381131afe50 344 int monster_x = _monster.get_pos();
ZhongYufan 12:07a9f2140d9b 345 float monster_speed = _monster.get_speed();
ZhongYufan 12:07a9f2140d9b 346 if ((monster_x-claw_pos.x)<=0
ZhongYufan 12:07a9f2140d9b 347 && (monster_x-claw_pos.x)>(-2)
ZhongYufan 12:07a9f2140d9b 348 && claw_pos.y>=22) {
ZhongYufan 6:3381131afe50 349 _monster_collision=1;
ZhongYufan 12:07a9f2140d9b 350 // audio feedback
ZhongYufan 12:07a9f2140d9b 351 pad.tone(1500.0,0.3);
ZhongYufan 12:07a9f2140d9b 352 pad.leds_on();
ZhongYufan 12:07a9f2140d9b 353 wait(0.3);
ZhongYufan 12:07a9f2140d9b 354 pad.leds_off();
ZhongYufan 12:07a9f2140d9b 355 wait(0.2);
ZhongYufan 12:07a9f2140d9b 356 pad.tone(1500.0,1.0);
ZhongYufan 12:07a9f2140d9b 357 pad.leds_on();
ZhongYufan 12:07a9f2140d9b 358 wait(1.0);
ZhongYufan 12:07a9f2140d9b 359 pad.leds_off();
ZhongYufan 12:07a9f2140d9b 360 wait(0.5);
ZhongYufan 7:5bb5cde8951a 361 _state=4;
ZhongYufan 6:3381131afe50 362 }
ZhongYufan 1:9c7bb3db32bc 363 }
ZhongYufan 1:9c7bb3db32bc 364
ZhongYufan 2:fe0dbd155c4b 365 void MinerEngine::check_claw_collision(Gamepad &pad)
ZhongYufan 1:9c7bb3db32bc 366 {
ZhongYufan 8:c5969685cf02 367 Vector2D claw_pos = _claw.get_pos();// read current claw attributes
ZhongYufan 4:71d01af424c1 368
ZhongYufan 4:71d01af424c1 369 for (int i=0;i<9;i++) {
ZhongYufan 10:51870f8e2e1a 370 if (_gold_reached_num[i]==0) {
ZhongYufan 4:71d01af424c1 371 Vector2D gold_pos = _gold.get_pos(i);
ZhongYufan 10:51870f8e2e1a 372 if (claw_pos.x-gold_pos.x<5&&
ZhongYufan 10:51870f8e2e1a 373 claw_pos.x-gold_pos.x>-5&&
ZhongYufan 4:71d01af424c1 374 (claw_pos.y+3)-gold_pos.y>-2) {
ZhongYufan 4:71d01af424c1 375 _claw_get=1;
ZhongYufan 4:71d01af424c1 376 _gold.gold_caught(i);
ZhongYufan 8:c5969685cf02 377 pad.tone(1000.0,0.1); }// audio feedback
ZhongYufan 10:51870f8e2e1a 378 }
ZhongYufan 4:71d01af424c1 379 }
ZhongYufan 8:c5969685cf02 380 if (claw_pos.y>HEIGHT-4||_claw_get==1) {
ZhongYufan 10:51870f8e2e1a 381 //_claw_get=0;
ZhongYufan 12:07a9f2140d9b 382 _claw.set_velocity(-(_claw_speed));
ZhongYufan 10:51870f8e2e1a 383 pad.tone(1500.0,0.1);
ZhongYufan 12:07a9f2140d9b 384 //pad.leds_on();
ZhongYufan 12:07a9f2140d9b 385 //wait(0.2);
ZhongYufan 12:07a9f2140d9b 386 //pad.leds_off();
ZhongYufan 2:fe0dbd155c4b 387 }
ZhongYufan 2:fe0dbd155c4b 388
ZhongYufan 2:fe0dbd155c4b 389 if (claw_pos.y<=14) {
ZhongYufan 8:c5969685cf02 390 _claw.set_velocity(0.0);
ZhongYufan 12:07a9f2140d9b 391 _catching=0;
ZhongYufan 2:fe0dbd155c4b 392 }
ZhongYufan 2:fe0dbd155c4b 393 }
ZhongYufan 1:9c7bb3db32bc 394
ZhongYufan 8:c5969685cf02 395
ZhongYufan 1:9c7bb3db32bc 396 /////////////////////////////////////////////////////
ZhongYufan 1:9c7bb3db32bc 397 void MinerEngine::welcome(Gamepad &pad, N5110 &lcd) {
ZhongYufan 1:9c7bb3db32bc 398
ZhongYufan 1:9c7bb3db32bc 399
ZhongYufan 1:9c7bb3db32bc 400 lcd.drawSprite(0,0,48,84,(int *)sprite);
ZhongYufan 1:9c7bb3db32bc 401 lcd.drawRect(4,31,25,9, FILL_WHITE);
ZhongYufan 1:9c7bb3db32bc 402 lcd.drawRect(4,39,31,10, FILL_WHITE);
ZhongYufan 1:9c7bb3db32bc 403 lcd.printString("GOLD",5,4);
ZhongYufan 1:9c7bb3db32bc 404 lcd.printString("MINER",5,5);
ZhongYufan 1:9c7bb3db32bc 405 lcd.drawLine(0,47,84,47,1);
ZhongYufan 1:9c7bb3db32bc 406 lcd.refresh();
ZhongYufan 1:9c7bb3db32bc 407
ZhongYufan 12:07a9f2140d9b 408 while ( pad.check_event(Gamepad::START_PRESSED) == false) {
ZhongYufan 12:07a9f2140d9b 409 play_music(pad);
ZhongYufan 12:07a9f2140d9b 410 }
ZhongYufan 12:07a9f2140d9b 411 screen_rollup(pad,lcd);
ZhongYufan 12:07a9f2140d9b 412 loading(pad,lcd);
ZhongYufan 2:fe0dbd155c4b 413 }
ZhongYufan 2:fe0dbd155c4b 414
ZhongYufan 5:58932f73fc35 415 void MinerEngine::game_over(Gamepad &pad, N5110 &lcd) {
ZhongYufan 11:9da147cd7c18 416 lcd.clear();
ZhongYufan 12:07a9f2140d9b 417 if ( pad.check_event(Gamepad::START_PRESSED) == false
ZhongYufan 5:58932f73fc35 418 && pad.check_event(Gamepad::JOY_PRESSED) == false
ZhongYufan 5:58932f73fc35 419 && pad.check_event(Gamepad::BACK_PRESSED) == false)
ZhongYufan 5:58932f73fc35 420 {
ZhongYufan 5:58932f73fc35 421 lcd.drawRect(0,0,WIDTH,HEIGHT,FILL_TRANSPARENT);
ZhongYufan 5:58932f73fc35 422 lcd.drawRect(1,1,WIDTH-2,HEIGHT-2,FILL_TRANSPARENT);
ZhongYufan 12:07a9f2140d9b 423 lcd.printString("!!Game Over!!",2,1);
ZhongYufan 12:07a9f2140d9b 424 lcd.printString("[back][start]",2,3);
ZhongYufan 12:07a9f2140d9b 425 lcd.printString(" menu restart",2,4);
ZhongYufan 11:9da147cd7c18 426 lcd.refresh();
ZhongYufan 12:07a9f2140d9b 427 play_music(pad);
ZhongYufan 5:58932f73fc35 428 }
ZhongYufan 5:58932f73fc35 429
ZhongYufan 5:58932f73fc35 430 if (pad.check_event(Gamepad::START_PRESSED) == true
ZhongYufan 5:58932f73fc35 431 ||pad.check_event(Gamepad::JOY_PRESSED) == true) {
ZhongYufan 12:07a9f2140d9b 432 init(12,6,9,1);
ZhongYufan 7:5bb5cde8951a 433 _state=3;
ZhongYufan 12:07a9f2140d9b 434
ZhongYufan 5:58932f73fc35 435 }
ZhongYufan 5:58932f73fc35 436
ZhongYufan 5:58932f73fc35 437 if (pad.check_event(Gamepad::BACK_PRESSED) == true) {
ZhongYufan 12:07a9f2140d9b 438 init(12,6,9,1);;
ZhongYufan 7:5bb5cde8951a 439 _state=0;
ZhongYufan 12:07a9f2140d9b 440
ZhongYufan 5:58932f73fc35 441 }
ZhongYufan 5:58932f73fc35 442 }
ZhongYufan 5:58932f73fc35 443
ZhongYufan 2:fe0dbd155c4b 444 void MinerEngine::play_music(Gamepad &pad) {
ZhongYufan 1:9c7bb3db32bc 445 pad.tone(370,0.15);
ZhongYufan 1:9c7bb3db32bc 446 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 447 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 448 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 449 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 450 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 451 pad.tone(554,0.15);
ZhongYufan 1:9c7bb3db32bc 452 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 453 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 454 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 455 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 456 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 457 pad.tone(493,0.15);
ZhongYufan 1:9c7bb3db32bc 458 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 459 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 460 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 461 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 462 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 463 pad.tone(554,0.15);
ZhongYufan 1:9c7bb3db32bc 464 wait(0.2);
ZhongYufan 1:9c7bb3db32bc 465 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 466 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 467 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 468 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 469 pad.tone(659,0.15);
ZhongYufan 1:9c7bb3db32bc 470 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 471 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 472 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 473 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 474 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 475 pad.tone(554,0.15);
ZhongYufan 1:9c7bb3db32bc 476 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 477 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 478 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 479 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 480 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 481 pad.tone(493,0.15);
ZhongYufan 1:9c7bb3db32bc 482 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 483 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 484 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 485 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 486 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 487 pad.tone(554,0.15);
ZhongYufan 1:9c7bb3db32bc 488 wait(0.35);
ZhongYufan 1:9c7bb3db32bc 489 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 490 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 491 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 492 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 493 pad.tone(554,0.15);
ZhongYufan 1:9c7bb3db32bc 494 wait(0.2);
ZhongYufan 1:9c7bb3db32bc 495 pad.leds_on();
ZhongYufan 1:9c7bb3db32bc 496 wait(0.02);
ZhongYufan 1:9c7bb3db32bc 497 pad.leds_off();
ZhongYufan 1:9c7bb3db32bc 498 wait(0.02);
ZhongYufan 2:fe0dbd155c4b 499 }
ZhongYufan 3:f894534ca2d1 500
ZhongYufan 3:f894534ca2d1 501 void MinerEngine::screen_rollup(Gamepad &pad, N5110 &lcd) {
ZhongYufan 3:f894534ca2d1 502
ZhongYufan 3:f894534ca2d1 503 lcd.clear();
ZhongYufan 3:f894534ca2d1 504 for (int i=0;i<47;i++) {
ZhongYufan 3:f894534ca2d1 505 for(int m=0;m<47;m++) {
ZhongYufan 3:f894534ca2d1 506 for (int n=0;n<84;n++) {
ZhongYufan 3:f894534ca2d1 507 sprite[m][n]= sprite[m+1][n];
ZhongYufan 3:f894534ca2d1 508 sprite[47][n]= 0;
ZhongYufan 3:f894534ca2d1 509 }
ZhongYufan 3:f894534ca2d1 510 }
ZhongYufan 3:f894534ca2d1 511 lcd.drawSprite(0,0,48,84,(int *)sprite);
ZhongYufan 3:f894534ca2d1 512 lcd.refresh();
ZhongYufan 3:f894534ca2d1 513 wait(0.1);
ZhongYufan 3:f894534ca2d1 514 }
ZhongYufan 3:f894534ca2d1 515 }
ZhongYufan 3:f894534ca2d1 516
ZhongYufan 3:f894534ca2d1 517 void MinerEngine::loading(Gamepad &pad, N5110 &lcd) {
ZhongYufan 3:f894534ca2d1 518
ZhongYufan 3:f894534ca2d1 519 lcd.printString("Loading....",12,0);
ZhongYufan 3:f894534ca2d1 520 lcd.drawRect(20,12,50,10,FILL_TRANSPARENT);
ZhongYufan 3:f894534ca2d1 521
ZhongYufan 3:f894534ca2d1 522 for (int i=0;i<50;i++) {
ZhongYufan 3:f894534ca2d1 523 lcd.drawRect(20,12,i,10,FILL_BLACK);
ZhongYufan 3:f894534ca2d1 524 lcd.refresh();
ZhongYufan 3:f894534ca2d1 525 wait(0.05);
ZhongYufan 3:f894534ca2d1 526 }
ZhongYufan 3:f894534ca2d1 527 lcd.printString("Complete!",20,4);
ZhongYufan 3:f894534ca2d1 528 lcd.refresh();
ZhongYufan 3:f894534ca2d1 529 wait(0.8);
ZhongYufan 3:f894534ca2d1 530 lcd.clear();
ZhongYufan 3:f894534ca2d1 531 }
ZhongYufan 7:5bb5cde8951a 532 void MinerEngine::check_gold_reload() {
ZhongYufan 8:c5969685cf02 533 int gold_left = _gold.get_left_num();
ZhongYufan 8:c5969685cf02 534 if (gold_left<1) {
ZhongYufan 4:71d01af424c1 535 _gold.init(9);
ZhongYufan 10:51870f8e2e1a 536 for (int i=0;i<9;i++) {
ZhongYufan 10:51870f8e2e1a 537 _gold_reached_num[i] = 0;
ZhongYufan 4:71d01af424c1 538 }
ZhongYufan 10:51870f8e2e1a 539 }
ZhongYufan 4:71d01af424c1 540 }
ZhongYufan 7:5bb5cde8951a 541