贪吃蛇游戏是经典手机游戏,既简单又耐玩。通过控制蛇头方向吃蛋,使得蛇变长,从而获得积分。在诺基亚时代,风靡整个手机界,今天我们来看看另类的,如何使用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 );
?>
|