色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

#深入淺出學習eTs#(八)“猜大小”小游戲

Harmony&嵌入式學習 ? 2023-05-17 15:08 ? 次閱讀

本項目Gitee倉地址:[深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)](

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區

上一章節提到的模擬器存在的BUG問題,目前沒有辦法直接改善,本來打算直接使用鴻蒙遠程設備來實現,但是發現支持API8的設備都被搶光了(包括模擬器),而本地模擬器僅僅都支持API6,也是不能使用的,在之后的內容中咱們還是依托于預覽器來實現,如果實現不了的或者有特定需求的,我會使用DAYU200真機來實現

一、基本需求

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區


本章節給大家帶來一個最基礎的一個賭博小游戲,即通過猜大猜小,然后使用隨機數來進行判定。

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區

二、控件介紹

本章節中使用到的新控件為進度條和圖片(代碼),用來展示開獎的這個過程

Progress:官方文檔

說明: 該組件從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。

進度條,用于顯示內容加載或操作處理進度。

interface ProgressInterface {
  (options: ProgressOptions): ProgressAttribute;
}

declare interface ProgressOptions {
  value: number; // 必須要指定初始進度
  total?: number;
  style?: ProgressStyle
  type?: ProgressType
}

復制

參數

參數名 參數類型 必填 默認值 參數描述
value number - 指定當前進度值。
total number 100 指定進度總長。
type ProgressType ProgressType.Linear 指定進度條樣式。
#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區
主要有以上幾種樣式,我們在這里使用最基礎的長條形來進行使用,

Image

圖片組件,支持本地圖片和網絡圖片的渲染展示。

說明: 該組件從API Version 7開始支持。后續版本如有新增內容,則采用上角標單獨標記該內容的起始版本。

權限說明

使用網絡圖片時,需要在config.json(FA模型)或者module.json5(Stage模型)對應的"abilities"中添加網絡使用權限ohos.permission.INTERNET。

"abilities": [
  {
    ...
    "permissions": ["ohos.permission.INTERNET"],
    ...
  }
] 

復制

interface ImageInterface {
  (src: string | PixelMap | Resource): ImageAttribute;
}
src:設置要加載的圖片資源,支持從本地、網絡和內存中加載圖片,簡單樣例如下:
    Image($r("app.media.test"))
  .width(180)
  .height(80)

復制

三、UI設計

首先將圖片放入目錄當中

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區


此時在我們的Image控件當中就可以使用媒體的路徑地址:$r(“app.media.2”)

        Image($r("app.media.2"))
          .width(300)
          .height(300)

復制

此時可以在右側預覽器中顯示出來我們的圖片

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區


在圖片下面需要加入兩個按鈕,分別是賭大和賭小

 Row() {
          Button('賭大')
            .width(150)
            .onClick(() => {

            })
          Button('賭小')
            .width(150)
            .onClick(() => {
            })
        }

復制

因為是需要水平排列,這里使用Row容器組件,寫入點擊事件備用

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區


在按鈕下邊則加入我們的進度條控件

         @State Set_Num: number = 0;
Progress({
          value: this.Set_Num,                   // 設置當前進度
          total: 100,                  // 設置進度總量
          type: ProgressType.Linear    // 設置進度條的樣式為條形樣式
        })
          .size({width: '100%', height: 40})

復制

設置總寬度為100,當前寬度為0(賦值給了變量)

在最下面放置一個標簽,用來提示當前系統的運行狀態

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區

四、功能設計

首先呢,需要讓我們的進度條動起來,因為沒有直接的sleep函數,所以需要我們構建一個,這里引入了同步和異步的概念,怕大家理解不了就不深入展開了,應用方式如下:

function sleep(ms){
  return new Promise((resolve)=>setTimeout(resolve,ms));
}

async Get_Result()
  {
    this.Set_Num = 0
    for(var i = 0;i<=100;i++)
    {
      var temple = await sleep(10);
      this.Set_Num = i
    }
}

復制

上面的Promise 和 下面的async為對應出現,因為我們把進度條的當前位置賦值給了 this.Set_Num,那么上面的部分意思就是在for循環中增加進度條的當前位置,間隔為10ms,一共100次,則對應進度條1s走完,實現一個動畫效果

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區


在完成動畫效果后,我們需要實現“賭博”功能,即實現對賭大賭小的分析,這里使用隨機數生成器

this.The_Result = Math.ceil(Math.random() * 100 + 1)

復制

將結果賦值給this.The_Result(0-100大小的數)

此時我們判斷按下的是賭大還是賭小,分別進行分析

async Get_Result()
  {
    this.Set_Num = 0
    for(var i = 0;i<=100;i++)
    {
      var temple = await sleep(10);
      this.Set_Num = i
    }
    this.The_Result = Math.ceil(Math.random() * 100 + 1)
    if(this.Flag){
      if(this.The_Result<50)
      {
        this.message = '你輸了!!' + this.The_Result.toString()
      }else
      {
        this.message = '你贏了??!'+ this.The_Result.toString()
      }

    }else
    {
      if(this.The_Result>=50)
      {
        this.message = '你輸了??!'+ this.The_Result.toString()
      }else
      {
        this.message = '你贏了!!'+ this.The_Result.toString()
      }

    }
  }

復制

補充完整按鍵部分的程序

        Row() {
          Button('賭大')
            .width(150)
            .onClick(() => {
              this.Flag = 1
              this.Get_Result()

            })
          Button('賭小')
            .width(150)
            .onClick(() => {
              this.Flag = 0
              this.Get_Result()
            })
        }

復制

此時便能實現完整的一次運行,在運行后會將結果以及隨機數的大小顯示在標簽上

五、功能演示

#深入淺出學習eTs#(八)“猜大小”小游戲-開源基礎軟件社區


如上圖,實現了預計功能

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • OpenHarmony
    +關注

    關注

    25

    文章

    3768

    瀏覽量

    17015
收藏 人收藏

    評論

    相關推薦

    #深入淺出學習eTs#(九)變紅碼?專屬二維碼生成

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-13 13:21 ?1579次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs#</b>(九)變紅碼?專屬二維碼生成

    #深入淺出學習eTs#(十)藍藥丸還是紅藥丸

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-17 15:07 ?1036次閱讀
    #<b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs#</b>(十)藍藥丸還是紅藥丸

    數字大小游戲研修實現

    `通過學習和努力,蛟龍騰飛團隊成功在自己開發版上實現數字大小游戲。本游戲參考與引用了HonestQiao公開的代碼。`
    發表于 12-16 18:07

    #深入淺出學習eTs#(一)模擬器/真機環境搭建

    本項目的Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com
    發表于 12-24 13:02

    #深入淺出學習eTs#(二)拖拽式UI

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 09:56

    #深入淺出學習eTs#(四)登陸界面UI

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 10:01

    #深入淺出學習eTs#(六)編寫eTs第一個控件

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 10:05

    #深入淺出學習eTs#(七)判斷密碼是否正確

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 10:06

    #深入淺出學習eTs#)“大小小游戲

    本項目Gitee倉地址:[深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    發表于 12-29 10:08

    #深入淺出學習eTs#(十七)遠端模擬器

    本項目Gitee倉地址:深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)一
    發表于 12-29 13:56

    深入淺出Cortex-M0學習資料

    深入淺出Cortex-M0學習資料
    發表于 06-18 10:50 ?0次下載
    <b class='flag-5'>深入淺出</b>Cortex-M0<b class='flag-5'>學習</b>資料

    深入淺出學習250個通信原理資源下載

    深入淺出學習250個通信原理資源下載
    發表于 04-12 09:16 ?28次下載

    深入淺出學習低功耗藍牙協議棧

    深入淺出學習低功耗藍牙協議棧
    發表于 06-23 10:35 ?57次下載

    深入淺出學習eTs(一)模擬器/真機環境搭建

    本項目的Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com
    的頭像 發表于 05-13 13:17 ?1864次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(一)模擬器/真機環境搭建

    深入淺出學習eTs(七)如何判斷密碼是否正確

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-13 13:20 ?1000次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確
    主站蜘蛛池模板: 婷婷五月久久丁香国产综合 | 妈妈的朋友6未删减版完整在线 | 好男人在线观看视频观看高清视频免费 | 加勒比一本之道高清视频在线观看 | 一区二区视频在线观看高清视频在线 | 日韩一卡二卡三卡四卡免费观在线 | 久久精品免费电影 | 两百磅美女 | 国产高清砖码区 | 69久久国产精品热88人妻 | 亚洲a视频在线 | 717影院理论午夜伦不卡久久 | 国产美女又黄又爽又色视频网站 | 在线播放av欧美无码碰 | 失禁 调教 刺激 哭喊男男 | 亚洲中文字幕无码一久久区 | 日韩一本在线 | 暖暖视频大全免费观看 | 久久亚洲精品无码A片大香大香 | 久久嫩草影院网站 | 国产成人啪精品视频免费网 | 国产嫩草在线观看 | 芒果视频看片在线观看 | 成人动漫百度影音 | 亚洲精品国产熟女久久久 | 色戒床震视频片段 | 无人视频在线观看免费播放影院 | 国产免费怕怕免费视频观看 | 色欲AV色欲AV久久麻豆 | 中文字幕亚洲无限码 | 久久久久久久电影 | 亚洲国产高清福利视频 | 老湿影院色情a | 国产又黄又粗又爽又色的视频软件 | jizz69女士第一次 | 亚洲乱码高清午夜理论电影 | 伊人香蕉在线播放视频免费 | 伦理片92伦理午夜 | 东北老妇xxxxhd | 日日射日日操 | 性欧美videofree中文字幕 |