贪吃蛇游戏是经典手机游戏,既简单又耐玩。通过控制蛇头方向吃蛋,使得蛇变长,从而获得积分。在诺基亚时代,风靡整个手机界,今天我们来看看另类的,如何使用php来实现贪吃蛇小游戏
废话不多说,代码奉上:
control.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
<!DOCTYPE html> <html> <head> <meta charset= "utf-8" /> </head> <body> <a href= "control.php?a=up" >上<a/> <?session_start(); echo $_SESSION [ 'count' ];?>分<br/> <a href= "control.php?a=left" >左<a/> <a href= "control.php?a=right" >右<a/><br/> <a href= "control.php?a=down" >下<a/> <? switch ( $_GET [ 'a' ]){ case "up" ; $_SESSION [ 'con' ]= "up" ; break ; case "down" : $_SESSION [ 'con' ]= "down" ; break ; case "left" : $_SESSION [ 'con' ]= "left" ; break ; case "right" : $_SESSION [ 'con' ]= "right" ; break ; } ?> </body> </html> |
main.php
1
2
3
4
5
6
7
8
9
10
11
|
<!DOCTYPE html> < html > < head > < meta charset = "utf-9" /> < meta http-equiv = "refresh" content = "0.5" /> </ head > < frameset rows = "95,*" border = "1" noresize > < frame src = "control.php" name = "top" /> < frame src = "./tcs.php" name = "menu" /> </ frameset > </ html > |
tcs.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
<?php session_start(); $_SESSION [ 'ud' ]; $_SESSION [ 'lr' ]; $im = imagecreatetruecolor(300,300); $blue = imagecolorallocate( $im ,0,0,255); $red = imagecolorallocate( $im ,255,0,0); $c1 = imagecolorallocate( $im ,200,200,200); imagefill( $im ,0,0, $c1 ); if (!isset( $_SESSION [ 'a' ])&&!isset( $_SESSION [ 'b' ])){ $_SESSION [ 'a' ] =rand(0,290); $_SESSION [ 'b' ] =rand(0,290); } if (isset( $_SESSION [ 'a' ])&&isset( $_SESSION [ 'b' ])){ imagerectangle( $im , $_SESSION [ 'a' ], $_SESSION [ 'b' ], $_SESSION [ 'a' ]+10, $_SESSION [ 'b' ]+10, $red ); } if ( abs (( $_SESSION [ 'lr' ]- $_SESSION [ 'a' ]))<=5&& abs ( $_SESSION [ 'ud' ]- $_SESSION [ 'b' ])<=5){ unset( $_SESSION [ 'a' ]); unset( $_SESSION [ 'b' ]); $_SESSION [ 'count' ]++; } switch ( $_SESSION [ 'con' ]){ case "up" ; if ( $_SESSION [ 'ud' ]>10) $_SESSION [ 'ud' ]-=10; else $_SESSION [ 'ud' ]=0; break ; case "down" : if ( $_SESSION [ 'ud' ]<=280) $_SESSION [ 'ud' ]+=10; else $_SESSION [ 'ud' ]=290; break ; case "left" : if ( $_SESSION [ 'lr' ]>10) $_SESSION [ 'lr' ]-=10; else $_SESSION [ 'lr' ]=0; break ; case "right" : if ( $_SESSION [ 'lr' ]<=280) $_SESSION [ 'lr' ]+=10; else $_SESSION [ 'lr' ]=290; break ; } for ( $i =0; $i <= $_SESSION [ 'count' ]; $i ++){ switch ( $_SESSION [ 'con' ]){ case "up" : $_SESSION [ 'udnext' ] = $_SESSION [ 'ud' ]+10* $i ; imagerectangle( $im , $_SESSION [ 'lr' ], $_SESSION [ 'udnext' ], $_SESSION [ 'lr' ]+10, $_SESSION [ 'udnext' ]+10, $blue ); // imagerectangle($im,$_SESSION['lr'],$_SESSION['udtime'][time()-$i],$_SESSION['lr']+10,$_SESSION['udtime'][time()-$i]+10,$blue); break ; case "down" : $_SESSION [ 'udnext' ] = $_SESSION [ 'ud' ]-10* $i ; imagerectangle( $im , $_SESSION [ 'lr' ], $_SESSION [ 'udnext' ], $_SESSION [ 'lr' ]+10, $_SESSION [ 'udnext' ]+10, $blue ); // imagerectangle($im,$_SESSION['lr'],$_SESSION['udtime'][time()+$i],$_SESSION['lr']+10,$_SESSION['udtime'][time()+$i]+10,$blue); break ; case "left" : $_SESSION [ 'lrnext' ] = $_SESSION [ 'lr' ]+10* $i ; imagerectangle( $im , $_SESSION [ 'lrnext' ], $_SESSION [ 'ud' ], $_SESSION [ 'lrnext' ]+10, $_SESSION [ 'ud' ]+10, $blue ); // imagerectangle($im,$_SESSION['lrtime'][time()-$i],$_SESSION['ud'],$_SESSION['lrtime'][time()-$i]+10,$_SESSION['ud']+10,$blue); break ; case "right" : $_SESSION [ 'lrnext' ] = $_SESSION [ 'lr' ]-10* $i ; imagerectangle( $im , $_SESSION [ 'lrnext' ], $_SESSION [ 'ud' ], $_SESSION [ 'lrnext' ]+10, $_SESSION [ 'ud' ]+10, $blue ); // imagerectangle($im,$_SESSION['lrtime'][time()+$i],$_SESSION['ud'],$_SESSION['lrtime'][time()+$i]+10,$_SESSION['ud']+10,$blue); break ; } //imagerectangle($im,$_SESSION['lr'],$_SESSION['ud'],$_SESSION['lr']+10,$_SESSION['ud']+10,$blue); } header( "Content-Type: image/jpeg" ); imagejpeg( $im ); imagedestroy( $im ); ?> |