chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

我的第一個(gè)鴻蒙手機(jī)小游戲 數(shù)字華容道

電子工程師 ? 來(lái)源:HarmonyOS技術(shù)社區(qū) ? 作者:HarmonyOS技術(shù)社區(qū) ? 2020-12-29 10:55 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

12 月 16 號(hào) HarmonyOS 2.0 手機(jī)開(kāi)發(fā)者 Beta 版已經(jīng)發(fā)布了,作為“1+8+N”戰(zhàn)略的重要入口和生態(tài)核心,怎么能少得了手機(jī)應(yīng)用開(kāi)發(fā)呢?今天將由深鴻會(huì)深大學(xué)習(xí)小組從零基礎(chǔ)開(kāi)發(fā)第一個(gè) HarmonyOS 手機(jī)小游戲——數(shù)字華容道(界面略丑陋,大佬別噴)。

本個(gè) demo 將從零基礎(chǔ)開(kāi)始完成鴻蒙小游戲 APP 在手機(jī)上的編譯在項(xiàng)目中我們所使用到的軟件為 DevEco Studio,下載地址為:

DevEco Studio 下載:
https://developer.harmonyos.com/cn/develop/deveco-studio#download

DevEco Studio 安裝教程:

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/software_install-0000001053582415

在項(xiàng)目中我們要實(shí)現(xiàn)的內(nèi)容為數(shù)字華容道 APP 的開(kāi)發(fā)。

打開(kāi)引用首先為數(shù)字華容道的初始界面,點(diǎn)擊開(kāi)始游戲即會(huì)切換到數(shù)字華容道的游戲界面。

進(jìn)入數(shù)字華容道的游戲界面顯示 4*4 的方陣,方陣中分布有隨意打亂的 1 至 15 的數(shù)字和一個(gè)空白方格。

方陣下方顯示一個(gè)“重新開(kāi)始”的按鈕和一個(gè)“返回”按鈕,點(diǎn)擊“重新開(kāi)始”按鈕即會(huì)重新生成隨意打亂的 1 至 15 的數(shù)字和一個(gè)空白方格的方陣。

點(diǎn)擊“返回”按鈕即會(huì)切換到數(shù)字華容道的初始界面,最下方有四個(gè)指示不同方向箭頭的按鈕,點(diǎn)擊任一按鈕或向上、下、左、右任一方向滑動(dòng),空白方格周?chē)鷮?duì)應(yīng)位置的方格便會(huì)隨之向?qū)?yīng)的方向移動(dòng)一格。

經(jīng)過(guò)若干次滑動(dòng)或點(diǎn)擊后,當(dāng)所有的數(shù)字按順序排列后,則會(huì)彈出游戲成功的界面,再滑動(dòng)或點(diǎn)擊也不會(huì)有任何變化。

01

創(chuàng)建項(xiàng)目

DevEco Studio 下載安裝成功后,打開(kāi) DevEco Studio,點(diǎn)擊左上角的 File,點(diǎn)擊 New,再選擇 New Project,選擇 Phone 選項(xiàng),選擇默認(rèn)的模板(Java 版),然后選擇保存路徑,將文件命名為 MyPhoneApplication(文件名不能出現(xiàn)中文或者特殊字符,否則將無(wú)法成功創(chuàng)建項(xiàng)目文件),最后點(diǎn)擊 Finish。

02

實(shí)現(xiàn)初始界面布局

首先,我們要先實(shí)現(xiàn)數(shù)字華容道的初始界面,點(diǎn)擊開(kāi)始游戲即會(huì)切換到另一個(gè)空白的界面。

先在 entry>src>main>config.json 文件中最下方"launchType": "standard"的后面添加以下代碼。

并且將上方的“l(fā)abel”:“MyPhoneApplication”修改成"label": "數(shù)字華容道",這樣就實(shí)現(xiàn)去掉應(yīng)用上方的標(biāo)題欄和將應(yīng)用名稱(chēng)改為數(shù)字華容道了。

config.json 最下面部分代碼:
"orientation":"unspecified",
"name":"com.example.myphoneapplication.MainAbility",
"icon":"$media:icon",
"description":"$string:mainability_description",
"label":"數(shù)字華容道",
"type":"page",
"launchType":"standard",
"metaData":{
"customizeData":[
{
"name":"hwc-theme",
"value":"androidhwext:style/Theme.Emui.Light.NoTitleBar",
"extra":""
}
]
}

	

先將我們事先準(zhǔn)備好的圖片復(fù)制粘貼到 entry>src>main>resources>base>media 文件夾中(ctrl+c、ctrl+v 復(fù)制粘貼),并且命名為 game,點(diǎn)擊 OK。

在 entry>src>main>resources>base>layout>ability_main.xml 中添加布局。

先將事先存在的 Text 組件刪去,添加 Image 圖片組件,引入我們剛才復(fù)制粘貼的圖片,再添加一個(gè) Button 按鈕組件,加入唯一標(biāo)識(shí)符 id 并配置好其他相應(yīng)的屬性:

<DirectionalLayout
xmlns:ohos="http://schemas.huawei.com/res/ohos"
ohos:height="match_parent"
ohos:width="match_parent"
ohos:orientation="vertical">

<Image
ohos:height="match_parent"
ohos:width="match_parent"
ohos:image_src="$media:game"
ohos:layout_alignment="center"
/>

<Button
ohos:id="$+id:button_game"
ohos:height="150"
ohos:width="515"
ohos:text_alignment="center"
ohos:top_margin="-810"
ohos:left_margin="250"
/>

DirectionalLayout>

在 entry>src>main>java>com.example.myphoneapplication>slice 中右鍵選擇 New>Java Class 增加一個(gè)空白的類(lèi)以用來(lái)后面編寫(xiě)數(shù)字華容道的游戲界面,并且命名為 SecondAbilitySlice。

將 entry>src>main>java>com.example.myphoneapplication>slice>SecondAbilitySlice 中的代碼修改成如下:

packagecom.example.myphoneapplication.slice;

importcom.example.myphoneapplication.ResourceTable;
importohos.aafwk.ability.AbilitySlice;
importohos.aafwk.content.Intent;

publicclassSecondAbilitySliceextendsAbilitySlice{

publicvoidonStart(Intentintent){
super.onStart(intent);

}

@Override
publicvoidonActive(){
super.onActive();
}

@Override
publicvoidonForeground(Intentintent){
super.onForeground(intent);
}
}

	
		④entry>src>main>java>com.example.myphoneapplication>slice>MainAbilitySlice 中的 onStart 函數(shù)中添加一個(gè)按鈕指向我們(2)中添加的按鈕。
		

添加一個(gè)響應(yīng)點(diǎn)擊事件的函數(shù),用 parsent 函數(shù)跳轉(zhuǎn)到 SecondAbilitySlice:

packagecom.example.myphoneapplication.slice;

importcom.example.myphoneapplication.ResourceTable;
importohos.aafwk.content.Intent;
importohos.agp.components.Button;
importohos.agp.components.Component;

publicclassMainAbilitySliceextendsohos.aafwk.ability.AbilitySlice{
@Override
publicvoidonStart(Intentintent){
super.onStart(intent);
super.setUIContent(ResourceTable.Layout_ability_main);

Buttonbutton=(Button)findComponentById(ResourceTable.Id_button_game);
button.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
present(newSecondAbilitySlice(),newIntent());
}
});

}

@Override
publicvoidonActive(){
super.onActive();
}

@Override
publicvoidonForeground(Intentintent){
super.onForeground(intent);
}
}

	

至此,這一部分就完成了。

03

實(shí)現(xiàn)數(shù)字的隨機(jī)打亂

然后我們要在數(shù)字華容道的游戲界面生成隨意打亂的1至15的數(shù)字和一個(gè)空白方格的方陣。

在 entry>src>main>java>com.example.myphoneapplication>slice>SecondAbilitySlice 編寫(xiě)代碼。

先定義個(gè)一個(gè)位置布局 layout 和一個(gè)二維數(shù)組 grids,創(chuàng)建函數(shù) initializeinitialize() 分別對(duì)其初始化,在 onStart 函數(shù)中調(diào)用函數(shù) initializeinitialize():

privatefloatstarX,starY,distanceX,distanceY;
privateDirectionalLayoutlayout;
privateint[][]grids;

publicvoidonStart(Intentintent){
super.onStart(intent);

initialize();
}

publicvoidinitialize(){
layout=newDirectionalLayout(this);
grids=newint[][]{{1,2,3,4},{5,6,7,8,},{9,10,11,12},{13,14,15,0}};
}

然后定義函數(shù) drawGrids(int[][] grids) 用于繪制 4*4 方陣和其二維數(shù)組對(duì)應(yīng)的數(shù)字:

publicvoiddrawGrids(int[][]grids){
layout.setLayoutConfig((newComponentContainer.LayoutConfig(ComponentContainer.LayoutConfig.MATCH_PARENT,ComponentContainer.LayoutConfig.MATCH_PARENT)));

Component.DrawTasktask=newComponent.DrawTask(){
publicvoidonDraw(Componentcomponent,Canvascanvas){
PaintmPaint=newPaint();

mPaint.setColor(Color.GRAY);
RectFloatrect=newRectFloat(2,230,1078,1306);
canvas.drawRect(rect,mPaint);

for(introw=0;row4;row++){
for(intcolumn=0;column4;column++){
mPaint.setColor(Color.CYAN);
RectFloatrectFloat=newRectFloat(22+column*262,250+row*262,272+column*262,500+row*262);
canvas.drawRect(rectFloat,mPaint);

mPaint.setColor(Color.YELLOW);
mPaint.setTextSize(125);
if(grids[row][column]!=0){
if(grids[row][column]<10){
canvas.drawText(mPaint,String.valueOf(grids[row][column]),105+column*262,425+row*262);
}
else{
canvas.drawText(mPaint,String.valueOf(grids[row][column]),65+column*262,425+row*262);
}
}
}
}
}
};
layout.addDrawTask(task);
setUIContent(layout);
}

再定義函數(shù) changeGrids(int[][] grids,int direction),每次接收一個(gè)方向,2 表示上移,-1 表示左移,1 表示右移,-2 表示下移,找出空白方格所在位置對(duì)應(yīng)的二維數(shù)組下標(biāo),對(duì)應(yīng)的方格和空白方格對(duì)應(yīng)的二維數(shù)組的數(shù)值對(duì)調(diào):

publicvoidchangeGrids(int[][]grids,intdirection){
introw_0=3;
intcolumn_0=3;
inttemp;
for(introw=0;row4;row++){
for(intcolumn=0;column4;column++){
if(grids[row][column]==0){
row_0=row;
column_0=column;
}
}
}
if(direction==-1&&(column_0+1)<=?3){
temp=grids[row_0][column_0+1];
grids[row_0][column_0+1]=grids[row_0][column_0];
grids[row_0][column_0]=temp;
}elseif(direction==1&&(column_0-1)>=0){
temp=grids[row_0][column_0-1];
grids[row_0][column_0-1]=grids[row_0][column_0];
grids[row_0][column_0]=temp;
}elseif(direction==2&&(row_0+1)<=3){
temp=grids[row_0+1][column_0];
grids[row_0+1][column_0]=grids[row_0][column_0];
grids[row_0][column_0]=temp;
}elseif(direction==-2&&(row_0-1)>=0){
temp=grids[row_0-1][column_0];
grids[row_0-1][column_0]=grids[row_0][column_0];
grids[row_0][column_0]=temp;
}
}

定義函數(shù) createGrids(int[][] grids) 用于隨機(jī)生成一個(gè)表示方向的數(shù)字,循環(huán)調(diào)用函數(shù) changeGrids(grids,direction) 用于隨機(jī)打亂二維數(shù)組對(duì)應(yīng)的數(shù)字:

publicvoidcreateGrids(int[][]grids){
int[]array={-1,-2,1,2};

for(inti=0;i100;i++){
intrandom=(int)Math.floor(Math.random()*4);
intdirection=array[random];
changeGrids(grids,direction);
}
}

最后在 initialize() 函數(shù)中調(diào)用 createGrids(grids) 函數(shù)和 drawGrids(grids) 函數(shù):

publicvoidinitialize(){
layout=newDirectionalLayout(this);
grids=newint[][]{{1,2,3,4},{5,6,7,8,},{9,10,11,12},{13,14,15,0}};
createGrids(grids);
drawGrids(grids);
}

至此,這一部分完成了。

04

實(shí)現(xiàn)滑動(dòng)或點(diǎn)擊調(diào)換數(shù)字

添加“重新開(kāi)始”和“返回”按鈕,在最下方添加四個(gè)指示不同方向箭頭的按鈕,點(diǎn)擊任一按鈕或向上、下、左、右任一方向滑動(dòng),空白方格周?chē)鷮?duì)應(yīng)位置的方格便會(huì)隨之向?qū)?yīng)的方向移動(dòng)一格。

在 entry>src>main>java>com.example.myphoneapplication>slice>SecondAbilitySlice 編寫(xiě)代碼。

先定義一個(gè)函數(shù) drawButton() 用于繪制所有的按鈕,四個(gè)指示不同方向箭頭的按鈕分別添加四個(gè)響應(yīng)點(diǎn)擊事件的函數(shù)。

分別調(diào)用對(duì)應(yīng)的 changeGrids(grids,direction) 函數(shù)實(shí)現(xiàn)空白方格周?chē)鷮?duì)應(yīng)位置的方格便會(huì)隨之向?qū)?yīng)的方向移動(dòng)一格,并調(diào)用 drawGrids(grids) 函數(shù)用于繪制新的方陣:
publicvoiddrawButton(){

Buttonbutton=newButton(this);
button.setText("重新開(kāi)始");
button.setTextSize(100);
button.setTextAlignment(TextAlignment.CENTER);
button.setTextColor(Color.WHITE);
button.setMarginTop(1400);
button.setMarginLeft(80);
button.setPadding(20,20,20,20);
ShapeElementbackground=newShapeElement();
background.setRgbColor(newRgbColor(174,158,143));
background.setCornerRadius(100);
button.setBackground(background);
layout.addComponent(button);

Buttonbutton0=newButton(this);
button0.setText("返回");
button0.setTextSize(100);
button0.setTextAlignment(TextAlignment.CENTER);
button0.setTextColor(Color.WHITE);
button0.setMarginTop(-170);
button0.setMarginLeft(680);
button0.setPadding(20,20,20,20);
button0.setBackground(background);
layout.addComponent(button0);


ShapeElementbackground0=newShapeElement();
background0.setRgbColor(newRgbColor(174,158,143));
background0.setCornerRadius(100);

Buttonbutton1=newButton(this);
button1.setText("↑");
button1.setTextAlignment(TextAlignment.CENTER);
button1.setTextColor(Color.WHITE);
button1.setTextSize(100);
button1.setMarginLeft(500);
button1.setMarginTop(70);
button1.setPadding(10,0,10,0);
button1.setBackground(background0);
button1.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
changeGrids(grids,2);
}
});
layout.addComponent(button1);

Buttonbutton2=newButton(this);
button2.setText("←");
button2.setTextAlignment(TextAlignment.CENTER);
button2.setTextColor(Color.WHITE);
button2.setTextSize(100);
button2.setMarginTop(10);
button2.setMarginLeft(400);
button2.setPadding(10,0,10,0);
button2.setBackground(background0);
button2.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
changeGrids(grids,-1);
}
});
layout.addComponent(button2);

Buttonbutton3=newButton(this);
button3.setText("→");
button3.setTextAlignment(TextAlignment.CENTER);
button3.setTextColor(Color.WHITE);
button3.setTextSize(100);
button3.setMarginLeft(600);
button3.setMarginTop(-130);
button3.setPadding(10,0,10,0);
button3.setBackground(background0);
button3.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
changeGrids(grids,1);
}
});
layout.addComponent(button3);

Buttonbutton4=newButton(this);
button4.setText("↓");
button4.setTextAlignment(TextAlignment.CENTER);
button4.setTextColor(Color.WHITE);
button4.setTextSize(100);
button4.setMarginLeft(500);
button4.setMarginTop(10);
button4.setPadding(10,0,10,0);
button4.setBackground(background0);
button4.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
changeGrids(grids,-2);
}
});
layout.addComponent(button4);

drawGrids(grids);
}

然后添加一個(gè)函數(shù) slideGrids() 為布局 layout 添加一個(gè)滑動(dòng)事件,并獲取滑動(dòng)開(kāi)始與結(jié)束的坐標(biāo),并計(jì)算出大致的滑動(dòng)方向,分別調(diào)用對(duì)應(yīng)的 changeGrids(grids,direction) 函數(shù)實(shí)現(xiàn)空白方格周?chē)鷮?duì)應(yīng)位置的方格便會(huì)隨之向?qū)?yīng)的方向移動(dòng)一格,并調(diào)用 drawGrids(grids) 函數(shù)用于繪制新的方陣,并在開(kāi)頭添加相應(yīng)的變量:

privatefloatstarX,starY,distanceX,distanceY;

publicvoidslideGrids(){
layout.setTouchEventListener(newComponent.TouchEventListener(){
@Override
publicbooleanonTouchEvent(Componentcomponent,TouchEventtouchEvent){
MmiPointpoint=touchEvent.getPointerScreenPosition(0);

switch(touchEvent.getAction()){
caseTouchEvent.PRIMARY_POINT_DOWN:
starX=point.getX();
starY=point.getY();
break;
caseTouchEvent.PRIMARY_POINT_UP:
distanceX=point.getX()-starX;
distanceY=point.getY()-starY;
break;
}
if(gameover()==false){
if(Math.abs(distanceX)>Math.abs(distanceY)){
if(distanceX>200){
changeGrids(grids,1);
}elseif(distanceX-200){
changeGrids(grids,-1);

}
}elseif(Math.abs(distanceX)abs(distanceY)){
if(distanceY>200){
changeGrids(grids,-2);
}elseif(distanceY-200){
changeGrids(grids,2);
}
}
}
drawGrids(grids);

returnfalse;
}
});
}

最后在 initialize() 函數(shù)中調(diào)用 slideGrids() 函數(shù)和 drawButton() 函數(shù):

publicvoidinitialize(){
layout=newDirectionalLayout(this);
grids=newint[][]{{1,2,3,4},{5,6,7,8,},{9,10,11,12},{13,14,15,0}};
createGrids(grids);
slideGrids();
drawButton();
drawGrids(grids);
}

至此,這一部分完成了

05

實(shí)現(xiàn)游戲成功界面

點(diǎn)擊“重新開(kāi)始”按鈕即會(huì)重新生成隨意打亂的 1 至 15 的數(shù)字和一個(gè)空白方格的方陣,點(diǎn)擊“返回”按鈕即會(huì)切換到數(shù)字華容道的初始界面,經(jīng)過(guò)若干次滑動(dòng)或點(diǎn)擊后,當(dāng)所有的數(shù)字按順序排列后,則會(huì)彈出游戲成功的界面,再滑動(dòng)或點(diǎn)擊也不會(huì)有任何變化。

在 entry>src>main>java>com.example.myphoneapplication>slice>SecondAbilitySlice 編寫(xiě)代碼。

首先定義一個(gè)函數(shù) drawText() 用于繪制游戲成功字樣:

publicvoiddrawText(){
Texttext=newText(this);
text.setText("游戲成功");
text.setTextSize(100);
text.setTextColor(Color.BLUE);
text.setTextAlignment(TextAlignment.CENTER);
text.setMarginsTopAndBottom(-2000,0);
text.setMarginsLeftAndRight(350,0);
layout.addComponent(text);
setUIContent(layout);

}

然后定義一個(gè)函數(shù) gameover() 用于判斷二維數(shù)組的數(shù)字是否按順序排列,當(dāng)二維數(shù)組的數(shù)字按順序排列時(shí)返回 true,否則返回 false:

publicbooleangameover(){
int[][]gameoverGrids={{1,2,3,4},{5,6,7,8,},{9,10,11,12},{13,14,15,0}};
for(introw=0;row4;row++){
for(intcolumn=0;column4;column++){
if(grids[row][column]!=gameoverGrids[row][column]){
returnfalse;
}
}
}

returntrue;
}

再在 drawButton() 函數(shù)中重新開(kāi)始按鈕中添加一個(gè)響應(yīng)點(diǎn)擊事件的函數(shù),用于調(diào)用函數(shù) initialize() 實(shí)現(xiàn)重新生成隨意打亂的 1 至 15 的數(shù)字和一個(gè)空白方格的方陣,返回按鈕中添加一個(gè)響應(yīng)點(diǎn)擊事件的函數(shù),用 parsen 函數(shù)返回?cái)?shù)字華容道的初始界面,四個(gè)指示不同方向箭頭的按鈕的響應(yīng)點(diǎn)擊事件的函數(shù)中增加一個(gè)判斷,當(dāng)函數(shù) gameover() 返回為 false 時(shí)才調(diào)用各自的 changeGrids(grids,direction) 函數(shù),最后增加一個(gè)判斷,當(dāng)函數(shù) gameover() 返回為 true 時(shí)調(diào)用函數(shù) drawText():

publicvoiddrawButton(){//部分代碼沒(méi)有貼出,可自行下載源代碼查看

button.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
initialize();
}
});

button0.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
present(newSecondAbilitySlice(),newIntent());
}
});

button1.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
if(gameover()==false){
changeGrids(grids,2);
}
}
});

button2.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
if(gameover()==false){
changeGrids(grids,-1);
}
}
});

button3.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
if(gameover()==false){
changeGrids(grids,1);
}
}
});

button4.setClickedListener(newComponent.ClickedListener(){
@Override
publicvoidonClick(Componentcomponent){
if(gameover()==false){
changeGrids(grids,-2);
}
}
});

if(gameover()){
drawText();
}
}

在函數(shù) slideGrids() 函數(shù)中增加一個(gè)判斷,當(dāng)函數(shù) gameover() 返回為 false 時(shí)才調(diào)用 changeGrids(grids,direction) 函數(shù),最后增加一個(gè)判斷,當(dāng)函數(shù) gameover() 返回為 true 時(shí)調(diào)用函數(shù) drawText():

publicvoidslideGrids(){//部分代碼沒(méi)有貼出,可自行下載源代碼查看
if(gameover()==false){
//{...}
}
if(gameover()){
drawText();
}
}

至此,整個(gè) demo 全部完成了。

06

結(jié)語(yǔ)

以上就是數(shù)字華容道小游戲在手機(jī)的主要編寫(xiě)思路以及代碼,源碼將放在附件中,歡迎大家下載,感興趣的讀者可以自行跟著編寫(xiě)學(xué)習(xí),相信你們也能夠完成的。

此前已經(jīng)在運(yùn)動(dòng)手表上成功開(kāi)發(fā)了:HarmonyOS 運(yùn)動(dòng)手表游戲合并、HarmonyOS 手表游戲——數(shù)字華容道,同樣是深鴻會(huì)深大小組學(xué)習(xí)完 HarmonyOS 后自行開(kāi)發(fā)的一個(gè)鴻蒙 demo,詳細(xì)講述了數(shù)字華容道在鴻蒙手機(jī)上開(kāi)發(fā)思路。

深鴻會(huì)深大學(xué)習(xí)小組是一群熱衷于學(xué)習(xí)鴻蒙相關(guān)知識(shí)和開(kāi)發(fā)鴻蒙相關(guān)應(yīng)用的開(kāi)發(fā)者們,我們的學(xué)習(xí)項(xiàng)目為:荔園 Harmony、Awesome-HarmonyOS_木棉花,同時(shí)也歡迎與各位感興趣的讀者一起學(xué)習(xí) HarmonyOS 開(kāi)發(fā),相互交流、共同進(jìn)步。

責(zé)任編輯:xj

原文標(biāo)題:我的第一個(gè)鴻蒙手機(jī)小游戲?。ǜ皆创a)

文章出處:【微信公眾號(hào):HarmonyOS技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。


聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 手機(jī)游戲
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    9127
  • 鴻蒙系統(tǒng)
    +關(guān)注

    關(guān)注

    183

    文章

    2642

    瀏覽量

    69605
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3944

    瀏覽量

    20916

原文標(biāo)題:我的第一個(gè)鴻蒙手機(jī)小游戲?。ǜ皆创a)

文章出處:【微信號(hào):gh_834c4b3d87fe,微信公眾號(hào):OpenHarmony技術(shù)社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    與AI助手的那些事兒:個(gè)小老板的數(shù)字化轉(zhuǎn)型日記

    本文記錄了——個(gè)傳統(tǒng)行業(yè)小老板,如何從對(duì)AI竅不通,到成為Flexus AI智能體重度用戶的心路歷程。希望能給同樣在數(shù)字化轉(zhuǎn)型路上摸索
    的頭像 發(fā)表于 12-18 13:42 ?160次閱讀

    鴻蒙系統(tǒng)對(duì)手機(jī)市場(chǎng)會(huì)產(chǎn)生怎樣的影響?現(xiàn)在汽車(chē)是不是也用上鴻蒙系統(tǒng)了?

    鴻蒙系統(tǒng)對(duì)手機(jī)市場(chǎng)會(huì)產(chǎn)生怎樣的影響?現(xiàn)在汽車(chē)是不是也用上鴻蒙系統(tǒng)了?
    發(fā)表于 12-04 20:47

    Linux 下交叉編譯實(shí)戰(zhàn):跑起來(lái)你的第一個(gè) STM32 程序

    跑起來(lái)你的第一個(gè)STM32程序。、準(zhǔn)備工作在開(kāi)始之前,需要準(zhǔn)備:1、Linux開(kāi)發(fā)環(huán)境Ubuntu、Debian或其他主流發(fā)行版都可以。2、ARMGCC交叉編譯工具
    的頭像 發(fā)表于 11-24 19:04 ?612次閱讀
    Linux 下交叉編譯實(shí)戰(zhàn):跑起來(lái)你的<b class='flag-5'>第一個(gè)</b> STM32 程序

    **CW32L012****開(kāi)發(fā)評(píng)估板的第一個(gè)程序**

    CW32L012****開(kāi)發(fā)評(píng)估板的第一個(gè)程序 最近以15.99在CW32生態(tài)社區(qū)入手了這塊CW32L012開(kāi)發(fā)評(píng)估板,迫不及待的燒錄進(jìn)電燈程序,看看這塊板子是否是正常的,能否滿足后面的學(xué)習(xí)
    發(fā)表于 11-22 00:09

    DIY 流體模擬吊墜():理論與第一個(gè)吊墜的制作

    件能夠?qū)崟r(shí)運(yùn)行 FLIP 流體模擬的手工珠寶。外殼鍍金,顯示屏由片表鏡保護(hù)。 觀看以下視頻,您可以了解整個(gè)設(shè)計(jì)與制作過(guò)程: 簡(jiǎn)介 直想實(shí)現(xiàn)
    的頭像 發(fā)表于 09-07 17:49 ?2435次閱讀
    DIY 流體模擬吊墜(<b class='flag-5'>一</b>):理論與<b class='flag-5'>第一個(gè)</b>吊墜的制作

    termux調(diào)試python猜數(shù)字游戲

    用termux做一個(gè)數(shù)字游戲 下面是在Termux中創(chuàng)建猜數(shù)字游戲的步驟及完整實(shí)現(xiàn)方案,結(jié)合Python實(shí)現(xiàn)(最適配Termux環(huán)境
    發(fā)表于 08-29 17:15

    造了臺(tái)‘迷你 Switch’,還能自己寫(xiě)游戲!

    打造臺(tái)“掌上游戲機(jī)”?簡(jiǎn)單到你意想不到!提到掌上游戲機(jī),大家的第一反應(yīng)可能是——Switch:經(jīng)典耐玩,但價(jià)格不友好。SteamDeck:性能怪獸,但錢(qián)包會(huì)哭泣。這些設(shè)備
    的頭像 發(fā)表于 08-12 18:05 ?572次閱讀
    <b class='flag-5'>我</b>造了<b class='flag-5'>一</b>臺(tái)‘迷你 Switch’,還能自己寫(xiě)<b class='flag-5'>游戲</b>!

    開(kāi)源鴻蒙圖形與游戲分論壇圓滿舉辦

    近日,開(kāi)源鴻蒙開(kāi)發(fā)者大會(huì)2025(OHDC.2025)圖形與游戲分論壇在深圳圓滿舉辦。本次分論壇由開(kāi)源鴻蒙圖形SIG & 游戲SIG組組長(zhǎng)、華為終端BG圖形TMG主任黃然,以及開(kāi)源
    的頭像 發(fā)表于 06-05 15:30 ?1199次閱讀

    鴻蒙5開(kāi)發(fā)寶藏案例分享---多開(kāi)發(fā)實(shí)例(游戲

    ?【開(kāi)發(fā)者必看】鴻蒙隱藏寶箱大公開(kāi)!這些實(shí)戰(zhàn)案例讓你的開(kāi)發(fā)效率翻倍! 哈嘍各位開(kāi)發(fā)者小伙伴!今天要和大家分享個(gè)拍大腿的發(fā)現(xiàn)——原來(lái)鴻蒙
    發(fā)表于 06-03 18:22

    HRTIM變頻控制輸出的第一個(gè)周期頻率異常的原因?

    在使用STM32G474CBT6的HRTIM_Mater、HRTIM_TIMER_B和HRTIM_TIMER_D輸出同步互補(bǔ)的四路輸出時(shí),關(guān)閉4路輸出和三個(gè)定時(shí)器的計(jì)數(shù)后,再次開(kāi)啟時(shí)第一個(gè)周期的頻率
    發(fā)表于 04-25 06:17

    文教你構(gòu)建第一個(gè)應(yīng)用程序

    構(gòu)建第一個(gè)應(yīng)用程序 創(chuàng)建個(gè)新工程 步驟 1通過(guò)如下兩種方式,打開(kāi)工程創(chuàng)建向?qū)Ы缑妗? 如果當(dāng)前未打開(kāi)任何工程,可以在 DevEco Studio 的歡迎頁(yè),選擇“Projects &
    發(fā)表于 04-24 06:41

    HRTIM變頻控制輸出的第一個(gè)周期頻率異常的原因?

    在使用STM32G474CBT6的HRTIM_Mater、HRTIM_TIMER_B和HRTIM_TIMER_D輸出同步互補(bǔ)的四路輸出時(shí),關(guān)閉4路輸出和三個(gè)定時(shí)器的計(jì)數(shù)后,再次開(kāi)啟時(shí)第一個(gè)周期的頻率
    發(fā)表于 04-22 12:08

    全鏈路賦能游戲鴻蒙化適配,鴻蒙游戲開(kāi)發(fā)者服務(wù)煥新升級(jí)

    3月14日,華為游戲中心在成都開(kāi)展了鴻蒙游戲開(kāi)發(fā)者服務(wù)日線下活動(dòng)。本次活動(dòng)吸引了百余位游戲廠商代表以及開(kāi)發(fā)者參與。華為線技術(shù)專(zhuān)家團(tuán)隊(duì)與眾多
    的頭像 發(fā)表于 03-17 09:25 ?927次閱讀
    全鏈路賦能<b class='flag-5'>游戲</b><b class='flag-5'>鴻蒙</b>化適配,<b class='flag-5'>鴻蒙</b><b class='flag-5'>游戲</b>開(kāi)發(fā)者服務(wù)煥新升級(jí)

    共創(chuàng)開(kāi)源鴻蒙生態(tài)新未來(lái)!深天使開(kāi)源鴻蒙產(chǎn)業(yè)加速營(yíng)暨開(kāi)鴻第一課成功舉辦

    近日,由深圳市天使投資引導(dǎo)基金管理有限公司(簡(jiǎn)稱(chēng)“深天使”)、深圳市天使投資協(xié)會(huì)、深圳開(kāi)鴻數(shù)字產(chǎn)業(yè)發(fā)展有限公司(簡(jiǎn)稱(chēng)“深開(kāi)鴻”)聯(lián)合主辦的“深天使開(kāi)源鴻蒙產(chǎn)業(yè)加速營(yíng)暨開(kāi)鴻第一課”在深圳舉行。本次活動(dòng)
    的頭像 發(fā)表于 03-03 17:41 ?1599次閱讀
    共創(chuàng)開(kāi)源<b class='flag-5'>鴻蒙</b>生態(tài)新未來(lái)!深天使開(kāi)源<b class='flag-5'>鴻蒙</b>產(chǎn)業(yè)加速營(yíng)暨開(kāi)鴻<b class='flag-5'>第一</b>課成功舉辦

    如何安裝模擬器玩nes小游戲-基于米爾瑞芯微RK3576開(kāi)發(fā)板

    本篇源自:優(yōu)秀創(chuàng)作者 小手涼涼本文將介紹基于米爾電子MYD-LR3576開(kāi)發(fā)板(米爾基于瑞芯微 RK3576開(kāi)發(fā)板)的安裝模擬器玩nes小游戲方案測(cè)試。 核心板系統(tǒng) 操作系統(tǒng)鏡像文件說(shuō)明
    發(fā)表于 02-08 12:10