{"id":709,"date":"2020-07-04T10:29:37","date_gmt":"2020-07-04T02:29:37","guid":{"rendered":"http:\/\/blog.xrhoujie.com\/?p=709"},"modified":"2020-07-10T16:49:51","modified_gmt":"2020-07-10T08:49:51","slug":"egret%e5%bc%80%e5%8f%91%e8%b6%b3%e7%90%83%e7%ab%9e%e7%8c%9c%e6%b8%b8%e6%88%8f%e4%b8%80","status":"publish","type":"post","link":"http:\/\/blog.xrhoujie.com\/?p=709","title":{"rendered":"egret\u5f00\u53d1\u8db3\u7403\u7ade\u731c\u6e38\u620f"},"content":{"rendered":"<p>\u524d\u6bb5\u65f6\u95f4\u7ffb\u9605\u81ea\u5df1\u7684\u9879\u76ee\u65f6\uff0c\u53d1\u73b0\u4e86\u4e00\u6b3e\u5f88\u591a\u5e74\u524d\u5199\u7684\u4e00\u4e2a\u5165\u53e3\u7ade\u731c\u5c0f\u6e38\u620f\uff0c<\/p>\n<p>\u5927\u81f4\u770b\u4e86\u4e00\u4e0b\u53d1\u73b0\u8fd9\u4e2ademo\u5f88\u9002\u5408\u5165\u95e8\u65b0\u624b\u6765\u53c2\u8003<\/p>\n<p>\u5148\u6765\u770b\u4e0b\u5f00\u53d1\u65f6\u6240\u9700\u8981\u7684\u76ee\u5f55\u7ed3\u6784\uff0c<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-710\" src=\"http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/06\/1.png\" alt=\"\" width=\"752\" height=\"986\" srcset=\"http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/06\/1.png 752w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/06\/1-229x300.png 229w, http:\/\/blog.xrhoujie.com\/wp-content\/uploads\/2020\/06\/1-624x818.png 624w\" sizes=\"(max-width: 752px) 100vw, 752px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u8fd9\u91cc\u9762\u7684ball.ts \u4e0e ball.exml\u6587\u4ef6\u662f\u6e38\u620f\u7684\u6838\u5fc3\u4ee3\u7801\u6587\u4ef6\uff0c\u4e00\u4e2a\u662f\u4ee3\u7801\u811a\u672c\uff0c\u4e00\u4e2a\u662feui\u6587\u4ef6 \uff0c<\/p>\n<p>\u770b\u4e0bball\u7684\u4ee3\u7801\u5185\u5bb9<\/p>\n<p>&nbsp;<\/p>\n<p><code><br \/>\nclass ball extends eui.Component implements eui.UIComponent {<\/code><\/p>\n<p>\/\/\u795e\u68cd\u6309\u94ae<br \/>\npublic btn_start: eui.Button;<br \/>\n\/\/\u8db3\u7403\u56fe\u7247<br \/>\npublic img_ball: eui.Image;<br \/>\n\/\/Win\u56fe\u7247<br \/>\npublic win_Top: eui.Image;<br \/>\npublic win_Buttom: eui.Image;<br \/>\npublic i: number = 1;<br \/>\npublic tw: egret.Tween;<br \/>\n\/\/\u7528\u4e8e\u5224\u5b9a\u8f93\u8d62\u76840 &#8211; 1\u7684\u968f\u673a\u6570<br \/>\nrandom: number;<br \/>\nprivate btnbool: Boolean = true;<\/p>\n<p>private audioCurrent;<\/p>\n<p>private _sound: egret.Sound;<\/p>\n<p>public constructor() {<br \/>\nsuper();<br \/>\nthis.skinName = &#8220;resource\/gameSkins\/ball.exml&#8221;;<br \/>\nthis.addEventListener(egret.Event.ADDED_TO_STAGE, this.startGame, this);<br \/>\n}<br \/>\nprivate startGame():void{<\/p>\n<p>}<\/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.startLoad();<br \/>\n}<br \/>\nprivate startLoad() {<br \/>\nthis.loadBgSound();<br \/>\nthis.loadImages();<br \/>\n}<br \/>\nprivate loadImages() {<br \/>\nvar loader: egret.ImageLoader = new egret.ImageLoader();<br \/>\nloader.addEventListener(egret.Event.COMPLETE, this.loadComplate, this)<br \/>\nvar url: string = &#8216;resource\/assets\/ballImgs.png&#8217;<br \/>\nloader.load(url)<br \/>\n}<br \/>\nprivate loadBgSound() {<br \/>\nthis.audioCurrent = new SoundExample();<br \/>\n}<br \/>\nprivate loadComplate() {<br \/>\nthis.btn_start.addEventListener(egret.TouchEvent.TOUCH_TAP,<br \/>\nthis.onButtonClick, this);<br \/>\nthis.img_ball.addEventListener(egret.TouchEvent.TOUCH_TAP, this.playTweenAnim, this)<br \/>\n}<\/p>\n<p>\/\/\u70b9\u51fb\u795e\u68cd\uff0c\u8db3\u7403\u5f00\u59cb\u7f13\u52a8<br \/>\nprivate onButtonClick(e: egret.TouchEvent) {<\/p>\n<p>if (this.btnbool) {<br \/>\nthis.img_ball.source = &#8216;resource\/assets\/ballImgs.png&#8217;<br \/>\nthis.btnbool = false;<br \/>\n} else {<br \/>\nthis.img_ball.source = &#8216;resource\/assets\/ballImg.png&#8217;<br \/>\nthis.btnbool = true;<br \/>\n}<\/p>\n<p>switch (this.i) {<br \/>\ncase 1:\/\/\u5f00\u59cb\u6e38\u620f<br \/>\nthis.ballTween();<br \/>\nthis.i++;<br \/>\nthis.btn_start.currentState = &#8220;pause&#8221;;<br \/>\nbreak;<br \/>\ncase 2:\/\/\u6682\u505c\u6e38\u620f<br \/>\nthis.tw.setPaused(true);<br \/>\nthis.btn_start.currentState = &#8220;resume&#8221;;<br \/>\nthis.i++;<br \/>\nbreak;<br \/>\ncase 3:\/\/\u7ee7\u7eed\u6e38\u620f<br \/>\nthis.tw.setPaused(false);<br \/>\nthis.btn_start.currentState = &#8220;pause&#8221;;<br \/>\nthis.i = 2;<br \/>\nbreak;<br \/>\ncase 4:\/\/\u91cd\u65b0\u5f00\u59cb<br \/>\n\/\/\u5c06win\u56fe\u7247\u8bbe\u7f6e\u4e3a\u4e0d\u53ef\u89c1<br \/>\nthis.win_Top.visible = false;<br \/>\nthis.win_Buttom.visible = false;<br \/>\n\/\/\u5c06\u8db3\u7403\u56fe\u7247\u4f4d\u7f6e\u5c45\u4e2d<br \/>\nthis.img_ball.x = this.stage.width \/ 2;<br \/>\nthis.img_ball.y = this.stage.height \/ 2;<br \/>\nthis.i = 1;<br \/>\nthis.btn_start.currentState = &#8220;up&#8221;<br \/>\nbreak;<br \/>\n}<br \/>\n}<\/p>\n<p>\/**<br \/>\n* \u8db3\u7403\u7f13\u52a8<br \/>\n*\/<br \/>\nprivate ballTween() {<br \/>\nthis.random = Math.random();<br \/>\nif (this.random &lt; 0.5) { \/\/\u83b7\u53d6\u7403\u6267\u884ctween\u52a8\u753b this.tw = egret.Tween.get(this.img_ball) this.tw.to({ y: 1000 }, 250).to({ y: 120 }, 500).to({ y: 1000 }, 500) .to({ y: 120 }, 500).to({ y: 1000 }, 500).to({ y: 120 }, 500).call(() =&gt; {<br \/>\nthis.win_Buttom.visible = true;<br \/>\nthis.btn_start.currentState = &#8220;reset&#8221;;<br \/>\nthis.i = 4;<br \/>\n});<br \/>\n}<br \/>\nelse if (this.random &gt; 0.5) {<br \/>\nthis.tw = egret.Tween.get(this.img_ball)<br \/>\nthis.tw.to({ y: 1000 }, 250).to({ y: 120 }, 500).to({ y: 1000 }, 500)<br \/>\n.to({ y: 120 }, 500).to({ y: 1000 }, 500).call(() =&gt; {<br \/>\nthis.win_Top.visible = true;<br \/>\nthis.btn_start.currentState = &#8220;reset&#8221;;<br \/>\nthis.i = 4;<br \/>\n});<br \/>\n}<br \/>\n}<br \/>\nprivate playTweenAnim() {<br \/>\n\/\/ \u56fe\u7247\u7f29\u653e\u52a8\u753b<br \/>\nthis.playBallZoom(this.img_ball)<br \/>\n\/\/ \u56fe\u7247\u65cb\u8f6c\u52a8\u753b<br \/>\nthis.playBallrotation(this.img_ball)<br \/>\n\/\/ \u64ad\u653e\u97f3\u9891<br \/>\nvar url:string = &#8220;resource\/assets\/Sound\/sound_click.mp3&#8221;;<br \/>\nthis.audioCurrent.startLoadMusic(url);<\/p>\n<p>}<br \/>\nprivate _nScaleBase: number;<br \/>\n\/\/\u5b9a\u4e49\u7f29\u653e\u7cfb\u6570<br \/>\nprivate static STEP_SCALE: number = .3;<br \/>\n\/\/\u5b9a\u4e49\u65cb\u8f6c\u89d2\u5ea6<br \/>\nprivate static STEP_ROT: number = 3;<\/p>\n<p>private _channel: egret.SoundChannel;<\/p>\n<p>private _pauseTime: number = 0;<\/p>\n<p>private playBallZoom(e) {<br \/>\nthis._nScaleBase = 0;<br \/>\nthis.addEventListener(egret.Event.ENTER_FRAME, (evt: egret.Event) =&gt; {<br \/>\ne.scaleX = e.scaleY = 0.8 + 0.2 * Math.abs(Math.sin(this._nScaleBase += ball.STEP_SCALE));<br \/>\n}, this)<br \/>\n}<br \/>\nprivate playBallrotation(e) {<br \/>\nthis.addEventListener(egret.Event.ENTER_FRAME, (evt: egret.Event) =&gt; {<br \/>\ne.rotation += ball.STEP_ROT;<br \/>\n}, this)<br \/>\n}<br \/>\n}<\/p>\n<p>ball.exml\u5185\u5bb9<br \/>\n<code><br \/>\n<!--?xml version=\"1.0\" encoding=\"utf-8\"?--><\/p>\n<p><\/code><\/p>\n<p>&nbsp;<\/p>\n<p>\u6e90\u7801\u653e\u5230github\u5427 \uff1ahttps:\/\/github.com\/894658027\/HTML5-Games\/tree\/master\/Egret\/egret2d\/ballGame<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u524d\u6bb5\u65f6\u95f4\u7ffb\u9605\u81ea\u5df1\u7684\u9879\u76ee\u65f6\uff0c\u53d1\u73b0\u4e86\u4e00\u6b3e\u5f88\u591a\u5e74\u524d\u5199\u7684\u4e00\u4e2a\u5165\u53e3\u7ade\u731c\u5c0f\u6e38\u620f\uff0c \u5927\u81f4\u770b\u4e86\u4e00\u4e0b\u53d1\u73b0\u8fd9\u4e2ademo\u5f88\u9002\u5408\u5165\u95e8\u65b0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":469,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[15],"_links":{"self":[{"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/709"}],"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=709"}],"version-history":[{"count":4,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/709\/revisions"}],"predecessor-version":[{"id":726,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=\/wp\/v2\/posts\/709\/revisions\/726"}],"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=709"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=709"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.xrhoujie.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=709"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}