{"id":733,"date":"2020-11-19T16:51:13","date_gmt":"2020-11-19T08:51:13","guid":{"rendered":"http:\/\/blog.xrhoujie.com\/?p=733"},"modified":"2020-09-02T17:29:51","modified_gmt":"2020-09-02T09:29:51","slug":"egret%e6%88%90%e8%af%ad%e5%a4%a7%e6%8c%91%e6%88%98-%e6%b8%b8%e6%88%8f%e5%9c%ba%e6%99%af%e9%a1%b5%e9%80%bb%e8%be%91%e5%9b%9b","status":"publish","type":"post","link":"http:\/\/blog.xrhoujie.com\/?p=733","title":{"rendered":"Egret\u6210\u8bed\u5927\u6311\u6218-\u6e38\u620f\u573a\u666f\u9875\u903b\u8f91(\u56db)"},"content":{"rendered":"<p><code><br \/>\n\/**<br \/>\n* \u521d\u59cb\u5316  \u52a0\u8f7d\u5173\u5361\u4fe1\u606f<br \/>\n*\/<br \/>\nclass SceneGame extends eui.Component implements eui.UIComponent {<br \/>\n\/\/ \u8fd4\u56de\u6309\u94ae<br \/>\npublic btn_back:eui.Button;<br \/>\n\/\/ \u95ee\u9898\u56fe\u7247<br \/>\npublic img_question:eui.Image;<br \/>\n\/\/ win<br \/>\npublic gp_win:eui.Group;<br \/>\n\/\/ \u6210\u8bed\u89e3\u91ca<br \/>\npublic lab_cyjs:eui.Label;<br \/>\n\/\/ \u6210\u8bed\u51fa\u5904<br \/>\npublic lab_cycc:eui.Label;<br \/>\n\/\/ \u5143\u5b9d<br \/>\npublic lab_yb:eui.Label;<br \/>\n\/\/ \u4e0b\u4e00\u9898\u6309\u94ae<br \/>\npublic btn_next:eui.Button;<br \/>\n\/\/ \u7b54\u6848<br \/>\npublic gp_answer:eui.Group;<br \/>\n\/\/ \u9009\u5b57<br \/>\npublic gp_words:eui.Group;<br \/>\n\/\/ \u8bb0\u5f55\u5f53\u524d\u5173\u5361<br \/>\npublic cur_level:number;<\/code><\/p>\n<p>private static shared: SceneGame;<br \/>\npublic static getInstance() {<br \/>\nif (!SceneGame.shared) {<br \/>\nSceneGame.shared = new SceneGame();<br \/>\n}<br \/>\nreturn SceneGame.shared;<br \/>\n}<\/p>\n<p>public constructor() {<br \/>\nsuper();<br \/>\n}<\/p>\n<p>protected partAdded(partName: string, instance: any): void {<br \/>\nsuper.partAdded(partName, instance);<br \/>\n}<\/p>\n<p>protected childrenCreated(): void {<br \/>\nsuper.childrenCreated();<br \/>\nthis.init();<br \/>\n}<\/p>\n<p>private init() {<br \/>\nthis.btn_back.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTapBackBtn, this);<br \/>\nthis.btn_next.addEventListener(egret.TouchEvent.TOUCH_TAP, this.onTapNext, this);<br \/>\n}<\/p>\n<p>\/**<br \/>\n* \u521d\u59cb\u5316\u6e38\u620f\u573a\u666f<br \/>\n*\/<br \/>\npublic initLevelData(level: number) {<br \/>\n\/\/\u8bb0\u5f55\u5f53\u524d\u5173\u5361<br \/>\nthis.cur_level = level;<br \/>\n\/\/ \u83b7\u53d6\u672c\u5173\u5361\u7684\u6570\u636e<br \/>\nlet curret_levelData: LevelDataItem = LevelDataManager.getInstance().getLevelData(level);<br \/>\n\/\/ \u8bbe\u7f6e\u95ee\u9898\u56fe\u7247<br \/>\nthis.img_question.source = &#8220;resource\/assets\/data\/&#8221; + curret_levelData.img;<\/p>\n<p>\/\/ \u8bbe\u7f6e\u95ee\u9898\u5b57 \u5148\u628a\u81ea\u5df1\u5173\u5361\u7684\u6210\u8bed(\u56db\u4e2a\u5b57)\u548c\u6df7\u6dc6\u5b57(\u516d\u4e2a\u5b57)\u62fc\u63a5\u8d77\u6765<br \/>\nlet words: string = curret_levelData.answer + curret_levelData.word;<br \/>\n\/\/\u62fc\u63a520\u4e2a\u5b57\u7b26<br \/>\nwhile (words.length == 10) {<br \/>\nlet i = Math.floor(Math.random() * LevelDataManager.getInstance().totalLevels);<br \/>\nif (i != level) {<br \/>\nlet random_levelData: LevelDataItem = LevelDataManager.getInstance().getLevelData(i);<br \/>\nwords += (random_levelData.answer + random_levelData.word);<br \/>\n}<br \/>\n}<br \/>\n\/\/ \u628awords\u53d8\u6210\u6570\u7ec4<br \/>\nlet words_arr = words.split(&#8220;&#8221;);<br \/>\n\/\/ console.log(words_arr);<\/p>\n<p>words_arr = this.randomList(words_arr);<br \/>\n\/\/ console.log(words_arr);<\/p>\n<p>\/\/ \u521d\u59cb\u5316\u5355\u8bcd\u7ec4\u7684\u6587\u5b57\uff0c\u6e32\u67d3\u5e76\u663e\u793a\u51fa\u6765<br \/>\nfor (let i: number = 0; i &lt; this.gp_words.numChildren; i++) {<br \/>\nlet gp_word_item = this.gp_words.getChildAt(i);<br \/>\ngp_word_item.setWordText(words_arr[i]);<br \/>\ngp_word_item.visible = true;<br \/>\n}<br \/>\n\/\/ \u521d\u59cb\u5316\u95ee\u9898\u7ec4\uff0c\u6e05\u7a7a\u7ec4\u5185\u6570\u636e<br \/>\nfor (let i: number = 0; i &lt; this.gp_answer.numChildren; i++) {<br \/>\nlet gp_answer_item = this.gp_answer.getChildAt(i);<br \/>\ngp_answer_item.setSelectWord(null);<br \/>\ngp_answer_item.selected_word = null;<br \/>\ngp_answer_item.visible = true;<br \/>\n}<\/p>\n<p>}<\/p>\n<p>\/**<br \/>\n* \u8fd4\u56de\u6309\u94ae\u56de\u8c03\u51fd\u6570<br \/>\n*\/<br \/>\nprivate onTapBackBtn() {<br \/>\nthis.parent.addChild(SceneLevel.getInstance());<br \/>\nthis.parent.removeChild(this);<\/p>\n<p>}<br \/>\n\/**<br \/>\n* \u4e0b\u4e00\u9898\u6309\u94ae<br \/>\n*\/<br \/>\nprivate onTapNext() {<br \/>\n\/\/ \u5148\u628a\u6e38\u620f\u6b63\u89e3\u573a\u666f\u9690\u85cf\u8d77\u6765<br \/>\nthis.gp_win.visible = false;<br \/>\nSceneLevel.getInstance().setMileStoneLevel(this.cur_level + 1);<br \/>\n\/\/ \u91cd\u65b0\u521d\u59cb\u5316\u6e38\u620f\u573a\u666f<br \/>\nthis.initLevelData(this.cur_level + 1);<br \/>\n}<\/p>\n<p>\/\/\u70b9\u51fb\u9009\u62e9\u533a\u57df\u7684\u6587\u5b57<br \/>\npublic onTapSelectWord(w: Word) {<br \/>\nSoundManage.getInstance().playTapWord();<br \/>\nlet sel: AnswerWord = null;<br \/>\nfor (let i: number = 0; i &lt; this.gp_answer.numChildren; i++) {<br \/>\nlet answer_word = this.gp_answer.getChildAt(i);<\/p>\n<p>if (answer_word.getWordText() == &#8220;&#8221;) {<br \/>\nsel = answer_word;<br \/>\nbreak;<br \/>\n}<br \/>\n}<\/p>\n<p>\/\/\u627e\u5230\u7a7a\u767d\u7684\u6587\u5b57<br \/>\nif (sel) {<br \/>\nsel.setSelectWord(w);<br \/>\n}<br \/>\n\/\/\u521d\u59cb\u5316\u6587\u672c\u5185\u5bb9\u5e76\u7ed8\u5236\u5185\u5bb9<br \/>\nlet answer_str: string = &#8220;&#8221;;<br \/>\nfor (let i: number = 0; i &lt; this.gp_answer.numChildren; i++) {<br \/>\nlet gp_answer_item = this.gp_answer.getChildAt(i);<br \/>\nanswer_str += gp_answer_item.getWordText();<br \/>\n}<br \/>\n\/\/\u9009\u9879\u586b\u6ee1\u4e86\uff0c\u5f00\u59cb\u5339\u914djson\u6587\u4ef6\u4e2d\u7684answer\u6b63\u786e\u4e0e\u5426<br \/>\nif (answer_str.length == 4) {<br \/>\nif (answer_str == LevelDataManager.getInstance().getLevelData(this.cur_level).answer) {<br \/>\nSoundManage.getInstance().playRight();<br \/>\nthis.showWin();<br \/>\n} else {<br \/>\nSoundManage.getInstance().playWrong();<br \/>\n}<br \/>\n}<\/p>\n<p>}<\/p>\n<p>private showWin() {<br \/>\nlet data: LevelDataItem = LevelDataManager.getInstance().getLevelData(this.cur_level);<br \/>\nthis.lab_cyjs.text = data.tip;<br \/>\nthis.lab_cycc.text = data.content;<br \/>\nthis.gp_win.visible = true;<br \/>\n}<br \/>\n\/**<br \/>\n* \u5bf9\u4e00\u4e2a\u6570\u7ec4\u8fdb\u884c\u968f\u673a\u6392\u5217<br \/>\n*\/<br \/>\nprivate randomList(arr: string[]): string[] {<br \/>\nvar array = [];<br \/>\nwhile (arr.length &gt; 0) {<br \/>\nvar i = Math.floor(Math.random() * arr.length)<br \/>\n\/\/ array.push(arr.splice(i,1)[0]);<br \/>\narray.push(arr[i]);<br \/>\narr.splice(i, 1);<br \/>\n}<br \/>\nreturn array;<br \/>\n}<\/p>\n<p>}<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-large wp-image-720\" src=\"http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/6-971x1024.png\" alt=\"\" width=\"660\" height=\"696\" srcset=\"http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/6-971x1024.png 971w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/6-285x300.png 285w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/6-768x810.png 768w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/6-624x658.png 624w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/07\/6.png 1770w\" sizes=\"(max-width: 660px) 100vw, 660px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\/** * \u521d\u59cb\u5316 \u52a0\u8f7d\u5173\u5361\u4fe1\u606f *\/ class SceneGame extends eui.Compone [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[4],"tags":[15],"_links":{"self":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/733"}],"collection":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=733"}],"version-history":[{"count":1,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/733\/revisions"}],"predecessor-version":[{"id":734,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/733\/revisions\/734"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/media\/469"}],"wp:attachment":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=733"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=733"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=733"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}