自己重写的经典游戏-吃豆人 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
mumuy
V2EX    Javascript

自己重写的经典游戏-吃豆人

  mumuy 2016-05-09 09:18:58 +08:00 8140 次点击
这是一个创建于 3446 天前的主题,其中的信息可能已经有所发展或是发生改变。

很早就知道 canvas ,当时一直没应用到,最近闲来无事就顺便写写看。吃豆游戏可以说是我们 80 , 90 后共同的回忆录,小时候常常在学习机上玩,所以也就有了强烈的欲望去写。为了写这个游戏,看了很多吃豆人游戏的相关信息,包括游戏规则,历史,其它相关游戏设计。又去了各个小游戏平台玩了下,找些灵感!!!就连最简单的配色,也是反复斟酌几个小时确定的方案……哈哈,不容易啊

代码分两部分,游戏引擎和游戏主程序,引擎用来类的定义,管理动画场景,事件定义等等……游戏主程序主要组织业务逻辑。算面向对象编程吧,可以参考下 游戏在这里: http://passer-by.com/pacman/ ,哈哈~可以关注 github 获得最新代码!纯手工打造

是男人就吃光所有豆子!!!

60 条回复    2016-05-10 15:37:55 +08:00
xcatliu
    1
xcatliu  
   2016-05-09 11:21:02 +08:00
赞, GitHub 呢?
timqian
    2
timqian  
   2016-05-09 11:27:54 +08:00
weizhiyao008
    3
weizhiyao008  
   2016-05-09 12:22:26 +08:00
上下左右的控制总觉得不够灵敏, Firefox 46.0.1
freewarcraft
    4
freewarcraft  
   2016-05-09 12:28:43 +08:00
mac safari 最新版表示上下左右不够灵敏。。。
另外感觉 AI 好厉害,三路包夹我。。。是我手残么- -
how2code
    5
how2code  
   2016-05-09 12:39:09 +08:00
玩了好几遍才能吃完
jianzong
    6
jianzong  
   2016-05-09 12:45:07 +08:00
很赞,制作很用心。
mumuy
    7
mumuy  
OP
   2016-05-09 12:56:12 +08:00
mumuy
    8
mumuy  
OP
   2016-05-09 12:58:15 +08:00
@freewarcraft 是有一套算法,就是准备合作围堵玩家的
chunqiuyiyu
    9
chunqiuyiyu  
   2016-05-09 13:10:31 +08:00
很不错,完美复原。这都是小时候满满的回忆啊!
mumuy
    10
mumuy  
OP
   2016-05-09 13:14:15 +08:00   1
@chunqiuyiyu 基本延续原游戏,寻路算法不一样,我这个更难些, 4 个幽灵配合着一起围堵
dawn009
    11
dawn009  
   2016-05-09 13:22:23 +08:00
OS X 10.9 Firefox 46.0.1
像在放慢动作
mumuy
    12
mumuy  
OP
   2016-05-09 14:36:42 +08:00
@dawn009 等等我找 Firefox 测试下
lucky2touch
    13
lucky2touch  
   2016-05-09 14:47:48 +08:00
不错啊,不过细节还需要考据下。
kokdemo
    14
kokdemo  
   2016-05-09 14:51:39 +08:00
稍微有点卡顿……
hinate
    15
hinate  
   2016-05-09 15:16:26 +08:00
上下左右 总觉得不够灵敏 版本 50.0.2661.94 Google Chrome
ubuntugx
    16
ubuntugx  
   2016-05-09 15:18:27 +08:00
很赞,已 star
lizhenda
    17
lizhenda  
   2016-05-09 15:40:31 +08:00
很不错哦,好厉害~!
kokutou
    18
kokutou  
   2016-05-09 15:54:53 +08:00
为何我全吃完了还是 game over 。。。
mumuy
    19
mumuy  
OP
   2016-05-09 16:00:40 +08:00
@kokutou 因为我暂时只写了一关……哈哈哈,不过地图是可配置的,很容易写关卡
mumuy
    20
mumuy  
OP
   2016-05-09 16:01:56 +08:00
@hinate 只有一定范围内才能控制,没错容错,不太想处理成那样
leetom
    21
leetom  
   2016-05-09 16:38:38 +08:00
幽灵能穿过墙?

变灰之后再变回彩色的时候,从老窝的右侧墙穿出来了
mumuy
    22
mumuy  
OP
   2016-05-09 17:10:24 +08:00
@leetom 不可以啊,直接走出来?应该只能走一段,发现不能走又回去才对呀
njutree
    23
njutree  
   2016-05-09 17:59:09 +08:00
不错就是不太灵敏
vh2h
    24
vh2h  
   2016-05-09 18:49:41 +08:00
上下左右的控制总觉得不够灵敏, Firefox 46.0.1
langjiyuan
    25
langjiyuan  
   2016-05-09 19:06:23 +08:00
上 不是很灵敏。 被 3 一块堵太丧心病狂了。。是好久没玩游戏了吗,,手残。。。
mumuy
    26
mumuy  
OP
   2016-05-09 19:18:56 +08:00
@langjiyuan 是我写的围堵算法
Kv_se7en
    27
Kv_se7en  
   2016-05-09 19:27:54 +08:00
确实控制不灵敏... osx chrome
mumuy
    28
mumuy  
OP
   2016-05-09 19:29:39 +08:00
@Kv_se7en 时机问题啦,一般游戏会做控制的容错处理,我设计的就是错过了就不让控制了
langjiyuan
    29
langjiyuan  
   2016-05-09 19:49:11 +08:00
@mumuy 已 git 拓展下兴趣。感谢开源。
Bryan0Z
    30
Bryan0Z  
   2016-05-09 20:19:09 +08:00 via Android
送给和我一样玩不过去的手残: F12 ,把中间那一圈 2 改成 1 ,怪物就跑不出来了
mumuy
    31
mumuy  
OP
   2016-05-09 20:24:22 +08:00
@Bryan0Z 哈哈哈, 0 表示路, 1 表示墙壁, 2 表示选择性的路(只有幽灵走)
hongfeiyu
    32
hongfeiyu  
   2016-05-09 21:00:02 +08:00
你就是三姑六婆的作者?
qiuchengjia
    33
qiuchengjia  
   2016-05-09 21:05:43 +08:00
感觉速度太快了,还有就是键盘监听好像不是很灵敏
cheneydog
    34
cheneydog  
   2016-05-09 21:08:25 +08:00
画面很好很细腻
mumuy
    35
mumuy  
OP
   2016-05-09 21:15:45 +08:00
@hongfeiyu 之前有人开发我,我自己前两个月开发也开发了个版本
mumuy
    36
mumuy  
OP
   2016-05-09 21:17:33 +08:00
@hongfeiyu 你说的那个 APP 是我上星期用 react native 做的,所以应该和你用的不一样
mumuy
    37
mumuy  
OP
   2016-05-09 21:18:07 +08:00
@cheneydog 画超级久!颜色我都调好久
hongfeiyu
    38
hongfeiyu  
   2016-05-09 21:24:03 +08:00
@mumuy
mumuy
    39
mumuy  
OP
   2016-05-09 21:26:53 +08:00
@hongfeiyu 我早上看过另外一个人实现版本的数据库,我觉得应该我那种比较方便
znoodl
    40
znoodl  
   2016-05-09 21:55:46 +08:00
你好,能支持下 wasd 吗? hhkb 按方向键玩游戏真心无力。。。
hongfeiyu
    41
hongfeiyu  
   2016-05-09 22:06:36 +08:00
@mumuy
znoodl
    42
znoodl  
   2016-05-09 22:09:16 +08:00
mumuy
    43
mumuy  
OP
   2016-05-09 22:17:12 +08:00
@znoodl 哈哈哈, fork 下,自己动手丰衣足食
chimingphang
    44
chimingphang  
   2016-05-09 22:17:12 +08:00
上下左右的控制 不够灵敏
mumuy
    45
mumuy  
OP
   2016-05-09 22:18:14 +08:00
@chimingphang 慢慢就习惯啦,控制有时间限制的
darluc
    46
darluc  
   2016-05-09 23:00:39 +08:00
jaylong
    47
jaylong  
   2016-05-09 23:48:02 +08:00
楼主的代码整齐真漂亮
jaylong
    48
jaylong  
   2016-05-09 23:49:40 +08:00
如果性能再能优化一点就更好了,现在玩一会 CPU 就爆表了
mumuy
    49
mumuy  
OP
   2016-05-09 23:53:20 +08:00
@jaylong 可能是因为我用的是帧动画,有时屏幕刷新不过来
maichael
    50
maichael  
   2016-05-09 23:58:29 +08:00
github 呢?触发不太灵敏。
Patrick95
    51
Patrick95  
   2016-05-10 00:05:32 +08:00
赞~
mumuy
    52
mumuy  
OP
   2016-05-10 00:06:49 +08:00
@maichael https://github.com/mumuy/ 触发点是对的,只是没有容错处理
yreenchan
    53
yreenchan  
   2016-05-10 00:11:23 +08:00
很赞,但是总感觉惯性太大,切换方向的时候不灵敏
mumuy
    54
mumuy  
OP
   2016-05-10 06:19:51 +08:00
@yreenchan 这个也是游戏的难点啊,切换时机的把握
123s
    55
123s  
   2016-05-10 09:22:47 +08:00
好强,大神
nashge
    56
nashge  
   2016-05-10 09:38:42 +08:00
我也是 firefox ,体验相当差,非常不灵敏
mumuy
    57
mumuy  
OP
   2016-05-10 09:59:10 +08:00
@nashge 哈哈哈,主要是算法研究,不保证兼容除 chrome 以外的浏览器~
yilin101
    58
yilin101  
   2016-05-10 13:59:48 +08:00
非常不灵敏
hiyouli
    59
hiyouli  
   2016-05-10 15:36:41 +08:00
上下左右 不灵敏,有时候还失灵,真是捉急。 chrome 版本 50.0.2661.94 m
感谢,找了找回忆。
mumuy
    60
mumuy  
OP
   2016-05-10 15:37:55 +08:00
@hiyouli 故意这么设计的,时机不对不然转弯
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1088 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 37ms UTC 23:17 PVG 07:17 LAX 16:17 JFK 19:17
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86