4 N; } C8 m8 z什么东西简单容易呢?我百度一下,我靠,这个鸟游戏原来不好搞啊,得接触一堆不熟悉的东西,搞不来搞不来。 # }; Y- x; e7 L7 e n j: T! o: E有了(灵光一闪),写个猜数字游戏,问他加减乘除等于几。7 e/ R# G% Q4 W
$ m3 }( K+ N. H" h4 S
超越妹妹又不是小孩子,糊弄不过去。1 l* ?" q' c, g6 S
经过一番折腾,终于在半夜12点确定写迷宫小游戏了。大概弄清楚其中的几个步骤。 5 f5 r! Y2 U: u9 `4 L% w' H' ~9 o; P
大概是:9 N7 o# }, I; { p. b7 ~& X
! ?8 E+ w' [% ~ u, e& F& A) I
画线—>画迷宫(擦线)—>方块移动、移动约束(不出界不穿墙)—>完成游戏。 . g! E K1 k: H) Q画线(棋盘) , k) c/ Z% v/ j9 ~7 l1 S7 J5 b. ~' N3 T7 N3 O* f
对于html+js(canvas)画的东西,之前学过javaswing应该有点映像。在html中有个canvas 的画布,可以在上面画一些东西和声明一些监听(键盘监听)。 1 _2 r8 D7 G+ @& _ , N0 A# U+ {+ A. W( _对于迷宫来说,那些线条是没有属性的,只有位置x,y,你操作这个画布时候,可能和我们习惯的面相对象思维不一样。所以,在你设计的线或者点的时候,记得那个点、线在什么位置,在后续划线还是擦线还是移动的时候根据这个位置进行操作。: m/ C- E6 H8 }/ C7 b
<!DOCTYPE html>0 Q! D; g: W8 P1 w( V
<html>' J u! t5 O' B4 _' d
<head>8 l. g* \+ v2 x D5 a
<title>MyHtml.html</title> . U# j) u& x% Y% Q7 [ t/ L </head> " x" D+ D6 J- M% Y& `$ l) ` V
<body>' s2 p0 e8 O4 R* w" c7 ^8 F
<canvas id="mycanvas" width="600px" height="600px"></canvas>5 b% i9 Q J0 F( ?# F- R4 D
4 p Y2 K( B+ A
</body> ( e" ]5 ?7 v b: h# Q9 M F <script type="text/javascript">7 e, y+ z, q& J; h
& B3 f9 D6 `, ]( z: Ivar aa=14; ( F; E. s. g" X var chess = document.getElementById("mycanvas");/ r' B2 z5 n' \1 h0 G3 H1 ?
var context = chess.getContext('2d');0 s) ~& z9 w/ k6 F( F3 D
' r4 @2 h8 S6 ~( Z, a, S' H9 n1 s R // var context2 = chess.getContext('2d'); ( C0 ~( B" J+ t$ O // context.strokeStyle = 'yellow'; " G ~7 n1 y% L. M6 J% q( l var tree = [];//存放是否联通 7 K% ~1 @# o9 b- K var isling=[];//判断是否相连 ( L1 ?8 x) O0 z8 K% O2 | for(var i=0;i<aa;i++){ 8 `0 L* \) c+ I tree=[]; . U6 f: n$ O# \4 M3 F# ~) V for(var j=0;j<aa;j++){) Z* V% o5 X& K" n/ Q- N
tree[j]=-1;//初始值为06 K# K& [/ K* z4 c
} - [; a: T# o" ]# Z' R G* _ } for(var i=0;i<aa*aa;i++){ : O& F& B2 Z$ F b, H isling=[]; $ K4 I4 {) ~# A for(var j=0;j<aa*aa;j++){; n8 t8 q# X/ K( d' Q
isling[j]=-1;//初始值为0/ U7 |9 p: A2 P: E7 A* Y8 e# n
}+ Q( i' I) y' \: n% ?
}$ k+ m0 U( ? L4 z6 F# V
! J5 Y. b5 X4 u1 a0 i: I3 r% w4 o function drawChessBoard(){//绘画" ^' j/ T4 @) C/ m, m+ G
for(var i=0;i<aa+1;i++){ 6 A; ]. [3 b8 }' B. {# O$ S @0 M( { context.strokeStyle='gray';//可选区域 : W) }/ F) K/ j, i% D context.moveTo(15+i*30,15);//垂直方向画15根线,相距30px; 3 `6 l: e; c' w context.lineTo(15+i*30,15+30*aa);- a3 y" |' h% A- A8 W6 S/ w* q9 f4 M! N
context.stroke(); - h* R* g$ c4 q, y! a; f2 \ context.moveTo(15,15+i*30);//水平方向画15根线,相距30px;棋盘为14*14; % f% h# b+ o' U+ b! J6 {- ^ context.lineTo(15+30*aa,15+i*30); " E2 H, ?9 f* I; x: o- ~4 \6 P0 O* ? context.stroke();0 N$ a: ~ K: B! d
} 8 P. Z5 J& ^. n0 Q; B8 V }3 {0 K/ N, h7 [( ]
drawChessBoard();//绘制棋盘 7 ]) L. \1 o5 r' d' g' ] % u9 B/ \2 b0 y" f2 t8 v: Y; y. X // var mymap=new Array(36);* C, d. D+ O# R4 x: N
// for(var i=0;i<36;i++)2 H6 D2 ?! G2 F! @# y1 f9 `
// {mymap=-1;}. q9 m4 A: D( V/ Y f! `& u6 I ] {0 H
9 k4 b k8 r4 w1 Y' I
0 |5 {! Q0 e' m, o </script> $ R' @' Q9 u& N" s; c( J3 W1 N</html>; T- q; N3 ~ r( J1 q
1 x% H& c/ k' n x: U; {# p* F& g* J5 {: @7 P0 e
实现效果 . X1 B2 D( f) z9 t% L n