在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

鴻蒙上開發“小蜜蜂”游戲

OpenHarmony技術社區 ? 來源:OST開源開發者 ? 2023-04-03 11:27 ? 次閱讀

小時候我們有個熟悉的游戲叫小蜜蜂。本文教大家在鴻蒙上學做這個小蜜蜂游戲。

開發實戰

①HAP 應用建立

前面我們介紹了簡單的 Hap 應用的開發以及基礎控件的介紹,這里我們就不贅述 Hap 項目的建立過程,以下就是基礎的 Hap 的 page 文件:index.ets。

build(){
Row(){
Column(){
Canvas(this.context)
.width('100%')
.height('100%')
.onClick((ev:ClickEvent)=>{
console.info("click!!")
this.doClick()
})
.onReady(()=>{
this.context.imageSmoothingEnabled=false
this.drawall()
})
}
.width('100%')
}
.height('100%')
.backgroundColor("#000000")
}
build 是基礎頁面的構造函數,用于界面的元素構造,其他的頁面的生命周期函數如下:
declareclassCustomComponent{
/**
*Customizethepop-upcontentconstructor.
*@since7
*/
build():void;

/**
*aboutToAppearMethod
*@since7
*/
aboutToAppear?():void;

/**
*aboutToDisappearMethod
*@since7
*/
aboutToDisappear?():void;

/**
*onPageShowMethod
*@since7
*/
onPageShow?():void;

/**
*onPageHideMethod
*@since7
*/
onPageHide?():void;

/**
*onBackPressMethod
*@since7
*/
onBackPress?():void;
}

②Canvas 介紹

canvas 是畫布組件用于自定義繪制圖形,具體的 API 頁面如下:

https://developer.harmonyos.com/cn/docs/documentation/doc-references/ts-components-canvas-canvas-0000001333641081
頁面顯示前會調用 aboutToAppear() 函數,此函數為頁面生命周期函數。 canvas 組件初始化完畢后會調用 onReady() 函數,函數內部實現小游戲的初始頁面的繪制。

初始化頁面數據:

drawall(){
this.context.clearRect(0,0,this.context.width,this.context.height)
this.drawFj();
this.drawEn();
this.drawBullet();
this.drawScore();
}
繪制飛機:
drawFj(){
this.context.drawImage(this.fjImg,this.fjStartX,this.fjslotY,this.birdH,this.birdW)
}
繪制害蟲:
drawEn(){
for(letline=0;line

不同行的害蟲長相不同,分值不同。

③游戲邏輯

簡單的小游戲主體游戲邏輯為:點擊鼠標移動飛機,飛機發射子彈,命中害蟲,計算分數:

doClick(){
if(this.en1slotX<=?50)?{
??????this.en1slotX?+=?this.birdW
????}?else?{
??????this.en1slotX?-=?this.birdW
????}
????console.log("doclick----")
????this.moveFj();
??}

④完整邏輯

@Entry
@Component
structIndex{
@Statemessage:string='HelloWorld'
privatesettings:RenderingContextSettings=newRenderingContextSettings(true);
privatecontext:CanvasRenderingContext2D=newCanvasRenderingContext2D(this.settings);
privateblockType:number=0
privateblockSize:number=30
privateen1Img:ImageBitmap=newImageBitmap("common/images/mf1.png")
privateen2Img:ImageBitmap=newImageBitmap("common/images/mf2.png")
privateen3Img:ImageBitmap=newImageBitmap("common/images/mf3.png")
privatefjImg:ImageBitmap=newImageBitmap("common/images/fj.png")

privatestartX=30;
privatestartY=100;
privateenStartY=140;
privatefjStartX=50;
privatefjStartY=610;
privatefjslotX=50;
privatefjslotY=this.fjStartY;
privateen1slotX=50;
privateen1slotY=this.enStartY;
privateen2slotX=50;
privateen2slotY=this.enStartY;
privatebulletX=65;
privatebulletY=550;
privatebirdH=40;
privatebirdW=40;
privatescore=0;
privatefjDirection=1;

privateenemylist=[
[1,1,1,1,1],
[1,1,1,1,1],
[1,1,1,1,1],
]

moveFj(){
this.fjStartX=this.fjStartX+this.fjDirection*this.birdW
if(this.fjStartX>=210){
this.fjDirection=-1
}elseif(this.fjStartX<=?50)?{
??????this.fjDirection?=?1
????}
??}

??drawFj()?{
????this.context.drawImage(?this.fjImg,?this.fjStartX,?this.fjslotY,this.birdH,this.birdW)
??}

??drawEn()?{
????for?(let?line=0;?line?{
setInterval(()=>{
if(that.en1slotX<=?50)?{
??????????that.en1slotX?+=?that.birdW
????????}?else?{
??????????that.en1slotX?-=?that.birdW
????????}

????????console.log(that.en1slotX.toString())
????????that.drawall()

??????},?ms)
????})
??}

??doClick()?{
????if?(this.en1slotX?<=?50)?{
??????this.en1slotX?+=?this.birdW
????}?else?{
??????this.en1slotX?-=?this.birdW
????}
????console.log("doclick----")
????this.moveFj();
??}

??aboutToAppear()?{
????this.sleep(1000)
??}

??build()?{
????Row()?{
??????Column()?{
????????Canvas(this.context)
??????????.width('100%')
??????????.height('100%')
??????????.onClick((ev:?ClickEvent)?=>{
console.info("click!!")
this.doClick()
})
.onReady(()=>{
this.context.imageSmoothingEnabled=false
this.drawall()
})
}
.width('100%')
}
.height('100%')
.backgroundColor("#000000")
}
}
遺留問題:

飛機的子彈可以多發

害蟲可以攻擊飛機

游戲聲音問題:目前 ohos 不支持音頻播放資源音頻,看之后版本是否支持

DevEco 用 setInterval 重繪 canvas 會導致 ide 崩潰

總結

本文主要介紹了小游戲的開發,畫布功能的使用,獲取源碼請通過“閱讀原文”下載附件。

作者:王石

審核編輯:湯梓紅

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

    關注

    2

    文章

    746

    瀏覽量

    26335
  • API
    API
    +關注

    關注

    2

    文章

    1506

    瀏覽量

    62205
  • 函數
    +關注

    關注

    3

    文章

    4340

    瀏覽量

    62791
  • Canvas
    +關注

    關注

    0

    文章

    16

    瀏覽量

    11003
  • 鴻蒙
    +關注

    關注

    57

    文章

    2377

    瀏覽量

    42922

原文標題:鴻蒙上開發“小蜜蜂”游戲

文章出處:【微信號:gh_834c4b3d87fe,微信公眾號:OpenHarmony技術社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    高云半導體小蜜蜂家族再添新成員——GW1NS-2 FPFA-SoC芯片揭開AI的序幕

    中國廣州,2018年7月23日,廣東高云半導體科技股份有限公司(以下簡稱“高云半導體”)今日宣布:高云半導體首款FPGA-SoC產品—小蜜蜂?(LittleBee?)家族GW1NS系列GW1NS-2開始提供工程樣片及開發板,揭開了布局AI的序幕。
    的頭像 發表于 07-23 14:09 ?9739次閱讀

    [轉帖]這才叫高科技:美科學家用機械蜜蜂演奏007主題曲

    賓夕法尼亞大學研制的四旋翼機械蜜蜂曾經令人印象深刻,但是從來沒人想到,這些機械小蜜蜂真的會干出一件和007相稱的事:它們在一系列復雜的飛行之后,成功地演奏出了邦德的主題曲。這些機器人在電子琴鍵上降落
    發表于 08-13 20:19

    小蜜蜂擴音器的電路圖和元器件清單

    本帖最后由 gk320830 于 2015-3-7 13:41 編輯 小蜜蜂擴音器的電路圖和元器件清單。我很急希望各位大大可以幫忙。謝謝大家了。。。{:4:}
    發表于 04-19 22:44

    小蜜蜂】基于ZigBee的水情信息采集平臺

    本帖最后由 wangjiamin2014 于 2015-1-9 11:38 編輯 項目名稱:基于ZigBee的水情信息采集平臺 團隊名稱:小蜜蜂團隊成員:張建祥、李如菊、李艷作品演示作品介紹水
    發表于 12-31 11:19

    游戲玩家讓自己兒子按年代順序玩了六年古董游戲

    。1979年的Galaxian(小蜜蜂)是他兒子的啟蒙游戲。他的兒子Eliot出生于2004年,因此Baio最近才發表了他長達十年的研究——“關于強迫懷舊和質疑教育的實驗”。該研究是為了讓他的兒子探索媒介
    發表于 05-04 16:12

    小蜜蜂雙輪平衡車

    `經過一個月的努力,做了點小東西,在這里跟大家分享一下。當然也歡迎大家多多噴我。由于本人等級有限沒辦法發視頻連接,大家可以前往優酷,然后搜索----小蜜蜂雙輪車測試視頻.有什么問題可以加入個人qq:2424607185.`
    發表于 01-15 17:27

    小蜜蜂機器人APP測試

    經過一個月的努力,做了點小東西(無廣告),在這里跟大家分享一下。當然也歡迎大家多多噴我。下載方式:應用寶,然后搜索“小蜜蜂機器人”。由于本人等級有限沒辦法發視頻連接,大家可以前往優酷,然后搜索---”小蜜蜂機器人APP使用介紹“ .有什么問題可以加入個人qq:242460
    發表于 01-17 17:09

    有一種微信營銷神器叫云控系統,有它吸粉引流不會累!

    就研發了這樣一款微信營銷吸粉神器——小蜜蜂吸粉精靈云控系統。做過微商或者通過微信進行營銷的人都知道,在通過微信進行微信營銷吸粉引流的過程中,人為操作往往會出現各種各樣的問題,需要耗費大量的時間、人力去
    發表于 08-15 14:32

    【EFM8 Universal Bee試用體驗】開箱+上電

    `晚上收到了開發板,我打開一看,包裝果然有大廠風范,一個大大的蜜蜂,我姑娘看到了,以為里面裝的是小蜜蜂玩具呢,差點給就地正法。我趕快搶過來,告訴他這個是爸爸的玩具,我才有機會打開了看看里面有什么不但
    發表于 11-07 12:34

    【FPGA開發者項目連載】一次開發經驗淺談

    ` 非常開心參加了高云半導體的的星核計劃。也很榮幸收到了高云半導體贊助的小蜜蜂開發板。玩FPGA也有兩三年的時間了,因為學校有時間,平常也喜歡做一些相關的東西。 這也是我第一次拿到咱們國產的FPGA
    發表于 05-12 19:41

    海爾小蜜蜂智能修改版V1.03

    電子發燒友網站提供《海爾小蜜蜂智能修改版V1.03.exe》資料免費下載
    發表于 02-27 09:15 ?0次下載

    瞄準車載FPGA領域,高云半導體推小蜜蜂家族新品

    ,分別是使用嵌入式閃存工藝的非易失FPGA小蜜蜂?家族和基于SRAM的中密度FPGA晨熙?家族,這兩個家族的器件均已支持商業級(0C°-85C°)和工業級(-40C°~+100C°)溫度標準。此次推出支持汽車級溫度范圍(-40C°~+125C°)的為小蜜蜂?家族部分FPG
    的頭像 發表于 11-30 10:41 ?9140次閱讀

    高云半導體小蜜蜂家族GW1NS系列產品入圍Arm TechCon 2018年度最佳技術創新獎

    中國廣州,2018年10月10日,廣東高云半導體科技股份有限公司(以下簡稱“高云半導體”)今日宣布,小蜜蜂家族GW1NS系列產品被提名入圍Arm TechCon 2018年度最佳技術創新獎。
    的頭像 發表于 10-10 10:27 ?6177次閱讀

    鴻蒙上實現“數字華容道”小游戲

    本篇文章教大家如何在鴻蒙上實現“數字華容道”小游戲
    的頭像 發表于 12-26 09:52 ?1271次閱讀

    8位MCU市場中,飛來的這只“小蜜蜂”~

    8位MCU市場中,飛來的這只“小蜜蜂”~
    的頭像 發表于 10-26 15:44 ?798次閱讀
    8位MCU市場中,飛來的這只“<b class='flag-5'>小蜜蜂</b>”~
    主站蜘蛛池模板: 濑亚美莉vs黑人欧美视频| 色妞干网| 欧美日韩性猛交xxxxx免费看| 视频一区中文字幕| 狠狠干最新网址| 午夜影视在线| 狠狠色丁香久久综合婷婷| 色婷婷5月精品久久久久| 如果我们是季节韩剧在线观看| 亚洲网在线观看| 免费久久精品国产片香蕉| 日本肥妇| 1024你懂的在线观看| 久草资源网| 欧美影院入口| 三级成人网| 亚洲高清日韩精品第一区| 国产片一级特黄aa的大片| 欧美色图网站| 色天天综合网色鬼综合| 欧美黄色三级视频| 国产成人永久免费视频| 黄色毛片免费进入| 影音先锋色偷偷米奇四色| 国产精品久久久久网站| 黄 色 录像成 人播放免费99网| 成年人黄色免费网站| www.激情五月.com| www.五月天| 天天操天天射天天爽| 手机看片福利盒子久久青| 天天操天天添| yezhulu在线永久网址yellow| 777奇米四色米奇影院在线播放| 91福利免费视频| 毛片2016免费视频| 调教双性学霸美人| www.99热.com| 亚洲欧美婷婷| 毛片不卡一区二区三区| 狠狠色综合网|