|
| <!DOCTYPE HTML> |
002 | <html> |
003 | <head> |
004 | <meta charset="UTF-8"> |
005 | <title>Flood It</title> |
006 | <style> |
007 | span{display:inline-block;margin:2px;width:30px;height:30px;cursor:pointer;} |
008 | </style> |
009 | </head> |
010 | <body> |
011 | <div style="position:absolute;left:2px;top:2px;width:660px;"> |
012 | <canvas id="canvas"
width="660"
height="660"></canvas> |
013 | </div> |
014 | <div style="position:absolute;left:700px;width:300px;"> |
015 | <p><input type=button value="New Game"
onclick=init()><span id="hint"></span></p> |
016 | <p> |
017 | <span style="background:#884cb8;"
onclick=drawColor(0)></span> |
018 | <span style="background:#f84870;"
onclick=drawColor(1)></span> |
019 | <span style="background:#f87c00;"
onclick=drawColor(2)></span> |
020 | <span style="background:#f8dc00;"
onclick=drawColor(3)></span> |
021 | <span style="background:#10d000;"
onclick=drawColor(4)></span> |
022 | <span style="background:#106cf8;"
onclick=drawColor(5)></span> |
023 | </p> |
024 | <div> |
025 | <script> |
026 | var canvas = document.getElementById('canvas'); |
027 | var context = canvas.getContext('2d'); |
028 | //定义填充的颜色 |
029 | var color=['#884cb8','#f84870','#f87c00','#f8dc00','#10d000','#106cf8']; |
030 | //格子区域 |
031 | var board; |
032 | //宽度,高度最难级别22格 |
033 | var level=22; |
034 | //当前颜色索引 0-5 |
035 | var currentColorIndex; |
036 | //一个标志位仅在初始化时开启 |
037 | var flag; |
038 | //显示步数的div |
039 | var hint=document.getElementById('hint'); |
040 | //记录点击步数 |
041 | var step; |
042 | //初始化数组,随即产生颜色index并存储 |
043 | function init(){ |
044 | board=new
Array(); |
045 | for(i=0;i<level;i++){ |
046 | var
row=new
Array(); |
047 | for(j=0;j<level;j++){ |
048 | row[j]=Math.floor(Math.random()*6);
|
049 | } |
050 | board[i]=row; |
051 | } |
052 | //当前颜色等于左上角的色块 |
053 | currentColorIndex=board[0][0]; |
054 | //翻转过的格子存储-1值,先另左上角的为-1 |
055 | board[0][0]=-1; |
056 | //一下几行自己看吧,一言难尽 |
057 | flag=false; |
058 | drawColor(currentColorIndex); |
059 | flag=true; |
060 | _drawBoard(); |
061 | step=0; |
062 | hint.innerText=step+'/36' |
063 | } |
064 |
065 | //绘制格子区域 |
066 | function _drawBoard(){ |
067 | context.fillStyle=color[currentColorIndex]; |
068 | context.fillRect(0,0,30*level,30*level); |
069 | for(i=0;i<level;i++){ |
070 | for(j=0;j<level;j++){ |
071 | if(board[i][j]!=-1){ |
072 | context.fillStyle=color[board[i][j]]; |
073 | context.fillRect(j*30,i*30,30,30); |
074 | } |
075 | } |
076 | } |
077 | hint.innerText=step+'/36' |
078 | } |
079 | //染色 |
080 | function drawColor(color_index){ |
081 | //点击当前颜色值无效。初始化时除外。 |
082 | if(color_index==currentColorIndex && flag)
return; |
083 | for(i=0;i<level;i++){ |
084 | for(j=0;j<level;j++){ |
085 | if(board[i][j]==-1){ |
086 | _findSameColor(i,j,color_index); |
087 | } |
088 | } |
089 | } |
090 | step++; |
091 | currentColorIndex=color_index; |
092 | _drawBoard(); |
093 | } |
094 | //递归寻找同色格子 |
095 | function _findSameColor(cell_x,cell_y,color_index){ |
096 | if(cell_x-1>=0 && board[cell_x-1][cell_y]==color_index) {board[cell_x-1][cell_y]=-1;_findSameColor(cell_x-1,cell_y,color_index);} |
097 | if(cell_x+1<level && board[cell_x+1][cell_y]==color_index) {board[cell_x+1][cell_y]=-1;_findSameColor(cell_x+1,cell_y,color_index);} |
098 | if(cell_y-1>=0 && board[cell_x][cell_y-1]==color_index) {board[cell_x][cell_y-1]=-1;_findSameColor(cell_x,cell_y-1,color_index);} |
099 | if(cell_y+1<level && board[cell_x][cell_y+1]==color_index) {board[cell_x][cell_y+1]=-1;_findSameColor(cell_x,cell_y+1,color_index);} |
100 | } |
101 | </script> |
102 | </body> |
103 | </html> |
HTML页面:
001 | <!DOCTYPE HTML> |
002 | <html> |
003 | <head> |
004 | <meta
charset="UTF-8"> |
005 | <title>Flood It</title> |
006 | <style> |
007 | span{display:inline-block;margin:2px;width:30px;height:30px;cursor:pointer;} |
008 | </style> |
009 | </head> |
010 | <body> |
011 | <div
style="position:absolute;left:2px;top:2px;width:660px;"> |
012 | <canvas
id="canvas"
width="660"
height="660"></canvas> |
013 | </div> |
014 | <div
style="position:absolute;left:700px;width:300px;"> |
015 | <p><input
type=button
value="New Game"
onclick=init()><span
id="hint"></span></p> |
016 | <p> |
017 | <span
style="background:#884cb8;"
onclick=drawColor(0)></span> |
018 | <span
style="background:#f84870;"
onclick=drawColor(1)></span> |
019 | <span
style="background:#f87c00;"
onclick=drawColor(2)></span> |
020 | <span
style="background:#f8dc00;"
onclick=drawColor(3)></span> |
021 | <span
style="background:#10d000;"
onclick=drawColor(4)></span> |
022 | <span
style="background:#106cf8;"
onclick=drawColor(5)></span> |
023 | </p> |
024 | <div> |
025 | <script>
|
026 | var canvas = document.getElementById('canvas'); |
027 | var context = canvas.getContext('2d'); |
028 | //定义填充的颜色 |
029 | var color=['#884cb8','#f84870','#f87c00','#f8dc00','#10d000','#106cf8']; |
030 | //格子区域 |
031 | var board; |
032 | //宽度,高度最难级别22格 |
033 | var level=22; |
034 | //当前颜色索引 0-5 |
035 | var currentColorIndex; |
036 | //一个标志位仅在初始化时开启 |
037 | var flag; |
038 | //显示步数的div |
039 | var hint=document.getElementById('hint'); |
040 | //记录点击步数 |
041 | var step; |
042 | //初始化数组,随即产生颜色index并存储 |
043 | function init(){ |
044 | board=new Array(); |
045 | for(i=0;i<level;i++){ |
046 | var
row=new
Array(); |
047 | for(j=0;j<level;j++){ |
048 | row[j]=Math.floor(Math.random()*6);
|
049 | } |
050 | board[i]=row; |
051 | } |
052 | //当前颜色等于左上角的色块 |
053 | currentColorIndex=board[0][0]; |
054 | //翻转过的格子存储-1值,先另左上角的为-1 |
055 | board[0][0]=-1; |
056 | //一下几行自己看吧,一言难尽 |
057 | flag=false; |
058 | drawColor(currentColorIndex); |
059 | flag=true; |
060 | _drawBoard(); |
061 | step=0; |
062 | hint.innerText=step+'/36' |
063 | } |
064 |
065 | //绘制格子区域 |
066 | function _drawBoard(){ |
067 | context.fillStyle=color[currentColorIndex]; |
068 | context.fillRect(0,0,30*level,30*level); |
069 | for(i=0;i<level;i++){ |
070 | for(j=0;j<level;j++){ |
071 | if(board[i][j]!=-1){ |
072 | context.fillStyle=color[board[i][j]]; |
073 | context.fillRect(j*30,i*30,30,30); |
074 | } |
075 | } |
076 | } |
077 | hint.innerText=step+'/36' |
078 | } |
079 | //染色 |
080 | function drawColor(color_index){ |
081 | //点击当前颜色值无效。初始化时除外。 |
082 | if(color_index==currentColorIndex && flag) return; |
083 | for(i=0;i<level;i++){ |
084 | for(j=0;j<level;j++){ |
085 | if(board[i][j]==-1){ |
086 | _findSameColor(i,j,color_index); |
087 | } |
088 | } |
089 | } |
090 | step++; |
091 | currentColorIndex=color_index; |
092 | _drawBoard(); |
093 | } |
094 | //递归寻找同色格子 |
095 | function _findSameColor(cell_x,cell_y,color_index){ |
096 | if(cell_x-1>=0 && board[cell_x-1][cell_y]==color_index) {board[cell_x-1][cell_y]=-1;_findSameColor(cell_x-1,cell_y,color_index);} |
097 | if(cell_x+1<level
&& board[cell_x+1][cell_y]==color_index) {board[cell_x+1][cell_y]=-1;_findSameColor(cell_x+1,cell_y,color_index);} |
098 | if(cell_y-1>=0 && board[cell_x][cell_y-1]==color_index) {board[cell_x][cell_y-1]=-1;_findSameColor(cell_x,cell_y-1,color_index);} |
099 | if(cell_y+1<level
&& board[cell_x][cell_y+1]==color_index) {board[cell_x][cell_y+1]=-1;_findSameColor(cell_x,cell_y+1,color_index);} |
100 | } |
101 | </script> |
102 | </body> |
103 | </html> |
本文深入探讨了游戏开发领域的核心技术,包括Unity3D、Cocos2d-X等游戏引擎的使用,以及OpenGL ES、OpenCV等图像处理技术在游戏中的应用。同时,还涉及了AR特效、音视频直播流媒体等前沿技术,旨在为开发者提供全面的游戏开发知识。
1721

被折叠的 条评论
为什么被折叠?



