-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js.map
1 lines (1 loc) · 211 KB
/
index.js.map
1
{"version":3,"file":"index.js","sources":["src/data.js","src/eventBus.js","src/Menu.js","src/StageNum.js","src/GameOver.js","src/Box.js","src/Brick.js","src/Iron.js","src/Fade.js","src/util.js","src/Player.js","src/Enemy.js","src/Bullet.js","src/Hit.js","src/Boom.js","src/Item.js","src/Status.js","src/Grass.js","src/Sound.js","src/index.js"],"sourcesContent":["export default {\n \"0\": {\n \"brick\": [[7, 4], [7, 5], [7, 6], [7, 7], [7, 8], [7, 9], [7, 10], [7, 11], [8, 4], [8, 5], [8, 6], [8, 7], [8, 8], [8, 9], [8, 10], [8, 11], [11, 4], [12, 4], [12, 5], [11, 5], [11, 6], [12, 6], [12, 7], [11, 7], [11, 8], [12, 8], [12, 9], [11, 9], [11, 10], [12, 10], [11, 11], [12, 11], [9, 14], [9, 15], [10, 15], [10, 14], [11, 14], [11, 15], [12, 15], [12, 14], [7, 18], [8, 18], [7, 19], [8, 19], [7, 20], [8, 20], [7, 21], [8, 21], [7, 22], [8, 22], [7, 23], [8, 23], [7, 24], [8, 24], [7, 25], [8, 25], [11, 18], [12, 18], [12, 19], [12, 20], [12, 21], [12, 22], [11, 22], [11, 20], [11, 19], [11, 21], [11, 23], [12, 23], [12, 24], [11, 24], [11, 25], [12, 25], [15, 9], [16, 9], [16, 8], [15, 8], [15, 7], [16, 7], [16, 6], [15, 6], [15, 5], [15, 4], [16, 4], [16, 5], [19, 9], [20, 9], [20, 8], [19, 8], [19, 7], [20, 7], [20, 6], [19, 6], [19, 5], [19, 4], [20, 4], [20, 5], [15, 12], [15, 13], [16, 13], [16, 12], [19, 12], [19, 13], [20, 13], [20, 12], [15, 17], [15, 16], [16, 16], [16, 17], [15, 18], [16, 18], [15, 19], [16, 19], [15, 20], [16, 20], [15, 21], [16, 21], [15, 22], [16, 22], [19, 16], [20, 16], [20, 17], [19, 17], [19, 18], [20, 18], [20, 19], [19, 19], [19, 20], [20, 20], [20, 21], [19, 21], [19, 22], [20, 22], [17, 17], [18, 17], [18, 18], [17, 18], [23, 4], [24, 4], [23, 5], [24, 5], [24, 6], [23, 6], [23, 8], [23, 7], [24, 7], [24, 8], [23, 9], [24, 9], [23, 10], [24, 10], [23, 11], [24, 11], [27, 4], [28, 4], [28, 5], [27, 5], [27, 6], [28, 6], [28, 7], [27, 7], [27, 8], [28, 8], [28, 9], [27, 10], [27, 9], [28, 10], [27, 11], [28, 11], [23, 14], [23, 15], [24, 14], [24, 15], [26, 14], [26, 15], [25, 15], [25, 14], [23, 18], [24, 18], [23, 19], [24, 19], [23, 20], [24, 20], [23, 21], [24, 21], [23, 22], [24, 22], [23, 23], [24, 23], [23, 24], [24, 24], [23, 25], [24, 25], [27, 18], [28, 18], [27, 19], [28, 19], [27, 20], [28, 20], [27, 21], [28, 21], [27, 22], [28, 22], [27, 23], [28, 23], [27, 25], [28, 25], [28, 24], [27, 24], [29, 14], [30, 14], [6, 14], [5, 14], [16, 25], [17, 25], [18, 25], [19, 25], [16, 26], [16, 27], [19, 26], [19, 27]],\n \"iron\": [[30, 15], [29, 15], [6, 15], [5, 15], [17, 7], [18, 7], [18, 8], [17, 8]],\n \"grass\": [],\n \"home\": [[17, 26]],\n \"player\": [[13, 26, 2, 1], [21, 26, 2, 1]],\n \"enemy\": [[5, 2, 0], [17, 2, 0], [29, 2, 1], [5, 2, 2], [17, 2, 2], [29, 3, 5], [5, 2, 1], [17, 2, 2], [29, 2, 3], [5, 2, 3], [17, 2, 4], [29, 2, 4], [5, 2, 0], [17, 2, 2], [29, 2, 1], [5, 2, 2], [17, 2, 3], [29, 2, 4], [5, 2, 4], [17, 2, 5], [29, 2, 5]],\n \"box\": [5, 2, 31, 28]\n },\n \"1\": {\n \"brick\": [[7, 4], [7, 5], [7, 6], [7, 7], [8, 4], [8, 5], [8, 6], [8, 7], [11, 8], [12, 8], [12, 9], [11, 9], [11, 10], [12, 10], [11, 11], [12, 11], [9, 14], [9, 15], [10, 15], [10, 14], [11, 14], [11, 15], [12, 15], [12, 14], [7, 18], [8, 18], [7, 19], [8, 19], [7, 20], [8, 20], [7, 21], [8, 21], [7, 22], [8, 22], [7, 23], [8, 23], [7, 24], [8, 24], [7, 25], [8, 25], [12, 20], [12, 21], [12, 22], [11, 22], [11, 20], [11, 21], [11, 23], [12, 23], [19, 7], [20, 7], [20, 6], [19, 6], [19, 5], [19, 4], [20, 4], [20, 5], [15, 12], [15, 13], [16, 13], [16, 12], [15, 17], [15, 16], [16, 16], [16, 17], [15, 18], [16, 18], [15, 19], [16, 19], [15, 20], [16, 20], [15, 21], [16, 21], [15, 22], [16, 22], [19, 16], [20, 16], [20, 17], [19, 17], [19, 18], [20, 18], [20, 19], [19, 19], [19, 20], [20, 20], [20, 21], [19, 21], [19, 22], [20, 22], [23, 4], [24, 4], [23, 5], [24, 5], [24, 6], [23, 6], [23, 7], [24, 7], [23, 10], [24, 10], [23, 11], [24, 11], [27, 4], [28, 4], [28, 5], [27, 5], [27, 6], [28, 6], [28, 7], [27, 7], [27, 10], [28, 10], [27, 11], [28, 11], [23, 20], [24, 20], [23, 21], [24, 21], [23, 24], [24, 24], [23, 25], [24, 25], [27, 18], [28, 18], [27, 19], [28, 19], [27, 20], [28, 20], [27, 21], [28, 21], [27, 25], [28, 25], [28, 24], [27, 24], [16, 25], [17, 25], [18, 25], [19, 25], [16, 26], [16, 27], [19, 26], [19, 27], [7, 15], [8, 15], [8, 14], [7, 14], [7, 26], [8, 26], [7, 27], [8, 27], [11, 26], [12, 26], [12, 27], [11, 27], [15, 23], [16, 23], [17, 23], [18, 23], [19, 23], [20, 23], [18, 22], [17, 22], [17, 21], [17, 20], [18, 20], [18, 21], [23, 26], [23, 27], [24, 27], [24, 26], [25, 27], [26, 27], [27, 27], [28, 27], [28, 26], [27, 26], [26, 26], [25, 26], [24, 17], [23, 17], [23, 16], [24, 16], [17, 7], [18, 7], [18, 6], [17, 6], [27, 16], [27, 17], [28, 17], [28, 16], [28, 14], [28, 15], [27, 15], [27, 14]],\n \"iron\": [[11, 2], [12, 2], [12, 3], [11, 3], [12, 5], [11, 4], [11, 5], [12, 4], [6, 18], [5, 18], [5, 19], [6, 19], [11, 16], [11, 17], [12, 17], [12, 16], [12, 18], [11, 18], [11, 19], [12, 19], [26, 21], [25, 21], [25, 20], [26, 20], [19, 14], [19, 15], [20, 15], [20, 14], [21, 12], [21, 13], [22, 13], [22, 12], [17, 11], [17, 10], [18, 10], [18, 11], [19, 2], [19, 3], [20, 3], [20, 2], [25, 6], [26, 6], [26, 7], [25, 7], [29, 10], [30, 10], [30, 11], [29, 11], [24, 8], [23, 8], [23, 9], [24, 9]],\n \"home\": [[17, 26]],\n \"grass\": [[6, 13], [5, 13], [5, 12], [6, 12], [5, 11], [6, 11], [5, 10], [6, 10], [7, 13], [8, 13], [8, 12], [7, 12], [18, 14], [17, 14], [17, 15], [18, 15], [16, 14], [15, 14], [15, 15], [16, 15], [14, 14], [13, 15], [14, 15], [13, 14], [13, 16], [14, 16], [14, 17], [13, 17], [25, 12], [26, 12], [26, 13], [25, 13], [25, 14], [26, 14], [26, 15], [25, 15]],\n \"enemy\": [[5, 2, 0], [17, 2, 0], [29, 2, 1], [5, 2, 2], [17, 2, 3], [29, 3, 4], [5, 2, 5], [17, 2, 2], [29, 2, 1], [5, 2, 1], [17, 2, 2], [29, 2, 0], [5, 2, 3], [17, 2, 1], [29, 2, 2], [5, 2, 3], [17, 2, 3], [29, 2, 4], [5, 2, 4], [17, 2, 5], [29, 2, 5]],\n \"player\": [[13, 26, 2, 1], [21, 26, 2, 1]],\n \"box\": [5, 2, 31, 28]\n },\n num: 0,\n total: 2,\n current: null,\n};\n","import karas from 'karas';\nimport data from './data';\n\nlet eventBus = new karas.Event();\n\neventBus.BEFORE_MENU = 0;\neventBus.MENUING = 1;\neventBus.BEFORE_GAME = 2;\neventBus.WILL_GAME = 3;\neventBus.GAMEING = 4;\neventBus.GAME_OVER = 5;\neventBus.GAME_OVER_WAIT = 6;\neventBus.GAME_NEXT = 7;\n\neventBus.gameState = eventBus.BEFORE_MENU;\neventBus.activeEnemyNum = 0;\neventBus.playerNum = 1;\n\neventBus.HIT_BOX = 'HIT_BOX';\neventBus.HIT_BRICK = 'HIT_BRICK';\neventBus.HIT_IRON = 'HIT_IRON';\neventBus.HIT_ENEMY = 'HIT_ENEMY';\neventBus.HIT_HOME = 'HIT_HOME';\neventBus.HIT_US = 'HIT_US';\neventBus.HIT_US_BY_US = 'HIT_US_BY_US';\n\neventBus.ADD_ENEMY = 'ADD_ENEMY';\neventBus.ADDED_ENEMY = 'ADDED_ENEMY';\neventBus.ENEMY_FIRE = 'ENEMY_FIRE';\neventBus.SHOOT = 'SHOOT';\n\neventBus.PLAY_REBONE = 'PLAY_REBONE';\neventBus.PLAYER_NO_LIFE = 'PLAYER_NO_LIFE';\neventBus.MOVE = 'MOVE';\neventBus.STOP = 'STOP';\n\neventBus.BOOM = 'BOOM';\n\neventBus.OCCUR = 'OCCUR';\neventBus.GET = 'GET';\neventBus.LIFE = 'LIFE';\n\nexport default eventBus;\n","import karas from 'karas';\nimport eventBus from './eventBus';\n\nclass Menu extends karas.Component {\n constructor(props) {\n super(props);\n }\n\n componentDidMount () {\n let sr = this.shadowRoot;\n let tank = this.ref.tank;\n let animation = this.animation = sr.animate([\n {},\n {\n translateY: '-50%',\n }\n ], {\n duration: 1200,\n fill: 'forwards',\n });\n let tankAnimation;\n // 上移结束显示选择tank\n animation.on('finish', () => {\n this.animation = null;\n eventBus.emit(eventBus.MENUING);\n eventBus.gameState = eventBus.MENUING;\n tank.updateStyle({\n visibility: 'inherit',\n });\n tankAnimation = tank.animate([\n {},\n {\n backgroundPositionX: -102,\n }\n ], {\n duration: 100,\n iterations: Infinity,\n easing: 'steps(1)',\n direction: 'alternate-reverse',\n });\n });\n // 开始游戏隐藏\n eventBus.on(eventBus.WILL_GAME, () => {\n this.updateStyle({\n visibility: 'hidden',\n });\n sr.clearAnimate();\n tankAnimation.pause();\n });\n }\n\n show () {\n this.updateStyle({\n visibility: 'visible',\n });\n this.componentDidMount();\n }\n\n fastShow () {\n if (this.animation) {\n this.animation.finish();\n this.animation = null;\n }\n }\n\n altPlayerNum () {\n let n = eventBus.playerNum = eventBus.playerNum === 2 ? 1 : 2;\n if (n === 2) {\n this.ref.tank.updateStyle({\n translateY: 32,\n });\n }\n else {\n this.ref.tank.updateStyle({\n translateY: 0,\n });\n }\n }\n\n render () {\n return <div style={{\n position: 'absolute',\n left: '50%',\n top: '50%',\n width: 396,\n height: 302,\n translateX: '-50%',\n translateY: 300,\n }}>\n <img src=\"menu.png\"\n style={{\n width: '100%',\n height: '100%',\n }} />\n <div ref=\"tank\"\n style={{\n position: 'absolute',\n left: 100,\n top: 216,\n width: 32,\n height: 32,\n background: 'url(tank.png) no-repeat -68px -272px',\n visibility: 'hidden',\n }} />\n </div>;\n }\n}\n\nexport default Menu;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass StageNum extends karas.Component {\n constructor(prpos) {\n super(prpos);\n this.state = {\n num: 1,\n };\n }\n\n componentDidMount() {\n eventBus.on([eventBus.BEFORE_GAME, eventBus.GAME_NEXT], () => {\n data.current = karas.util.clone(data[data.num % data.total]);\n if (eventBus.playerNum === 1) {\n data.current.player.splice(1);\n }\n this.show(data.num);\n });\n }\n\n show(num) {\n // 设置数字\n this.setState({\n num: num + 1,\n }, () => {\n // 上下遮盖屏幕动画\n this.ref.top.animate([\n {\n translateY: '-100%',\n },\n {\n translateY: 0,\n },\n ], {\n duration: 300,\n fill: 'forwards',\n });\n let a = this.ref.bottom.animate([\n {\n translateY: '100%',\n },\n {\n translateY: 0,\n },\n ], {\n duration: 300,\n fill: 'forwards',\n });\n // 遮盖完成显示局数\n a.on('finish', () => {\n this.ref.text.updateStyle({\n visibility: 'visible',\n }, () => {\n eventBus.gameState = eventBus.WILL_GAME;\n eventBus.emit(eventBus.WILL_GAME);\n // 等待1s\n setTimeout(() => {\n // 隐藏主tank菜单和局数,显示游戏主场景\n this.ref.text.updateStyle({\n visibility: 'hidden',\n });\n // 打开遮盖\n this.ref.top.animate([\n {\n translateY: 0,\n },\n {\n translateY: '-100%',\n },\n ], {\n duration: 300,\n fill: 'forwards',\n });\n let a = this.ref.bottom.animate([\n {\n translateY: 0,\n },\n {\n translateY: '100%',\n },\n ], {\n duration: 300,\n fill: 'forwards',\n });\n // 开始游戏\n a.on('finish', () => {\n eventBus.emit(eventBus.GAMEING);\n eventBus.gameState = eventBus.GAMEING;\n });\n }, 1000);\n });\n });\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n }}>\n <span ref=\"top\"\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '50%',\n background: '#ccc',\n translateY: '-100%',\n }}/>\n <span ref=\"bottom\"\n style={{\n position: 'absolute',\n left: 0,\n top: '50%',\n width: '100%',\n height: '50%',\n background: '#ccc',\n translateY: '100%',\n }}/>\n <span ref=\"text\"\n style={{\n position: 'absolute',\n left: '50%',\n top: '50%',\n translateX: '-50%',\n translateY: '-50%',\n visibility: 'hidden',\n fontSize: 48,\n fontWeight: 700,\n }}>Stage {this.state.num || 1}</span>\n </div>;\n }\n}\n\nexport default StageNum;\n","import karas from 'karas';\nimport eventBus from './eventBus';\n\nclass GameOver extends karas.Component {\n constructor(prpos) {\n super(prpos);\n this.state = {\n show: false,\n };\n }\n\n componentDidMount () {\n eventBus.on([eventBus.HIT_HOME, eventBus.PLAYER_NO_LIFE], () => {\n eventBus.gameState = eventBus.GAME_OVER;\n eventBus.emit(eventBus.GAME_OVER);\n\n this.setState({\n show: true,\n }, () => {\n let a = this.shadowRoot.animate([\n {},\n {\n translateY: '0%',\n },\n ], {\n duration: 2000,\n fill: 'forwards',\n });\n a.on('finish', () => {\n eventBus.gameState = eventBus.GAME_OVER_WAIT;\n });\n });\n });\n }\n\n render () {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n display: this.state.show ? 'block' : 'none',\n width: '100%',\n height: '100%',\n translateY: '100%',\n }}>\n <span ref=\"text\"\n style={{\n position: 'absolute',\n left: '50%',\n top: '40%',\n width: 62,\n height: 30,\n background: 'url(tank.png) no-repeat -138 -137',\n translateX: '-50%',\n translateY: '-50%',\n }} />\n </div>;\n }\n}\n\nexport default GameOver;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass Box extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n list: [],\n home: [],\n fail: false,\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n this.setState({\n show: true,\n list: data.current.box,\n home: data.current.home,\n fail: false,\n });\n });\n eventBus.on(eventBus.HIT_HOME, () => {\n this.state.home.forEach(item => item.push(true));\n this.setState({\n fail: true,\n });\n });\n }\n\n render() {\n let list = this.state.list;\n let home = this.state.home;\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: '#999',\n visibility: this.state.show ? 'visible' : 'hidden',\n }}>\n {\n list.length ? <span style={{\n position: 'absolute',\n left: list[0] * 16,\n top: list[1] * 16,\n width: (list[2] - list[0]) * 16,\n height: (list[3] - list[1]) * 16,\n background: '#111',\n }}/> : null\n }\n {\n home.map(item => {\n let p = this.state.fail ? '-680px -170px' : '-646px -170px';\n return <span style={{\n position: 'absolute',\n left: item[0] * 16,\n top: item[1] * 16,\n width: 32,\n height: 32,\n background: `url(tank.png) no-repeat ${p}`,\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Box;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass Brick extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n list: [],\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n this.setState({\n show: true,\n list: data.current.brick,\n });\n });\n eventBus.on(eventBus.HIT_BRICK, (id, x, y, data) => {\n let hash = {};\n data.forEach(item => {\n hash[item[0]] = hash[item[0]] || [];\n hash[item[0]].push(item[1]);\n });\n for(let list = this.state.list, i = 0, len = list.length; i < len; i++) {\n let item = list[i];\n if(!item[2] && !item[3] && hash.hasOwnProperty(item[0]) && hash[item[0]].indexOf(item[1]) > -1) {\n item[2] = 1;\n this.ref[item[0] + ',' + item[1]].updateStyle({\n display: 'none',\n });\n }\n }\n });\n eventBus.on(eventBus.GET, type => {\n if(type === 'wall') {\n let home = data.current.home;\n let len = home.length;\n let list = [];\n this.state.list.forEach(item => {\n let [x, y] = item;\n for(let i = 0; i < len; i++) {\n let [x1, y1] = home[i];\n let x2 = x1 + 1;\n let y2 = y1 + 1;\n if((Math.abs(x - x1) + Math.abs(y - y1)) <= 2\n || (Math.abs(x - x1) + Math.abs(y - y2)) <= 2\n || (Math.abs(x - x2) + Math.abs(y - y1)) <= 2\n || (Math.abs(x - x2) + Math.abs(y - y2)) <= 2) {\n item[3] = 1;\n let target = this.ref[x + ',' + y];\n target.updateStyle({\n display: 'block',\n backgroundPosition: '0 -204px',\n });\n list.push({\n item,\n target,\n });\n }\n }\n });\n if(list.length) {\n this.timeout = setTimeout(() => {\n let a;\n list.forEach(o => {\n let { target } = o;\n a = target.animate([\n {},\n {\n backgroundPosition: '-612px -170px',\n },\n ], {\n duration: 200,\n iterations: 16,\n easing: 'steps(1)',\n direction: 'alternate',\n });\n });\n a.on('finish', () => {\n list.forEach(o => {\n let { item, target } = o;\n item[2] = 0;\n item[3] = 0;\n target.clearAnimate();\n target.updateStyle({\n display: item[2] ? 'none' : 'block',\n backgroundPosition: '-612px -170px',\n });\n });\n });\n }, 10000);\n }\n }\n });\n eventBus.on([eventBus.GAME_OVER, eventBus.GAME_NEXT], () => {\n clearTimeout(this.timeout);\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n visibility: this.state.show ? 'visible' : 'hidden',\n }}>\n {\n this.state.list.map(item => {\n let [x, y] = item;\n let left = x * 16;\n let top = y * 16;\n return <span ref={x + ',' + y}\n style={{\n position: 'absolute',\n left,\n top,\n width: 16,\n height: 16,\n background: 'url(tank.png) no-repeat -612px -170px',\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Brick;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass Brick extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n list: [],\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n this.setState({\n show: true,\n list: data.current.iron,\n });\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n visibility: this.state.show ? 'visible' : 'hidden',\n }}>\n {\n this.state.list.map(item => {\n let [x, y] = item;\n let left = x * 16;\n let top = y * 16;\n return <span ref={x + ',' + y}\n style={{\n position: 'absolute',\n left,\n top,\n width: 16,\n height: 16,\n background: 'url(tank.png) no-repeat 0 -204px',\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Brick;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass Fade extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n enemy: [],\n player: [],\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n eventBus.activeEnemyNum = 0;\n this.setState({\n enemy: data.current.enemy,\n player: data.current.player,\n });\n });\n eventBus.on(eventBus.GAMEING, () => {\n this.show('player', 0);\n if(eventBus.playerNum === 2) {\n this.show('player', 1);\n }\n let count = 0;\n let interval = this.interval = setInterval(() => {\n if(eventBus.gameState !== eventBus.GAMEING) {\n clearInterval(interval);\n return;\n }\n // 限制数量\n if(eventBus.activeEnemyNum >= 4) {\n return;\n }\n eventBus.activeEnemyNum++;\n let id = count++;\n setTimeout(function() {\n eventBus.emit(eventBus.ADD_ENEMY, id);\n }, 1500);\n this.show('enemy', id % 3);\n if(count >= data.current.enemy.length) {\n clearInterval(interval);\n }\n }, 1000);\n });\n eventBus.on(eventBus.PLAY_REBONE, (i) => {\n this.show('player', i);\n });\n eventBus.on([eventBus.GAME_OVER, eventBus.GAME_NEXT], () => {\n eventBus.activeEnemyNum = 0;\n clearInterval(this.interval);\n });\n }\n\n show(name, i) {\n let node = this.ref[name + i];\n node.animate([\n {\n visibility: 'visible',\n backgroundPosition: '-204 0',\n },\n {\n visibility: 'visible',\n backgroundPosition: '0 0',\n },\n ], {\n duration: 300,\n iterations: 6,\n direction: 'alternate',\n easing: 'steps(6)',\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n opacity: 0.9,\n }}>\n {\n this.state.enemy.map((item, i) => {\n return <span ref={'enemy' + i}\n style={{\n position: 'absolute',\n left: item[0] * 16,\n top: item[1] * 16,\n width: 32,\n height: 32,\n background: 'url(tank.png) no-repeat -204 0',\n }}/>;\n })\n }\n {\n this.state.player.map((item, i) => {\n return <span ref={'player' + i}\n style={{\n position: 'absolute',\n left: item[0] * 16,\n top: item[1] * 16,\n width: 32,\n height: 32,\n background: 'url(tank.png) no-repeat -204 0',\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Fade;\n","function checkBox(tx1, ty1, direction, box) {\n let tx2 = tx1 + 32;\n let ty2 = ty1 + 32;\n let [x1, y1, x2, y2] = box;\n x1 *= 16;\n y1 *= 16;\n x2 *= 16;\n y2 *= 16;\n if(direction === 0) {\n if(y1 === ty1) {\n return true;\n }\n }\n else if(direction === 1) {\n if(x2 === tx2) {\n return true;\n }\n }\n else if(direction === 2) {\n if(y2 === ty2) {\n return true;\n }\n }\n else if(direction === 3) {\n if(x1 === tx1) {\n return true;\n }\n }\n}\n\nfunction checkMove(tx1, ty1, direction, list) {\n let tx2 = tx1 + 32;\n let ty2 = ty1 + 32;\n for(let i = 0, len = list.length; i < len; i++) {\n let [x1, y1, disappear] = list[i];\n if(disappear) {\n continue;\n }\n x1 *= 16;\n y1 *= 16;\n let x2 = x1 + 16;\n let y2 = y1 + 16;\n if(direction === 0) {\n if(x1 < tx2 && x2 > tx1 && ty1 - y2 === 0) {\n return true;\n }\n }\n else if(direction === 1) {\n if(y1 < ty2 && y2 > ty1 && tx2 - x1 === 0) {\n return true;\n }\n }\n else if(direction === 2) {\n if(x1 < tx2 && x2 > tx1 && ty2 - y1 === 0) {\n return true;\n }\n }\n else if(direction === 3) {\n if(y1 < ty2 && y2 > ty1 && tx1 - x2 === 0) {\n return true;\n }\n }\n }\n}\n\nfunction checkEnemy(tx1, ty1, direction, index, list) {\n let tx2 = tx1 + 32;\n let ty2 = ty1 + 32;\n for(let i = 0, len = list.length; i < len; i++) {\n // 自己\n if(i === index) {\n continue;\n }\n let item = list[i];\n // 死tank\n if(item[3] === 2) {\n continue;\n }\n let x1 = item[5];\n let y1 = item[6];\n let x2 = x1 + 32;\n let y2 = y1 + 32;\n if(direction === 0) {\n if(x1 < tx2 && x2 > tx1 && ty1 <= y2 && ty1 >= y1) {\n return true;\n }\n }\n else if(direction === 1) {\n if(y1 < ty2 && y2 > ty1 && tx2 >= x1 && tx2 <= x2) {\n return true;\n }\n }\n else if(direction === 2) {\n if(x1 < tx2 && x2 > tx1 && ty2 >= y1 && ty2 <= y2) {\n return true;\n }\n }\n else if(direction === 3) {\n if(y1 < ty2 && y2 > ty1 && tx1 <= x2 && tx1 >= x1) {\n return true;\n }\n }\n }\n}\n\nfunction checkUs(tx1, ty1, direction, index, list) {\n let tx2 = tx1 + 32;\n let ty2 = ty1 + 32;\n for(let i = 0, len = list.length; i < len; i++) {\n let item = list[i];\n // 自己\n if(index === i) {\n continue;\n }\n // 没命\n if(item[2] === 0) {\n continue;\n }\n let x1 = item[5];\n let y1 = item[6];\n let x2 = x1 + 32;\n let y2 = y1 + 32;\n if(direction === 0) {\n if(x1 < tx2 && x2 > tx1 && ty1 <= y2 && ty1 >= y1) {\n return true;\n }\n }\n else if(direction === 1) {\n if(y1 < ty2 && y2 > ty1 && tx2 >= x1 && tx2 <= x2) {\n return true;\n }\n }\n else if(direction === 2) {\n if(x1 < tx2 && x2 > tx1 && ty2 >= y1 && ty2 <= y2) {\n return true;\n }\n }\n else if(direction === 3) {\n if(y1 < ty2 && y2 > ty1 && tx1 <= x2 && tx1 >= x1) {\n return true;\n }\n }\n }\n}\n\nfunction checkHome(tx1, ty1, direction, list) {\n let tx2 = tx1 + 32;\n let ty2 = ty1 + 32;\n for(let i = 0, len = list.length; i < len; i++) {\n let item = list[i];\n let x1 = item[0] * 16;\n let y1 = item[1] * 16;\n let x2 = x1 + 32;\n let y2 = y1 + 32;\n if(direction === 0) {\n if(x1 < tx2 && x2 > tx1 && ty1 - y2 === 0) {\n return true;\n }\n }\n else if(direction === 1) {\n if(y1 < ty2 && y2 > ty1 && tx2 - x1 === 0) {\n return true;\n }\n }\n else if(direction === 2) {\n if(x1 < tx2 && x2 > tx1 && ty2 - y1 === 0) {\n return true;\n }\n }\n else if(direction === 3) {\n if(y1 < ty2 && y2 > ty1 && tx1 - x2 === 0) {\n return true;\n }\n }\n }\n}\n\nfunction checkItem(tx1, ty1, direction, list = []) {\n let tx2 = tx1 + 32;\n let ty2 = ty1 + 32;\n for(let i = 0, len = list.length; i < len; i++) {\n let item = list[i];\n let x1 = item[1];\n let y1 = item[2];\n let x2 = x1 + 32;\n let y2 = y1 + 32;\n if(direction === 0) {\n if(x1 < tx2 && x2 > tx1 && ty1 <= y2 && ty1 >= y1) {\n return item;\n }\n }\n else if(direction === 1) {\n if(y1 < ty2 && y2 > ty1 && tx2 >= x1 && tx2 <= x2) {\n return item;\n }\n }\n else if(direction === 2) {\n if(x1 < tx2 && x2 > tx1 && ty2 >= y1 && ty2 <= y2) {\n return item;\n }\n }\n else if(direction === 3) {\n if(y1 < ty2 && y2 > ty1 && tx1 <= x2 && tx1 >= x1) {\n return item;\n }\n }\n }\n}\n\nexport default {\n checkBox,\n checkMove,\n checkEnemy,\n checkUs,\n checkHome,\n checkItem,\n};\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\nimport util from './util';\n\nconst MOVE_PX = 2;\nconst PROTECT_COUNT = 32;\n\nclass Player extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n list: [], // 0,1方块位置x,y;2命数,3状态012无保定,4type,5,6坐标位置x,y\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n // let list = data.current.player;\n // this.setState({\n // list,\n // });\n });\n eventBus.on(eventBus.GAMEING, () => {\n let list = data.current.player;\n this.setState({\n list,\n show: true,\n }, () => {\n this.state.list.forEach((item, i) => {\n let player = this.ref['player' + i];\n let shield = this.ref['shield' + i];\n player.clearAnimate();\n item[3] = 1;\n let fadeIn = player.animate([\n {\n opacity: 0.85,\n },\n {\n opacity: 0.7,\n },\n ], {\n duration: 100,\n iterations: PROTECT_COUNT,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n fadeIn.on('finish', () => {\n player.removeAnimate(fadeIn);\n item[3] = 0;\n });\n shield.clearAnimate();\n shield.animate([\n {\n backgroundPosition: '-442 -238',\n },\n {\n backgroundPosition: '-510 -238',\n },\n ], {\n duration: 100,\n iterations: PROTECT_COUNT,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n });\n });\n });\n eventBus.on(eventBus.HIT_US, (id, x, y, us) => {\n us.forEach(item => {\n let i;\n if(item === this.state.list[0]) {\n i = 0;\n }\n else if(item === this.state.list[1]) {\n i = 1;\n }\n if(i !== undefined) {\n let item = this.state.list[i];\n let player = this.ref['player' + i];\n let tank = this.ref['tank' + i];\n // 保护状态\n if(item[3] === 1) {\n return;\n }\n eventBus.emit(eventBus.BOOM, item[5] + 16, item[6] + 16);\n let life = item[2]--;\n if(life <= 0) {\n player.updateStyle({\n visibility: 'hidden',\n });\n return;\n }\n this['playerCurrentD' + i] = null;\n tank.updateStyle({\n backgroundPositionX: 0,\n });\n eventBus.emit(eventBus.PLAY_REBONE, i);\n let shield = this.ref['shield' + i];\n item[3] = 1;\n let tx = item[5] = item[0] * 16;\n let ty = item[6] = item[1] * 16;\n player.updateStyle({\n translateX: tx,\n translateY: ty,\n });\n player.clearAnimate();\n let fadeIn = player.animate([\n {\n opacity: 0.85,\n },\n {\n opacity: 0.7,\n },\n ], {\n duration: 100,\n iterations: 32,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n fadeIn.on('finish', () => {\n player.removeAnimate(fadeIn);\n item[3] = 0;\n });\n shield.clearAnimate();\n shield.animate([\n {\n backgroundPosition: '-442 -238',\n },\n {\n backgroundPosition: '-510 -238',\n },\n ], {\n duration: 100,\n iterations: 32,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n }\n });\n let n = 0;\n data.current.player.forEach(item => {\n n += item[2];\n });\n if(n < 0) {\n eventBus.gameState = eventBus.GAME_OVER;\n eventBus.emit(eventBus.PLAYER_NO_LIFE);\n }\n });\n eventBus.on(eventBus.HIT_US_BY_US, (id, x, y, us) => {\n us.forEach(item => {\n let i;\n if(item === this.state.list[0]) {\n i = 0;\n }\n else if(item === this.state.list[1]) {\n i = 1;\n }\n if(i !== undefined) {\n let item = this.state.list[i];\n let player = this.ref['player' + i];\n if(item[3] === 1) {\n return;\n }\n // 2以上为定住,倒计时数字\n if(item[3] > 1) {\n item[3] = 200;\n return;\n }\n item[3] = 200;\n let cb = () => {\n // 销毁结束\n if(player.isDestroyed) {\n karas.animate.frame.offFrame(cb);\n return;\n }\n item[3]--;\n let n = (item[3] - 2) % 16;\n if(n < 8) {\n player.updateStyle({\n visibility: 'visible',\n });\n }\n else {\n player.updateStyle({\n visibility: 'hidden',\n });\n }\n if(item[3] === 2) {\n item[3] = 0;\n karas.animate.frame.offFrame(cb);\n }\n };\n karas.animate.frame.onFrame(cb);\n }\n });\n });\n }\n\n move(index, direction) {\n let player = this.ref['player' + index];\n let tank = this.ref['tank' + index];\n if(!tank) {\n return;\n }\n // 播放坦克移动本身帧动画\n let currentD = this['playerCurrentD' + index];\n if(currentD !== direction) {\n this['playerCurrentD' + index] = direction;\n tank.clearAnimate();\n let frame = [];\n if(direction === 0) {\n frame = [\n {\n backgroundPositionX: 0,\n },\n {\n backgroundPositionX: -34,\n }\n ];\n }\n else if(direction === 1) {\n frame = [\n {\n backgroundPositionX: -68,\n },\n {\n backgroundPositionX: -102,\n }\n ];\n }\n else if(direction === 2) {\n frame = [\n {\n backgroundPositionX: -136,\n },\n {\n backgroundPositionX: -170,\n }\n ];\n }\n else if(direction === 3) {\n frame = [\n {\n backgroundPositionX: -204,\n },\n {\n backgroundPositionX: -238,\n }\n ];\n }\n tank.animate(frame, {\n duration: 100,\n iterations: Infinity,\n easing: 'steps(1)',\n direction: 'alternate',\n });\n }\n else {\n return;\n }\n eventBus.emit(eventBus.MOVE);\n this['playerLastD' + index] = direction;\n let cb = this['ma' + index];\n karas.animate.frame.offFrame(cb);\n // 检查是否被挡住\n let item = this.state.list[index];\n // 坦克坐标移动,每2帧移动1次2px,便于控制\n let frameJump = 0;\n cb = this['ma' + index] = () => {\n if(frameJump++ < 1) {\n return;\n }\n frameJump = 0;\n if(util.checkBox(item[5], item[6], direction, data.current.box)) {\n return;\n }\n if(util.checkMove(item[5], item[6], direction, data.current.brick)) {\n return;\n }\n if(util.checkMove(item[5], item[6], direction, data.current.iron)) {\n return;\n }\n if(util.checkEnemy(item[5], item[6], direction, -1, data.current.enemy)) {\n return;\n }\n if(util.checkUs(item[5], item[6], direction, index, data.current.player)) {\n return;\n }\n if(util.checkHome(item[5], item[6], direction, data.current.home)) {\n return;\n }\n let items = util.checkItem(item[5], item[6], direction, data.current.item);\n if(items) {\n switch(items[0]) {\n case 'life':\n this.state.list[index][2]++;\n eventBus.emit(eventBus.LIFE, items[0]);\n break;\n case 'pause':\n eventBus.emit(eventBus.GET, items[0]);\n break;\n case 'protect':\n this.state.list[index][3] = 1;\n let player = this.ref['player' + index];\n let shield = this.ref['shield' + index];\n player.clearAnimate();\n let fadeIn = player.animate([\n {\n opacity: 0.85,\n },\n {\n opacity: 0.7,\n },\n ], {\n duration: 100,\n iterations: PROTECT_COUNT * 4,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n fadeIn.on('finish', () => {\n player.removeAnimate(fadeIn);\n item[3] = 0;\n });\n shield.clearAnimate();\n shield.animate([\n {\n backgroundPosition: '-442 -238',\n },\n {\n backgroundPosition: '-510 -238',\n },\n ], {\n duration: 100,\n iterations: PROTECT_COUNT * 4,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n eventBus.emit(eventBus.GET, items[0]);\n break;\n case 'boom':\n eventBus.emit(eventBus.GET, items[0]);\n break;\n case 'wall':\n eventBus.emit(eventBus.GET, items[0]);\n break;\n }\n }\n if(direction === 0) {\n item[6] -= MOVE_PX;\n player.updateStyle({\n translateY: item[6],\n });\n }\n else if(direction === 1) {\n item[5] += MOVE_PX;\n player.updateStyle({\n translateX: item[5],\n });\n }\n else if(direction === 2) {\n item[6] += MOVE_PX;\n player.updateStyle({\n translateY: item[6],\n });\n }\n else if(direction === 3) {\n item[5] -= MOVE_PX;\n player.updateStyle({\n translateX: item[5],\n });\n }\n };\n karas.animate.frame.onFrame(cb);\n eventBus.on([eventBus.GAME_OVER, eventBus.GAME_NEXT], () => {\n karas.animate.frame.offFrame(cb);\n });\n }\n\n stop(index) {\n eventBus.emit(eventBus.STOP);\n let player = this.ref['player' + index];\n let tank = this.ref['tank' + index];\n let item = this.state.list[index];\n tank.animationList.length && tank.animationList[0].pause();\n let cb = this['ma' + index];\n karas.animate.frame.offFrame(cb);\n let currentD = this['playerCurrentD' + index];\n // 停止朝向,同时为了便于控制,设置tank停止位置为4的倍数,容易转向\n let x = item[5];\n let y = item[6];\n if(currentD === 0) {\n tank.updateStyle({\n backgroundPositionX: 0,\n });\n if(y % 4 !== 0) {\n item[6] -= MOVE_PX;\n player.updateStyle({\n translateY: item[6],\n });\n }\n }\n else if(currentD === 1) {\n tank.updateStyle({\n backgroundPositionX: -68,\n });\n if(x % 4 !== 0) {\n item[5] += MOVE_PX;\n player.updateStyle({\n translateX: item[5],\n });\n }\n }\n else if(currentD === 2) {\n tank.updateStyle({\n backgroundPositionX: -136,\n });\n if(y % 4 !== 0) {\n item[6] += MOVE_PX;\n player.updateStyle({\n translateY: item[6],\n });\n }\n }\n else if(currentD === 3) {\n tank.updateStyle({\n backgroundPositionX: -204,\n });\n if(x % 4 !== 0) {\n item[5] -= MOVE_PX;\n player.updateStyle({\n translateX: item[5],\n });\n }\n }\n this['playerCurrentD' + index] = null;\n }\n\n getPosition(index) {\n return this.state.list[index].slice(5, 7);\n }\n\n getDirection(index) {\n return this['playerLastD' + index] || 0;\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n visibility: this.state.show ? 'visible' : 'hidden',\n }}>\n {\n this.state.list.map((item, i) => {\n let py = -272 - i * 34;\n let tx = item[5] = item[0] * 16;\n let ty = item[6] = item[1] * 16;\n return <div ref={'player' + i}\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: 32,\n height: 32,\n translateX: tx,\n translateY: ty,\n }}>\n <span ref={'tank' + i}\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: `url(tank.png) no-repeat 0 ${py}`,\n }}/>\n <span ref={'shield' + i}\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: `url(tank.png) no-repeat -476 -238`,\n }}/>\n </div>;\n })\n }\n </div>;\n }\n}\n\nexport default Player;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\nimport util from './util';\n\nconst TURN_COUNT = {\n 0: 32,\n 1: 16,\n 2: 36,\n 3: 48,\n 4: 48,\n 5: 48,\n};\nconst MOVE_PX = {\n 0: 2,\n 1: 4,\n 2: 2,\n 3: 1,\n 4: 1,\n 5: 1,\n};\nconst ENEMY_FIRE_COUNT = 50;\n\nfunction getBgP(type, direction, red, life) {\n let p = '-136 -68';\n if(red) {\n switch(type) {\n case 0:\n if(direction === 0) {\n p = '0 -102';\n }\n else if(direction === 1) {\n p = '-68 -102';\n }\n else if(direction === 2) {\n p = '-136 -102';\n }\n else if(direction === 3) {\n p = '-204 -102';\n }\n break;\n case 1:\n if(direction === 0) {\n p = '-272 -102';\n }\n else if(direction === 1) {\n p = '-340 -102';\n }\n else if(direction === 2) {\n p = '-408 -102';\n }\n else if(direction === 3) {\n p = '-476 -102';\n }\n break;\n case 2:\n if(direction === 0) {\n p = '-544 -102';\n }\n else if(direction === 1) {\n p = '-612 -102';\n }\n else if(direction === 2) {\n p = '-680 -102';\n }\n else if(direction === 3) {\n p = '-748 -102';\n }\n break;\n case 3:\n case 4:\n case 5:\n if(direction === 0) {\n p = '-816 -102';\n }\n else if(direction === 1) {\n p = '-884 -102';\n }\n else if(direction === 2) {\n p = '-952 -102';\n }\n else if(direction === 3) {\n p = '-1020 -102';\n }\n break;\n }\n }\n else {\n switch(type) {\n case 0:\n if(direction === 0) {\n p = '0 -68';\n }\n else if(direction === 1) {\n p = '-68 -68';\n }\n else if(direction === 2) {\n p = '-136 -68';\n }\n else if(direction === 3) {\n p = '-204 -68';\n }\n break;\n case 1:\n if(direction === 0) {\n p = '-272 -68';\n }\n else if(direction === 1) {\n p = '-340 -68';\n }\n else if(direction === 2) {\n p = '-408 -68';\n }\n else if(direction === 3) {\n p = '-476 -68';\n }\n break;\n case 2:\n if(direction === 0) {\n p = '-544 -68';\n }\n else if(direction === 1) {\n p = '-612 -68';\n }\n else if(direction === 2) {\n p = '-680 -68';\n }\n else if(direction === 3) {\n p = '-748 -68';\n }\n break;\n case 3:\n if(direction === 0) {\n p = '-816 -68';\n }\n else if(direction === 1) {\n p = '-884 -68';\n }\n else if(direction === 2) {\n p = '-952 -68';\n }\n else if(direction === 3) {\n p = '-1020 -68';\n }\n break;\n case 4:\n if(life === 0) {\n return getBgP(3, direction, 0, 0);\n }\n if(direction === 0) {\n p = '-816 0';\n }\n else if(direction === 1) {\n p = '-884 0';\n }\n else if(direction === 2) {\n p = '-952 0';\n }\n else if(direction === 3) {\n p = '-1020 0';\n }\n break;\n case 5:\n if(life === 0) {\n return getBgP(3, direction, 0, 0);\n }\n if(life === 1) {\n return getBgP(4, direction, 0, 1);\n }\n if(direction === 0) {\n p = '-816 -34';\n }\n else if(direction === 1) {\n p = '-884 -34';\n }\n else if(direction === 2) {\n p = '-952 -34';\n }\n else if(direction === 3) {\n p = '-1020 -34';\n }\n break;\n }\n }\n return p;\n}\n\nfunction getFrame(type, direction, life) {\n let p = getBgP(type, direction, 0, life);\n let p2 = p.split(' ').map(i => parseInt(i));\n p2[0] -= 34;\n return [\n {\n backgroundPosition: p,\n },\n {\n backgroundPosition: p2.join(' '),\n },\n ];\n}\n\nclass Enemy extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n list: [], // 0,1方块位置x,y;2类型;3状态012新老死;4方向;5,6坐标位置x,y;7停止计时;8射击计时;9红坦克;10血\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n this.setState({\n list: [],\n });\n });\n eventBus.on(eventBus.GAMEING, () => {\n this.setState({\n show: true,\n });\n // 坦克坐标移动\n let frameJump = 0;\n let cb = this.cb = () => {\n if(frameJump++ < 1) {\n return;\n }\n frameJump = 0;\n this.state.list.forEach((item, i) => {\n // 暂停道具\n if(data.current.enemyPause) {\n return;\n }\n let [x, y, type, state, direction, px, py] = item;\n let red = item[9];\n let life = item[10];\n // 防止死tank\n if(state < 2) {\n let tank = this.ref['tank' + i];\n let movePx = MOVE_PX[type] || 1;\n // 积累一定随机时间后开火\n let fire = --item[8];\n if(fire <= 0) {\n item[8] = 20 + Math.floor(Math.random() * ENEMY_FIRE_COUNT);\n eventBus.emit(eventBus.ENEMY_FIRE, i, [px, py], direction);\n }\n // 检测移动,积累count到一定后没有一定随机更换方向\n if(util.checkBox(px, py, direction, data.current.box)\n || util.checkMove(px, py, direction, data.current.brick)\n || util.checkMove(px, py, direction, data.current.iron)\n // || util.checkEnemy(px, py, direction, i, data.current.enemy)\n || util.checkUs(px, py, direction, -1, data.current.player)\n || util.checkHome(px, py, direction, data.current.home)) {\n // tank.clearAnimate();\n let count = item[7]++;\n if(count >= (TURN_COUNT[type] || 1)) {\n item[7] = 0;\n while(true) {\n let list = [0, 1, 2, 3];\n let i = Math.floor(Math.random() * list.length);\n let nd = item[4] = list[i];\n if(nd !== direction) {\n direction = item[4] = nd;\n break;\n }\n }\n let p = getBgP(type, direction, red, life);\n tank.updateStyle({\n backgroundPosition: p,\n });\n tank.clearAnimate();\n if(red) {\n let p2 = getBgP(type, direction, 1, life);\n tank.children[0].updateStyle({\n backgroundPosition: p2,\n });\n }\n let frame = getFrame(type, direction, life);\n tank.animate(frame, {\n duration: 100,\n iterations: Infinity,\n easing: 'steps(1)',\n direction: 'alternate',\n });\n }\n return;\n }\n if(direction === 0) {\n item[6] -= movePx;\n tank.updateStyle({\n translateY: item[6],\n });\n }\n else if(direction === 1) {\n item[5] += movePx;\n tank.updateStyle({\n translateX: item[5],\n });\n }\n else if(direction === 2) {\n item[6] += movePx;\n tank.updateStyle({\n translateY: item[6],\n });\n }\n else if(direction === 3) {\n item[5] -= movePx;\n tank.updateStyle({\n translateX: item[5],\n });\n }\n }\n });\n };\n karas.animate.frame.onFrame(cb);\n });\n eventBus.on(eventBus.ADD_ENEMY, (id) => {\n let list = this.state.list;\n let item = data.current.enemy[id];\n list.push(item);\n this.setState({\n list,\n }, () => {\n eventBus.emit(eventBus.ADDED_ENEMY);\n let tank = this.ref['tank' + id];\n // 红闪\n if(item[9]) {\n tank.children[0].animate([\n {},\n {\n visibility: 'visible',\n },\n ], {\n duration: 80,\n iterations: Infinity,\n direction: 'alternate',\n });\n }\n // 移动\n let frame = getFrame(item[2], item[4], item[10]);\n tank.animate(frame, {\n duration: 100,\n iterations: Infinity,\n easing: 'steps(1)',\n direction: 'alternate',\n });\n });\n });\n eventBus.on(eventBus.HIT_ENEMY, (id, x, y, d) => {\n for(let list = this.state.list, i = 0, len = list.length; i < len; i++) {\n let item = list[i];\n for(let j = 0, len2 = d.length; j < len2; j++) {\n if(item === d[j]) {\n let tank = this.ref['tank' + i];\n // 红先消失\n if(item[9]) {\n item[9] = 0;\n tank.children[0].clearAnimate();\n tank.children[0].updateStyle({\n display: 'none',\n });\n }\n // 厚tank减皮\n else if(item[10]--) {\n tank.clearAnimate();\n let frame = getFrame(item[2], item[4], item[10]);\n tank.animate(frame, {\n duration: 100,\n iterations: Infinity,\n easing: 'steps(1)',\n direction: 'alternate',\n });\n }\n // 其它挂\n else {\n item[3] = 2;\n this.setState({\n list,\n });\n eventBus.emit(eventBus.BOOM, item[5] + 16, item[6] + 16);\n let n = 0;\n data.current.enemy.forEach(item => {\n if(item[3] !== 2) {\n n++;\n }\n });\n if(!n) {\n setTimeout(() => {\n data.num++;\n data.num %= data.total;\n eventBus.emit(eventBus.GAME_NEXT);\n }, 2000);\n }\n }\n }\n }\n }\n });\n eventBus.on(eventBus.GET, type => {\n if(type === 'boom') {\n let list = this.state.list;\n list.forEach((item, i) => {\n let state = item[3];\n // 防止死tank\n if(state < 2) {\n item[9] = 0;\n item[10] = 0;\n item[3] = 2;\n let tank = this.ref['tank' + i];\n tank.clearAnimate();\n this.setState({\n list,\n });\n eventBus.emit(eventBus.BOOM, item[5] + 16, item[6] + 16);\n }\n });\n let n = 0;\n data.current.enemy.forEach(item => {\n if(item[3] !== 2) {\n n++;\n }\n });\n if(!n) {\n setTimeout(() => {\n data.num++;\n data.num %= data.total;\n eventBus.emit(eventBus.GAME_NEXT);\n }, 2000);\n }\n }\n })\n eventBus.on([eventBus.BEFORE_MENU, eventBus.WILL_GAME], () => {\n karas.animate.frame.offFrame(this.cb);\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n visibility: this.state.show ? 'visible' : 'hidden',\n }}>\n {\n this.state.list.map((item, i) => {\n let [tx, ty, type, state, direction, px, py] = item;\n // 死tank\n if(state === 2) {\n return null;\n }\n // 新出生的tank随机选个可用方向右下左\n if(direction === undefined) {\n let list = [1, 2, 3];\n let i = Math.floor(Math.random() * list.length);\n direction = list[i];\n }\n // 新出生的tank\n if(!state) {\n item[3] = 1; // 变老tank\n item[4] = direction;\n item[5] = px = tx * 16;\n item[6] = py = ty * 16;\n item[7] = 0; // 计时初始化\n item[8] = Math.floor(Math.random() * ENEMY_FIRE_COUNT);\n item[9] = i && i % 5 === 0 ? 1 : 0; // 每5出红\n item[10] = item[2] > 3 ? item[2] - 3 : 0; // 3厚tank,4,5加厚tank\n }\n let life = item[10];\n let red = item[9];\n let p = getBgP(type, direction, red, life);\n if(red) {\n let p2 = getBgP(type, direction, 1, life);\n return <div ref={'tank' + i}\n key={i}\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: 32,\n height: 32,\n translateX: px,\n translateY: py,\n background: `url(tank.png) no-repeat ${p}`,\n }}>\n <span style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n background: `url(tank.png) no-repeat ${p2}`,\n visibility: 'hidden',\n }}/>\n </div>;\n }\n return <div ref={'tank' + i}\n key={i}\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: 32,\n height: 32,\n translateX: px,\n translateY: py,\n background: `url(tank.png) no-repeat ${p}`,\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Enemy;\n","import karas from 'karas';\nimport eventBus from './eventBus';\nimport data from './data';\n\nfunction checkBox(position, direction, dx, dy, box) {\n let [x, y] = position;\n x += dx;\n y += dy;\n let [x1, y1, x2, y2] = box;\n x1 *= 16;\n y1 *= 16;\n x2 *= 16;\n y2 *= 16;\n if(direction === 0) {\n if(y - 4 <= y1) {\n return true;\n }\n }\n else if(direction === 1) {\n if(x + 32 + 4 >= x2) {\n return true;\n }\n }\n else if(direction === 2) {\n if(y + 32 + 4 >= y2) {\n return true;\n }\n }\n else if(direction === 3) {\n if(x - 4 <= x1) {\n return true;\n }\n }\n}\n\nfunction checkHit(position, direction, dx, dy, list, double) {\n let [x, y] = position;\n x += dx;\n y += dy;\n let res = [];\n for(let i = 0, len = list.length; i < len; i++) {\n let [x0, y0, disappear, change] = list[i];\n if(disappear && !change) {\n continue;\n }\n let x1 = x0 * 16;\n let y1 = y0 * 16;\n let x2 = x1 + 16 * (double ? 2 : 1);\n let y2 = y1 + 16 * (double ? 2 : 1);\n if(direction === 0) {\n if(y - 4 <= y2 && y + 4 >= y1 && x + 20 >= x1 && x + 12 <= x2) {\n res.push([x0, y0]);\n }\n }\n else if(direction === 1) {\n if(x + 36 >= x1 && x + 28 <= x2 && y + 20 >= y1 && y + 12 <= y2) {\n res.push([x0, y0]);\n }\n }\n else if(direction === 2) {\n if(y + 36 >= y1 && y + 28 <= y2 && x + 20 >= x1 && x + 12 <= x2) {\n res.push([x0, y0]);\n }\n }\n else if(direction === 3) {\n if(x - 4 <= x2 && x + 4 >= x1 && y + 20 >= y1 && y + 12 <= y2) {\n res.push([x0, y0]);\n }\n }\n }\n if(res.length) {\n return res;\n }\n}\n\nfunction checkHitEnemy(position, direction, dx, dy, list) {\n let [x, y] = position;\n x += dx;\n y += dy;\n let res = [];\n for(let i = 0, len = list.length; i < len; i++) {\n let item = list[i];\n // 只检查老tank,防止死tank和新tank\n if(item[3] !== 1) {\n continue;\n }\n let x1 = item[5];\n let y1 = item[6];\n let x2 = x1 + 32;\n let y2 = y1 + 32;\n if(direction === 0) {\n if(y - 4 <= y2 && y + 4 >= y1 && x + 20 >= x1 && x + 12 <= x2) {\n res.push(item);\n }\n }\n else if(direction === 1) {\n if(x + 36 >= x1 && x + 28 <= x2 && y + 20 >= y1 && y + 12 <= y2) {\n res.push(item);\n }\n }\n else if(direction === 2) {\n if(y + 36 >= y1 && y + 28 <= y2 && x + 20 >= x1 && x + 12 <= x2) {\n res.push(item);\n }\n }\n else if(direction === 3) {\n if(x - 4 <= x2 && x + 4 >= x1 && y + 20 >= y1 && y + 12 <= y2) {\n res.push(item);\n }\n }\n }\n if(res.length) {\n return res;\n }\n}\n\nfunction checkHitUs(position, direction, dx, dy, index, list) {\n let [x, y] = position;\n x += dx;\n y += dy;\n let res = [];\n for(let i = 0, len = list.length; i < len; i++) {\n // 自己\n if(index === i) {\n continue;\n }\n let item = list[i];\n // 防止自己没命了\n if(item[2] < 0) {\n continue;\n }\n let x1 = item[5];\n let y1 = item[6];\n let x2 = x1 + 32;\n let y2 = y1 + 32;\n if(direction === 0) {\n if(y - 4 <= y2 && y + 4 >= y1 && x + 20 >= x1 && x + 12 <= x2) {\n res.push(item);\n }\n }\n else if(direction === 1) {\n if(x + 36 >= x1 && x + 28 <= x2 && y + 20 >= y1 && y + 12 <= y2) {\n res.push(item);\n }\n }\n else if(direction === 2) {\n if(y + 36 >= y1 && y + 28 <= y2 && x + 20 >= x1 && x + 12 <= x2) {\n res.push(item);\n }\n }\n else if(direction === 3) {\n if(x - 4 <= x2 && x + 4 >= x1 && y + 20 >= y1 && y + 12 <= y2) {\n res.push(item);\n }\n }\n }\n if(res.length) {\n return res;\n }\n}\n\nfunction emitHit(node, id, direction, dx, dy, type, data) {\n let { left, top } = node.getComputedStyle();\n let x = left + dx;\n let y = top + dy;\n if(direction === 0) {\n x += 4;\n }\n else if(direction === 1) {\n x += 8;\n y += 4;\n }\n else if(direction === 2) {\n x += 4;\n y += 8;\n }\n else if(direction === 3) {\n y += 4;\n }\n eventBus.emit(type, id, x, y, data);\n}\n\nfunction removeBullet(target, id) {\n for(let i = 0, len = target.length; i < len; i++) {\n if(target[i].id === id) {\n target.splice(i, 1);\n return;\n }\n }\n}\n\nlet uuid = 0;\nlet limit = {};\nconst MOVE_PX = 4;\n\nclass Bullet extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n hash: {},\n };\n }\n\n componentDidMount() {\n eventBus.on(eventBus.ENEMY_FIRE, (id, position, direction) => {\n let hash = this.state.hash;\n id += ',' + uuid++;\n let d = {\n id,\n position,\n direction,\n x: 0,\n y: 0,\n enemy: true,\n };\n hash[id] = d;\n this.setState({\n hash,\n }, () => {\n // 子弹每帧移动\n let frame = () => {\n let node = this.ref[id];\n if(direction === 0) {\n d.y -= MOVE_PX;\n node.updateStyle({\n translateY: d.y,\n });\n }\n else if(direction === 1) {\n d.x += MOVE_PX;\n node.updateStyle({\n translateX: d.x,\n });\n }\n else if(direction === 2) {\n d.y += MOVE_PX;\n node.updateStyle({\n translateY: d.y,\n });\n }\n else if(direction === 3) {\n d.x -= MOVE_PX;\n node.updateStyle({\n translateX: d.x,\n });\n }\n // 校验碰撞\n let box = checkBox(position, direction, d.x, d.y, data.current.box);\n if(box) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_BOX);\n }\n let brick = checkHit(position, direction, d.x, d.y, data.current.brick);\n if(brick) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_BRICK, brick);\n }\n let iron = checkHit(position, direction, d.x, d.y, data.current.iron);\n if(iron) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_IRON, iron);\n }\n let us = checkHitUs(position, direction, d.x, d.y, -1, data.current.player);\n if(us) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_US, us);\n }\n let home = checkHit(position, direction, d.x, d.y, data.current.home, true);\n if(home) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_HOME, home);\n }\n // 子弹消失\n if(box || brick || iron || us || home) {\n karas.animate.frame.offFrame(frame);\n delete hash[id];\n this.setState({\n hash,\n });\n }\n };\n karas.animate.frame.onFrame(frame);\n });\n });\n }\n\n move(index, position, direction) {\n // 防止子弹过多过于连续先检查index的player限制\n let target = limit[index] = limit[index] || [];\n let length = target.length;\n let now = Date.now();\n if(length) {\n let last = target[length - 1];\n // 300ms限制\n if(now - last.time < 300) {\n return;\n }\n // 2发限制\n if(length >= 2) {\n return;\n }\n }\n eventBus.emit(eventBus.SHOOT);\n // 每个子弹相对于tank当时位置+方向生成唯一id\n let id = uuid++;\n target.push({\n id,\n time: now,\n });\n let hash = this.state.hash;\n let d = {\n index,\n position,\n direction,\n x: 0,\n y: 0,\n };\n hash[id] = d;\n this.setState({\n hash,\n }, () => {\n // 子弹每帧移动\n let frame = () => {\n let node = this.ref[id];\n if(direction === 0) {\n d.y -= MOVE_PX;\n node.updateStyle({\n translateY: d.y,\n });\n }\n else if(direction === 1) {\n d.x += MOVE_PX;\n node.updateStyle({\n translateX: d.x,\n });\n }\n else if(direction === 2) {\n d.y += MOVE_PX;\n node.updateStyle({\n translateY: d.y,\n });\n }\n else if(direction === 3) {\n d.x -= MOVE_PX;\n node.updateStyle({\n translateX: d.x,\n });\n }\n // 校验碰撞\n let box = checkBox(position, direction, d.x, d.y, data.current.box);\n if(box) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_BOX);\n }\n let brick = checkHit(position, direction, d.x, d.y, data.current.brick);\n if(brick) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_BRICK, brick);\n }\n let iron = checkHit(position, direction, d.x, d.y, data.current.iron);\n if(iron) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_IRON, brick);\n }\n let enemy = checkHitEnemy(position, direction, d.x, d.y, data.current.enemy);\n if(enemy) {\n let n = 0;\n // 红和厚不减\n enemy.forEach(item => {\n if(item[9]) {\n eventBus.emit(eventBus.OCCUR);\n }\n if(!item[10] && !item[9]) {\n n++;\n }\n });\n eventBus.activeEnemyNum -= n;\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_ENEMY, enemy);\n }\n let us = checkHitUs(position, direction, d.x, d.y, index, data.current.player);\n if(us) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_US_BY_US, us);\n }\n let home = checkHit(position, direction, d.x, d.y, data.current.home, true);\n if(home) {\n emitHit(node, id, direction, d.x, d.y, eventBus.HIT_HOME, home);\n }\n // 子弹消失\n if(box || brick || iron || enemy || us || home) {\n karas.animate.frame.offFrame(frame);\n removeBullet(target, id);\n delete hash[id];\n this.setState({\n hash,\n });\n }\n }\n karas.animate.frame.onFrame(frame);\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n }}>\n {\n Object.keys(this.state.hash).map(id => {\n let data = this.state.hash[id];\n let { position, direction, x, y } = data;\n let left, top, background;\n if(direction === 0) {\n left = position[0] + 12;\n top = position[1] - 4;\n background = 'url(tank.png) no-repeat 0 -170px';\n }\n else if(direction === 1) {\n left = position[0] + 28;\n top = position[1] + 12;\n background = 'url(tank.png) no-repeat -10px -179px';\n }\n else if(direction === 2) {\n left = position[0] + 12;\n top = position[1] + 28;\n background = 'url(tank.png) no-repeat -10px -170px';\n }\n else if(direction === 3) {\n left = position[0] - 4;\n top = position[1] + 12;\n background = 'url(tank.png) no-repeat 0 -179px';\n }\n return <span ref={id}\n key={id}\n style={{\n position: 'absolute',\n left,\n top,\n width: 8,\n height: 8,\n background,\n translateX: x,\n translateY: y,\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Bullet;\n","import karas from 'karas';\nimport eventBus from './eventBus';\n\nclass Hit extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n hash: {},\n };\n }\n\n componentDidMount() {\n eventBus.on([eventBus.HIT_BOX, eventBus.HIT_BRICK, eventBus.HIT_IRON, eventBus.HIT_ENEMY], (id, x, y) => {\n let hash = this.state.hash;\n hash[id] = {\n x,\n y,\n };\n this.setState({\n hash,\n }, () => {\n let node = this.ref[id];\n let a = node.animate([\n {\n visibility: 'visible',\n },\n {\n visibility: 'visible',\n backgroundPosition: '-748px -136px',\n },\n ], {\n duration: 100,\n iterations: 2,\n direction: 'alternate',\n easing: 'steps(2)',\n });\n a.on('finish', () => {\n delete hash[id];\n this.setState({\n hash,\n });\n });\n });\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n }}>\n {\n Object.keys(this.state.hash).map(id => {\n let d = this.state.hash[id];\n return <span ref={id}\n key={id}\n style={{\n position: 'absolute',\n left: d.x,\n top: d.y,\n width: 32,\n height: 32,\n translateX: '-50%',\n translateY: '-50%',\n background: 'url(tank.png) no-repeat -680px -136px',\n visibility: 'hidden',\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Hit;\n","import karas from 'karas';\nimport eventBus from './eventBus';\n\nclass Boom extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n hash: {},\n };\n }\n\n componentDidMount() {\n eventBus.on(eventBus.BOOM, (x, y) => {\n let hash = this.state.hash;\n let id = x + ',' + y;\n hash[id] = {\n x,\n y,\n };\n this.setState({\n hash,\n }, () => {\n let node = this.ref[id];\n let a = node.animate([\n {\n },\n {\n backgroundPosition: '-851px -137px',\n },\n ], {\n duration: 100,\n iterations: 3,\n direction: 'alternate',\n easing: 'steps(1)',\n });\n a.on('finish', () => {\n delete hash[id];\n this.setState({\n hash,\n });\n });\n });\n });\n eventBus.on([eventBus.HIT_HOME], (id, x, y, home) => {\n let hash = this.state.hash;\n home.forEach(item => {\n hash[id] = {\n x: item[0] * 16 + 16,\n y: item[1] * 16 + 16,\n };\n this.setState({\n hash,\n }, () => {\n let node = this.ref[id];\n let a = node.animate([\n {\n },\n {\n backgroundPosition: '-851px -137px',\n },\n ], {\n duration: 100,\n iterations: 3,\n direction: 'alternate',\n easing: 'steps(1)',\n });\n a.on('finish', () => {\n delete hash[id];\n this.setState({\n hash,\n });\n });\n });\n });\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n }}>\n {\n Object.keys(this.state.hash).map(id => {\n let d = this.state.hash[id];\n return <span ref={id}\n key={id}\n style={{\n position: 'absolute',\n left: d.x,\n top: d.y,\n width: 64,\n height: 64,\n translateX: '-50%',\n translateY: '-50%',\n background: 'url(tank.png) no-repeat -783px -137px',\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Boom;\n","import karas from 'karas';\nimport eventBus from './eventBus';\nimport data from './data';\n\nconst TYPE = {\n pause: {\n px: 476,\n py: 204,\n },\n protect: {\n px: 612,\n py: 204,\n },\n boom: {\n px: 680,\n py: 204,\n },\n wall: {\n px: 748,\n py: 204,\n },\n life: {\n px: 816,\n py: 204,\n },\n};\n\nclass Item extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n hash: {},\n };\n }\n\n componentDidMount() {\n let list = ['pause', 'protect', 'boom', 'wall', 'life'];\n eventBus.on(eventBus.OCCUR, () => {\n let i = Math.floor(Math.random() * list.length);\n let x = Math.floor(Math.random() * (data.current.box[2] - data.current.box[0]) * 8) + data.current.box[2] * 8;\n let y = Math.floor(Math.random() * (data.current.box[3] - data.current.box[1]) * 8) + data.current.box[1] * 8;\n let hash = this.state.hash;\n let type = list[i];\n let o = hash[type] = {\n x,\n y,\n };\n data.current.item = Object.keys(hash).map(k => [k, hash[k].x, hash[k].y]);\n this.setState({\n hash,\n }, () => {\n let node = this.ref[type];\n let a = node.animate([\n {},\n {\n visibility: 'hidden',\n },\n ], {\n duration: 200,\n iterations: 1196,\n direction: 'alternate',\n });\n a.on('finish', () => {\n if(hash[type] === o) {\n delete hash[type];\n data.current.item = Object.keys(hash).map(k => [k, hash[k].x, hash[k].y]);\n this.setState({\n hash,\n });\n }\n });\n });\n });\n eventBus.on([eventBus.LIFE, eventBus.GET], type => {\n let hash = this.state.hash;\n delete hash[type];\n data.current.item = Object.keys(hash).map(k => [k, hash[k].x, hash[k].y]);\n this.setState({\n hash,\n });\n let count = 0;\n karas.animate.frame.offFrame(this.cb);\n if(type === 'pause') {\n data.current.enemyPause = true;\n let cb = this.cb = (diff) => {\n count += diff;\n if(count > 5000) {\n data.current.enemyPause = false;\n }\n };\n karas.animate.frame.onFrame(cb);\n }\n });\n eventBus.on([eventBus.GAME_OVER, eventBus.GAME_NEXT], () => {\n karas.animate.frame.offFrame(this.cb);\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n }}>\n {\n Object.keys(this.state.hash).map(type => {\n let data = this.state.hash[type];\n let { x, y } = data;\n let { px, py } = TYPE[type];\n return <span ref={type}\n key={type}\n style={{\n position: 'absolute',\n left: x,\n top: y,\n width: 32,\n height: 32,\n background: `url(tank.png) no-repeat ${-px} ${-py}`,\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Item;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass Status extends karas.Component {\n constructor() {\n super();\n this.state = {\n show: false,\n life: 0,\n list: [],\n };\n }\n\n componentDidMount() {\n eventBus.on([eventBus.WILL_GAME], () => {\n this.setState({\n show: true,\n life: data.current.player[0][2],\n list: data.current.enemy || [],\n });\n });\n eventBus.on(eventBus.LIFE, () => {\n this.setState({\n life: this.state.life + 1,\n });\n });\n eventBus.on(eventBus.HIT_US, (id, x, y, us) => {\n us.forEach(item => {\n let i;\n if(item === this.state.list[0]) {\n i = 0;\n }\n else if(item === this.state.list[1]) {\n i = 1;\n }\n if(i === 0) {\n if(item[3] === 1) {\n return;\n }\n this.setState({\n life: this.state.life - 1,\n });\n }\n });\n });\n eventBus.on(eventBus.ADDED_ENEMY, () => {\n this.setState({\n list: data.current.enemy || [],\n });\n });\n eventBus.on(eventBus.BEFORE_MENU, () => {\n this.setState({\n show: false,\n life: 0,\n list: [],\n });\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 20,\n right: 20,\n bottom: 20,\n display: this.state.show ? 'block' : 'none',\n }}>\n <div ref=\"life\" style={{\n display: 'flex',\n alignItems: 'center',\n }}>\n <span style={{\n width: 32,\n height: 32,\n background: 'url(tank.png) no-repeat -748px -170px',\n }}/>\n <strong style={{ color: '#000' }}>{this.state.life || 0}</strong>\n </div>\n <div ref=\"list\">\n {\n this.state.list.map(item => {\n if(item[3]) {\n return null;\n }\n return <span style={{\n width:32,\n height:32,\n background: 'url(tank.png) no-repeat -340 -204',\n }}/>;\n })\n }\n </div>\n </div>;\n }\n}\n\nexport default Status;\n","import karas from 'karas';\nimport data from './data';\nimport eventBus from './eventBus';\n\nclass Grass extends karas.Component {\n constructor(props) {\n super(props);\n this.state = {\n show: false,\n list: [],\n };\n }\n\n componentDidMount() {\n // 开始游戏\n eventBus.on(eventBus.WILL_GAME, () => {\n this.setState({\n show: true,\n list: data.current.grass,\n });\n });\n }\n\n render() {\n return <div style={{\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n height: '100%',\n visibility: this.state.show ? 'visible' : 'hidden',\n }}>\n {\n this.state.list.map(item => {\n let [x, y] = item;\n let left = x * 16;\n let top = y * 16;\n return <span ref={x + ',' + y}\n style={{\n position: 'absolute',\n left,\n top,\n width: 16,\n height: 16,\n background: 'url(tank.png) no-repeat -136 -238',\n }}/>;\n })\n }\n </div>;\n }\n}\n\nexport default Grass;\n","import eventBus from './eventBus';\nimport data from './data';\n\nclass AudioController {\n constructor() {\n this.initialSuccess = false;\n try {\n this.init();\n this.initialSuccess = true;\n } catch (e) {\n console.log(e)\n }\n }\n init () {\n this.mainBGM = new Howl({\n src: 'sound/start.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.move = new Howl({\n src: 'sound/move.mp3',\n format: 'mp3',\n loop: true,\n preload: true,\n volume: 0.5,\n });\n this.move2 = new Howl({\n src: 'sound/move.mp3',\n format: 'mp3',\n loop: true,\n preload: true,\n volume: 0.5,\n });\n this.hitBrick = new Howl({\n src: 'sound/hit_brick.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.hitIron = new Howl({\n src: 'sound/hit_iron.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.boom = new Howl({\n src: 'sound/boom1.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.hitHome = new Howl({\n src: 'sound/boom2.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.shoot0 = new Howl({\n src: 'sound/shoot0.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.shoot1 = new Howl({\n src: 'sound/shoot1.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.shoot2 = new Howl({\n src: 'sound/shoot2.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.shoot3 = new Howl({\n src: 'sound/shoot3.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.occur = new Howl({\n src: 'sound/occur.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.get = new Howl({\n src: 'sound/get.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n this.life = new Howl({\n src: 'sound/life.mp3',\n format: 'mp3',\n loop: false,\n preload: true,\n volume: 0.5,\n });\n eventBus.on(eventBus.MOVE, () => {\n this.move.play();\n setTimeout(() => {\n this.move2.play();\n }, 300);\n });\n eventBus.on(eventBus.STOP, () => {\n this.move.stop();\n setTimeout(() => {\n this.move2.stop();\n }, 300);\n });\n eventBus.on(eventBus.OCCUR, () => {\n this.occur.play();\n });\n eventBus.on(eventBus.GET, () => {\n this.get.play();\n });\n eventBus.on(eventBus.LIFE, () => {\n this.life.play();\n });\n eventBus.on(eventBus.SHOOT, () => {\n this.shoot0.play();\n });\n eventBus.on(eventBus.ENEMY_FIRE, (i) => {\n switch(data.current.enemy[i][2]) {\n case 0:\n this.shoot2.play();\n break;\n case 1:\n this.shoot1.play();\n break;\n case 2:\n this.shoot2.play();\n break;\n default:\n this.shoot3.play();\n }\n });\n eventBus.on(eventBus.WILL_GAME, () => {\n this.mainBGM.play();\n });\n eventBus.on(eventBus.HIT_BRICK, (id, x, y, item) => {\n let brick = data.current.brick;\n // 先判断变铁的\n outer:\n for(let i = 0, len = brick.length; i < len; i++) {\n for(let j = item.length - 1; j >= 0; j--) {\n if(brick[i][3] && brick[i][0] === item[j][0] && brick[i][1] === item[j][1]) {\n item.splice(j, 1);\n this.hitIron.play();\n }\n }\n }\n if(!item.length) {\n return;\n }\n this.hitBrick.play();\n });\n eventBus.on(eventBus.HIT_BOX, () => {\n this.hitBrick.play();\n });\n eventBus.on([eventBus.HIT_IRON, eventBus.HIT_ENEMY], () => {\n this.hitIron.play();\n });\n eventBus.on(eventBus.BOOM, () => {\n this.boom.play();\n });\n eventBus.on(eventBus.HIT_HOME, () => {\n this.hitHome.play();\n });\n eventBus.on(eventBus.GET, () => {\n this.get.play();\n });\n eventBus.on(eventBus.LIFE, () => {\n this.life.play();\n });\n }\n play () {\n\n }\n\n mute (muted) {\n Howler.mute(muted);\n }\n}\n\nexport default new AudioController();\n","import Menu from './Menu';\nimport StageNum from './StageNum';\nimport GameOver from './GameOver';\nimport Box from './Box';\nimport Brick from './Brick';\nimport Iron from './Iron';\nimport Fade from './Fade';\nimport Player from './Player';\nimport Enemy from './Enemy';\nimport Bullet from './Bullet';\nimport Hit from './Hit';\nimport Boom from './Boom';\nimport Item from './Item';\nimport Status from './Status';\nimport eventBus from './eventBus';\nimport Grass from './Grass';\nimport Sound from './Sound';\n\nlet type = location.hash; console.log(type);\nlet root;\nif(type === '#svg' || type === 'svg') {\n root = karas.render(\n <svg width={600} height={600}>\n <Box ref=\"box\" />\n <Brick ref=\"brick\" />\n <Iron ref=\"iron\" />\n <Player ref=\"player\" />\n <Enemy ref=\"enemy\" />\n <Grass ref=\"grass\" />\n <Fade ref=\"fade\" />\n <Item ref=\"item\"/>\n <Bullet ref=\"bullet\" />\n <Boom ref=\"boom\" />\n <Hit ref=\"hit\" />\n <Status ref=\"status\"/>\n <Menu ref=\"menu\" />\n <StageNum ref=\"stageNum\" />\n <GameOver ref=\"gameOver\" />\n </svg>,\n '#canvas'\n );\n document.querySelector('#tc input').checked = false;\n document.querySelector('#ts input').checked = true;\n}\nelse {\n root = karas.render(\n <canvas width={600} height={600} cache=\"1\">\n <Box ref=\"box\" />\n <Brick ref=\"brick\" />\n <Iron ref=\"iron\" />\n <Player ref=\"player\" />\n <Enemy ref=\"enemy\" />\n <Grass ref=\"grass\" />\n <Fade ref=\"fade\" />\n <Item ref=\"item\"/>\n <Bullet ref=\"bullet\" />\n <Boom ref=\"boom\" />\n <Hit ref=\"hit\" />\n <Status ref=\"status\"/>\n <Menu ref=\"menu\" />\n <StageNum ref=\"stageNum\" />\n <GameOver ref=\"gameOver\" />\n </canvas>,\n '#canvas'\n );\n document.querySelector('#tc input').checked = true;\n document.querySelector('#ts input').checked = false;\n}\n\ndocument.querySelector('#tc').onclick = function() {\n location.hash = 'canvas';\n location.reload(true);\n}\ndocument.querySelector('#ts').onclick = function() {\n location.hash = 'svg';\n location.reload(true);\n}\n\ndocument.addEventListener('keydown', function (e) {\n let keyCode = e.keyCode;\n // console.warn(e.keyCode, eventBus.gameState);\n // 菜单进入,快速进入完毕\n if (eventBus.gameState === eventBus.BEFORE_MENU) {\n if (e.keyCode === 74) {\n root.ref.menu.fastShow();\n }\n }\n // 菜单选择\n else if (eventBus.gameState === eventBus.MENUING) {\n if (keyCode === 87 || keyCode === 83) {\n root.ref.menu.altPlayerNum();\n }\n // 开始游戏,赋予data的current为第1局数值\n else if (e.keyCode === 74) {\n eventBus.gameState = eventBus.BEFORE_GAME;\n eventBus.emit(eventBus.BEFORE_GAME);\n }\n }\n // 游戏控制\n else if (eventBus.gameState === eventBus.GAMEING) {\n if (keyCode === 87) {\n root.ref.player.move(0, 0);\n }\n else if (keyCode === 68) {\n root.ref.player.move(0, 1);\n }\n else if (keyCode === 83) {\n root.ref.player.move(0, 2);\n }\n else if (keyCode === 65) {\n root.ref.player.move(0, 3);\n }\n // p1开火\n else if (keyCode === 74) {\n let position = root.ref.player.getPosition(0);\n let direction = root.ref.player.getDirection(0);\n root.ref.bullet.move(0, position.slice(0), direction);\n }\n }\n else if (eventBus.gameState === eventBus.GAME_OVER_WAIT) {\n if (keyCode === 74) {\n root.ref.player.setState({\n show: false,\n list: [],\n });\n root.ref.enemy.setState({\n show: false,\n list: [],\n });\n root.ref.brick.setState({\n show: false,\n list: [],\n });\n root.ref.iron.setState({\n show: false,\n list: [],\n });\n root.ref.box.setState({\n show: false,\n list: [],\n home: [],\n });\n root.ref.gameOver.setState({\n show: false,\n });\n root.ref.menu.show();\n eventBus.gameState = eventBus.BEFORE_MENU;\n eventBus.emit(eventBus.BEFORE_MENU);\n }\n }\n});\n\ndocument.addEventListener('keyup', function (e) {\n let keyCode = e.keyCode;\n if (eventBus.gameState === eventBus.GAMEING) {\n if (keyCode === 87) {\n root.ref.player.stop(0);\n }\n else if (keyCode === 68) {\n root.ref.player.stop(0);\n }\n else if (keyCode === 83) {\n root.ref.player.stop(0);\n }\n else if (keyCode === 65) {\n root.ref.player.stop(0);\n }\n }\n});\n\nlet w = document.querySelector('#w');\nlet a = document.querySelector('#a');\nlet s = document.querySelector('#s');\nlet d = document.querySelector('#d');\nlet j = document.querySelector('#j');\n\nw.addEventListener('touchstart', function (e) {\n e.preventDefault();\n if (eventBus.gameState === eventBus.MENUING) {\n root.ref.menu.altPlayerNum();\n }\n else if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.move(0, 0);\n }\n});\n\na.addEventListener('touchstart', function (e) {\n e.preventDefault();\n if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.move(0, 3);\n }\n});\n\ns.addEventListener('touchstart', function (e) {\n e.preventDefault();\n if (eventBus.gameState === eventBus.MENUING) {\n root.ref.menu.altPlayerNum();\n }\n else if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.move(0, 2);\n }\n});\n\nd.addEventListener('touchstart', function (e) {\n e.preventDefault();\n if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.move(0, 1);\n }\n});\n\nj.addEventListener('touchstart', function (e) {\n e.preventDefault();\n if (eventBus.gameState === eventBus.BEFORE_MENU) {\n root.ref.menu.fastShow();\n }\n else if (eventBus.gameState === eventBus.MENUING) {\n eventBus.gameState = eventBus.BEFORE_GAME;\n eventBus.emit(eventBus.BEFORE_GAME);\n }\n else if (eventBus.gameState === eventBus.GAMEING) {\n let position = root.ref.player.getPosition(0);\n let direction = root.ref.player.getDirection(0);\n root.ref.bullet.move(0, position.slice(0), direction);\n }\n else if (eventBus.gameState === eventBus.GAME_OVER_WAIT) {\n root.ref.player.setState({\n show: false,\n list: [],\n });\n root.ref.enemy.setState({\n show: false,\n list: [],\n });\n root.ref.brick.setState({\n show: false,\n list: [],\n });\n root.ref.iron.setState({\n show: false,\n list: [],\n });\n root.ref.box.setState({\n show: false,\n list: [],\n home: [],\n });\n root.ref.gameOver.setState({\n show: false,\n });\n root.ref.menu.show();\n eventBus.gameState = eventBus.BEFORE_MENU;\n eventBus.emit(eventBus.BEFORE_MENU);\n }\n});\n\nw.addEventListener('touchend', function () {\n if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.stop(0);\n }\n});\n\na.addEventListener('touchend', function () {\n if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.stop(0);\n }\n});\n\ns.addEventListener('touchend', function () {\n if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.stop(0);\n }\n});\n\nd.addEventListener('touchend', function () {\n if (eventBus.gameState === eventBus.GAMEING) {\n root.ref.player.stop(0);\n }\n});\n"],"names":["num","total","current","eventBus","karas","Event","BEFORE_MENU","MENUING","BEFORE_GAME","WILL_GAME","GAMEING","GAME_OVER","GAME_OVER_WAIT","GAME_NEXT","gameState","activeEnemyNum","playerNum","HIT_BOX","HIT_BRICK","HIT_IRON","HIT_ENEMY","HIT_HOME","HIT_US","HIT_US_BY_US","ADD_ENEMY","ADDED_ENEMY","ENEMY_FIRE","SHOOT","PLAY_REBONE","PLAYER_NO_LIFE","MOVE","STOP","BOOM","OCCUR","GET","LIFE","Menu","props","sr","shadowRoot","tank","ref","animation","animate","translateY","duration","fill","tankAnimation","on","emit","updateStyle","visibility","backgroundPositionX","iterations","Infinity","easing","direction","clearAnimate","pause","componentDidMount","finish","n","position","left","top","width","height","translateX","background","Component","StageNum","prpos","state","data","util","clone","player","splice","show","setState","a","bottom","text","setTimeout","fontSize","fontWeight","GameOver","display","Box","list","home","fail","box","forEach","item","push","length","map","p","Brick","brick","id","x","y","hash","i","len","hasOwnProperty","indexOf","type","x1","y1","x2","y2","Math","abs","target","backgroundPosition","timeout","o","clearTimeout","iron","Fade","enemy","count","interval","setInterval","clearInterval","name","node","opacity","checkBox","tx1","ty1","tx2","ty2","checkMove","disappear","checkEnemy","index","checkUs","checkHome","checkItem","MOVE_PX","PROTECT_COUNT","Player","shield","fadeIn","removeAnimate","us","undefined","life","tx","ty","cb","isDestroyed","frame","offFrame","onFrame","currentD","frameJump","items","animationList","slice","py","TURN_COUNT","ENEMY_FIRE_COUNT","getBgP","red","getFrame","p2","split","parseInt","join","Enemy","enemyPause","px","movePx","fire","floor","random","nd","children","d","j","len2","dx","dy","checkHit","double","res","x0","y0","change","checkHitEnemy","checkHitUs","emitHit","getComputedStyle","removeBullet","uuid","limit","Bullet","now","Date","last","time","Object","keys","Hit","Boom","TYPE","protect","boom","wall","Item","k","diff","Status","right","alignItems","color","Grass","grass","AudioController","initialSuccess","init","e","console","log","mainBGM","Howl","src","format","loop","preload","volume","move","move2","hitBrick","hitIron","hitHome","shoot0","shoot1","shoot2","shoot3","occur","get","play","stop","outer","muted","Howler","mute","location","root","render","Iron","document","querySelector","checked","onclick","reload","addEventListener","keyCode","menu","fastShow","altPlayerNum","getPosition","getDirection","bullet","gameOver","w","s","preventDefault"],"mappings":"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"}