色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美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

    文章

    3744

    瀏覽量

    16488
收藏 人收藏

    評論

    相關推薦

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

    本項目Gitee倉地址: 深入淺出eTs學習: 帶大家深入淺出學習eTs (gitee.com)
    的頭像 發表于 05-13 13:21 ?1506次閱讀
    #<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 ?988次閱讀
    #<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 ?1749次閱讀
    <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 ?945次閱讀
    <b class='flag-5'>深入淺出</b><b class='flag-5'>學習</b><b class='flag-5'>eTs</b>(七)如何判斷密碼是否正確
    主站蜘蛛池模板: 中文无码有码亚洲 欧美 | 天天操人人射 | 激情内射亚洲一区二区三区 | 小草观看免费高清视频 | 日本女人bb | 日韩午夜欧美精品一二三四区 | 国产人A片在线乱码视频 | 影音先锋av色咪影院 | 青青久在线视频免费观看 | 免费人成网站在线观看10分钟 | 麻豆精品2021最新 | 各种场合肉H校园1V1 | 黄片在线观看 | 脱女学小内内摸出水网站免费 | 亚洲永久精品AV在线观看 | 免费国产成人高清在线观看视频 | 久草在线在线精品观看99 | 暖暖 日本 视频 在线观看免费 | 国产精品久久大陆 | 午夜视频在线观看国产 | 精品少妇高潮蜜臀涩涩AV | 国产电影三级午夜a影院 | 果冻传媒视频在线观看完整版免费 | 无码国产成人777爽死在线观看 | 三色午夜秀| 伊人久久大香线蕉综合影 | 久久理论片 | 午夜亚洲WWW湿好爽 午夜亚洲WWW湿好大 | 激情男女高潮射精AV免费 | 欧美黑白配性xxxxx | 99这里只有是精品2 99这里有精品视频视频 | 久久人妻无码毛片A片麻豆 久久人妻熟女中文字幕AV蜜芽 | 日本久久精品毛片一区随边看 | 欧美精品色婷婷五月综合 | 娇小亚裔被两个黑人 | 97国内精品久久久久久久影视 | 妖精视频一区二区免费 | 亚洲一日韩欧美中文字幕在线 | 色欲天天天综合网免费 | 久久亚洲精品AV成人无 | 亚洲无遮挡无码A片在线 |