WeChat アプレットで実装されたスネーク ゲーム [ソース コード付き]
この記事では、主に WeChat アプレットによって実装されたスネーク ゲームを紹介し、関連するインターフェイス レイアウトと WeChat アプレットのコード ロジック操作スキルを分析して、サンプルの形式でスネーク ゲーム機能を実装します。また、読者向けのソース コードも付属しています。参考用にダウンロードしてください。友人はそれを参照できます
この記事では、WeChat アプレットによって実装された Snake ゲームを例として説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
最初にランニング効果を見てみましょう:
具体的なコードは次のとおりです:
インターフェイス レイアウト ページ/snake/snake/snake。 wxml:
<!--snake.wxml--> <view class="control" bindtouchstart="tapStart" bindtouchmove="tapMove" bindtouchend="tapEnd"> <view class="score"> <view class="title">snake</view> <view class="scoredetail"> <view class="scoredesc">得分</view> <view class="scorenumber">{{score}}</view> </view> <view class="scoredetail"> <view class="scoredesc">历史最高</view> <view class="scorenumber">{{maxscore}}</view> </view> </view> <view class="ground"> <view wx:for="{{ground}}" class="rows" wx:for-item="cols"> <view wx:for="{{cols}}" class="block block_{{item}}" > </view> </view> </view> <modal class="modal" hidden="{{modalHidden}}" no-cancel bindconfirm="modalChange"> <view> 游戏结束,重新开始吗? </view> </modal> </view>
Logic function Pages/snake /snake/snake.js:
//snake.js var app = getApp(); Page({ data:{ score: 0,//比分 maxscore: 0,//最高分 startx: 0, starty: 0, endx:0, endy:0,//以上四个做方向判断来用 ground:[],//存储操场每个方块 rows:28, cols:22,//操场大小 snake:[],//存蛇 food:[],//存食物 direction:'',//方向 modalHidden: true, timer:'' } , onLoad:function(){ var maxscore = wx.getStorageSync('maxscore'); if(!maxscore) maxscore = 0 this.setData({ maxscore:maxscore }); this.initGround(this.data.rows,this.data.cols);//初始化操场 this.initSnake(3);//初始化蛇 this.creatFood();//初始化食物 this.move();//蛇移动 }, //计分器 storeScore:function(){ if(this.data.maxscore < this.data.score){ this.setData({ maxscore:this.data.score }) wx.setStorageSync('maxscore', this.data.maxscore) } }, //操场 initGround:function(rows,cols){ for(var i=0;i<rows;i++){ var arr=[]; this.data.ground.push(arr); for(var j=0;j<cols;j++){ this.data.ground[i].push(0); } } }, //蛇 initSnake:function(len){ for(var i=0;i<len;i++){ this.data.ground[0][i]=1; this.data.snake.push([0,i]); } }, //移动函数 move:function(){ var that=this; this.data.timer=setInterval(function(){ that.changeDirection(that.data.direction); that.setData({ ground:that.data.ground }); },400); }, tapStart: function(event){ this.setData({ startx: event.touches[0].pageX, starty: event.touches[0].pageY }) }, tapMove: function(event){ this.setData({ endx: event.touches[0].pageX, endy: event.touches[0].pageY }) }, tapEnd: function(event){ var heng = (this.data.endx) ? (this.data.endx - this.data.startx) : 0; var shu = (this.data.endy) ? (this.data.endy - this.data.starty) : 0; if(Math.abs(heng) > 5 || Math.abs(shu) > 5){ var direction = (Math.abs(heng) > Math.abs(shu)) ? this.computeDir(1, heng):this.computeDir(0, shu); switch(direction){ case 'left': if(this.data.direction=='right')return; break; case 'right': if(this.data.direction=='left')return; break; case 'top': if(this.data.direction=='bottom')return; break; case 'bottom': if(this.data.direction=='top')return; break; default: } this.setData({ startx:0, starty:0, endx:0, endy:0, direction:direction }) } }, computeDir: function(heng, num){ if(heng) return (num > 0) ? 'right' : 'left'; return (num > 0) ? 'bottom' : 'top'; }, creatFood:function(){ var x=Math.floor(Math.random()*this.data.rows); var y=Math.floor(Math.random()*this.data.cols); var ground= this.data.ground; ground[x][y]=2; this.setData({ ground:ground, food:[x,y] }); }, changeDirection:function(dir){ switch(dir){ case 'left': return this.changeLeft(); break; case 'right': return this.changeRight(); break; case 'top': return this.changeTop(); break; case 'bottom': return this.changeBottom(); break; default: } }, changeLeft:function(){ var arr=this.data.snake; var len=this.data.snake.length; var snakeHEAD=arr[len-1][1]; var snakeTAIL=arr[0]; var ground=this.data.ground; ground[snakeTAIL[0]][snakeTAIL[1]]=0; for(var i=0;i<len-1;i++){ arr[i]=arr[i+1]; }; var x=arr[len-1][0]; var y=arr[len-1][1]-1; arr[len-1]=[x,y]; this.checkGame(snakeTAIL); for(var i=1;i<len;i++){ ground[arr[i][0]][arr[i][1]]=1; } this.setData({ ground:ground, snake:arr }); return true; }, changeRight:function(){ var arr=this.data.snake; var len=this.data.snake.length; var snakeHEAD=arr[len-1][1]; var snakeTAIL=arr[0]; var ground=this.data.ground; ground[snakeTAIL[0]][snakeTAIL[1]]=0; for(var i=0;i<len-1;i++){ arr[i]=arr[i+1]; }; var x=arr[len-1][0]; var y=arr[len-1][1]+1; arr[len-1]=[x,y]; this.checkGame(snakeTAIL); for(var i=1;i<len;i++){ ground[arr[i][0]][arr[i][1]]=1; } this.setData({ ground:ground, snake:arr }); // var y=this.data.snake[0][1]; // var x=this.data.snake[0][0]; // this.data.ground[x][y]=0; // console.log(this.data.ground[x]); // console.log(this.data.snake); // for(var i=0;i<this.data.snake.length-1;i++){ // this.data.snake[i]=this.data.snake[i+1]; // } // this.data.snake[this.data.snake.length-1][1]++; // for(var j=1;j<this.data.snake.length;j++){ // this.data.ground[this.data.snake[j][0]][this.data.snake[j][1]]=1; // } return true; }, changeTop:function(){ var arr=this.data.snake; var len=this.data.snake.length; var snakeHEAD=arr[len-1][1]; var snakeTAIL=arr[0]; var ground=this.data.ground; ground[snakeTAIL[0]][snakeTAIL[1]]=0; for(var i=0;i<len-1;i++){ arr[i]=arr[i+1]; }; var x=arr[len-1][0]-1; var y=arr[len-1][1]; arr[len-1]=[x,y]; this.checkGame(snakeTAIL); for(var i=1;i<len;i++){ ground[arr[i][0]][arr[i][1]]=1; } this.setData({ ground:ground, snake:arr }); return true; }, changeBottom:function(){ var arr=this.data.snake; var len=this.data.snake.length; var snakeHEAD=arr[len-1]; var snakeTAIL=arr[0]; var ground=this.data.ground; ground[snakeTAIL[0]][snakeTAIL[1]]=0; for(var i=0;i<len-1;i++){ arr[i]=arr[i+1]; }; var x=arr[len-1][0]+1; var y=arr[len-1][1]; arr[len-1]=[x,y]; this.checkGame(snakeTAIL); for(var i=1;i<len;i++){ ground[arr[i][0]][arr[i][1]]=1; } this.setData({ ground:ground, snake:arr }); return true; }, checkGame:function(snakeTAIL){ var arr=this.data.snake; var len=this.data.snake.length; var snakeHEAD=arr[len-1]; if(snakeHEAD[0]<0||snakeHEAD[0]>=this.data.rows||snakeHEAD[1]>=this.data.cols||snakeHEAD[1]<0){ clearInterval(this.data.timer); this.setData({ modalHidden: false, }) } for(var i=0;i<len-1;i++){ if(arr[i][0]==snakeHEAD[0]&&arr[i][1]==snakeHEAD[1]){ clearInterval(this.data.timer); this.setData({ modalHidden: false, }) } } if(snakeHEAD[0]==this.data.food[0]&&snakeHEAD[1]==this.data.food[1]){ arr.unshift(snakeTAIL); this.setData({ score:this.data.score+10 }); this.storeScore(); this.creatFood(); } }, modalChange:function(){ this.setData({ score: 0, ground:[], snake:[], food:[], modalHidden: true, direction:'' }) this.onLoad(); } });
以上がこの記事の全内容です。その他の関連コンテンツについては、こちらをご覧ください。 PHPの中国語サイトです!
関連する推奨事項:
WeChat アプレットで複数のファイルをダウンロードするためのシンプルなパッケージ
WeChat アプレットに Meituan メニューを実装する方法
以上がWeChat アプレットで実装されたスネーク ゲーム [ソース コード付き]の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

ゲームは多くのリソースを消費するため、コンピューターの速度が低下するのが一般的です。ゲーム時の CPU 使用率を理解し、過負荷を避けることが重要です。したがって、適切な CPU 使用率を追跡することが、ゲーム体験をスムーズに保つための鍵となります。この記事では、ゲームの実行中に達成すべき適切な CPU 使用率について説明します。ゲーム中の CPU 使用率 CPU 使用率はプロセッサのワークロードの重要な指標であり、CPU のパフォーマンス仕様に依存します。一般に、より強力な CPU ほど使用率が高くなります。より多くのコアとスレッドを備えた CPU は、システム全体のパフォーマンスを向上させることができます。マルチスレッドのサポートは、CPU の潜在能力を最大限に引き出すのに役立ちます。ゲームでは、CPU 使用率はプロセッサー使用率に依存し、ゲームに影響を与える可能性があります。

Nvgpucomp64.dll が原因でゲームが頻繁にクラッシュする場合は、ここで提供される解決策が役立つ可能性があります。この問題は通常、グラフィック カード ドライバーが古いか破損していること、ゲーム ファイルが破損していることなどが原因で発生します。これらの問題を修正すると、ゲームのクラッシュに対処するのに役立ちます。 Nvgpucomp64.dll ファイルは、NVIDIA グラフィックス カードに関連付けられています。このファイルがクラッシュすると、ゲームもクラッシュします。これは通常、LordsofttheFallen、LiesofP、RocketLeague、ApexLegends などのゲームで発生します。 N の場合、Nvgpucomp64.dll が Windows PC 上のゲームをクラッシュさせる

ほぼすべてのゲームがオンラインになっている今日の状況では、ホーム ネットワークの最適化を無視することはお勧めできません。ほぼすべてのルーターには、ユーザーのゲーム体験を向上させるために設計された NATBoost および QoS 機能が装備されています。この記事では、NATBoost と QoS の定義、利点、欠点について説明します。ゲームの NATBoost と Qos、どちらが優れていますか? NATBoost は、ネットワーク アドレス変換ブーストとも呼ばれ、ルーターのパフォーマンスを向上させるためにルーターに組み込まれている機能です。これは、ゲーム デバイスとサーバーの間でデータが転送されるのにかかる時間であるネットワーク遅延を短縮するのに役立つため、ゲームにとって特に重要です。 NATBoostはルーター内のデータ処理方式を最適化することで、データ処理速度の高速化と遅延の低減を実現し、

2 月 23 日のこの Web サイトのニュースによると、NVIDIA は昨夜 NVIDIA アプリケーションを更新してリリースし、プレイヤーに新しい統合 GPU コントロール センターを提供し、プレイヤーはゲーム内フローティングによって提供される強力な記録ツールを通じて素晴らしい瞬間をキャプチャできるようになりました。窓。このアップデートでは、NVIDIA も RTXHDR 機能を導入しました。公式の紹介文はこのサイトに添付されています: RTXHDR は、ハイ ダイナミック レンジ (HDR) のゴージャスな視覚効果をゲームにシームレスに導入できる、AI を活用した新しいフリースタイル フィルターです。もともとHDRをサポートしています。この機能をさまざまな DirectX および Vulkan ベースのゲームで使用するには、HDR 互換モニターが必要です。プレーヤーが RTXHDR 機能を有効にすると、HD をサポートしていなくてもゲームが実行されます。

superpeople ゲームは、steam クライアントを通じてダウンロードできます。このゲームのサイズは約 28G です。ダウンロードとインストールには通常 1 時間半かかります。ここでは、具体的なダウンロードとインストールのチュートリアルを紹介します。グローバルクローズドテストへの新しい申請方法 1) Steamストア(Steamクライアントダウンロード)で「SUPERPEOPLE」を検索 2) 「SUPERPEOPLE」ストアページ下部にある「SUPERPEOPLEクローズドテストへのアクセスをリクエスト」をクリック 3) request accessボタン、Steamライブラリで「SUPERPEOPLECBT」ゲームが確認できます 4)「SUPERPEOPLECBT」内のインストールボタンをクリックしてダウンロード

AAA の傑作やモバイル ゲームを十分にプレイした友人の皆さん、子供の頃のコンピューター ゲームを追体験してみませんか?それでは、Windows 11 のスパイダー ソリティアを一緒に探してみましょう!インターフェイスの [スタート] メニューをクリックし、[すべてのアプリ] ボタンをクリックし、[すべてのアプリ] をクリックします。 Microsoft のソリティア シリーズ ゲーム アプリケーションである「MicrosoftSolitaireCollection」を見つけて選択します; ソリティア シリーズ ゲームの選択。ロードが完了したら、選択インターフェイスに入り、「スパイダー ソリティア」を見つけて、「スパイダー ソリティア」を選択します。インターフェースは若干変更されていますが、以前と同じです。

Xianyu の公式 WeChat ミニ プログラムが静かに開始されました。ミニ プログラムでは、プライベート メッセージを投稿して購入者/販売者とコミュニケーションしたり、個人情報や注文を表示したり、商品を検索したりすることができます。プログラム、見てみましょう。 Xianyu WeChat アプレットの名前は何ですか? 回答: Xianyu、アイドル取引、中古品販売、評価、リサイクル。 1. ミニ プログラムでは、アイドル メッセージの投稿、プライベート メッセージを介した購入者/販売者とのコミュニケーション、個人情報と注文の表示、指定された商品の検索などができます。 2. ミニ プログラム ページには、ホームページ、近くに、アイドル投稿、メッセージ投稿、私の投稿 5つの機能; 3. 使用したい場合は、購入する前に WeChat 支払いを有効にする必要があります。
![Thrustmaster コントロール パネルが動作しない、または正しく表示されない [修正済み]](https://img.php.cn/upload/article/000/887/227/170831073283375.jpg?x-oss-process=image/resize,m_fill,h_207,w_330)
Thrustmaster は、ゲーム ホイールやその他のゲーム アクセサリの製造を専門とする会社で、そのホイール製品はゲーム コミュニティで非常に人気があります。 Thrustmaster ホイール設定は、Thrustmaster コントロール パネルを使用してインストールおよび調整できます。コントロール パネルが動作しない、または表示されないという問題が発生した場合、ゲーム体験に影響を与える可能性があります。したがって、この問題が発生した場合は、接続が正常であるかどうかを確認し、ソフトウェア ドライバーが正しくインストールされ、最新バージョンに更新されていることを確認する必要があります。さらに、考えられる障害を解決するために、デバイスの再起動やデバイスの再接続を試みることもできます。問題が発生した場合は、Thrustmaster の公式 Web サイトを参照するか、カスタマー サービスにお問い合わせください。スラストマへのアクセス方法
