声明,此游戏的素材来源自中国游戏中心,此游戏仅作学习之用,如果你通过任何途径取得本游戏的源码,请勿用于商业用途,也是对我熬夜数次的劳动成果的尊重和对中游的尊重,谢谢。

转贴请标明出处,谢谢。

 

忆往昔,中游台球是最让我颓废的游戏,不堪回首,恨年少不知愁滋味,叹青春年华已逝,具往矣,我已不再玩中游台球,心中却仍有一丝牵挂,于是用WPF来山寨一个中游台球,好让自己放下心结。

先上界面
image

image 

借用了中游的图片,感谢一下,哈哈,还是很像样吧,那是当然的了,要不也白瞎了我这个人了。

这次版本只是单机版,也就是一台机器上人人对战,还有些不完美的地方,比如球球碰撞时有时重叠(已解决),只有“开始”功能有效(让杆也有效),其他三个按钮没用。当然该有的基本都有了,比如进球后动画及提示,规则,下一个球的提示,分数,击球时球杆的动画,杆法,说到杆法,中游只支持高杆和低杆,而我的游戏中支持左右塞,不过所有杆法都是直线,还有个问题是,不知道高杆弹库后速度是减慢还是加快,我先做加快处理了,同理,低杆弹库后速度减慢。另外我把中袋袋口作成弧形,碰撞时会更像真实的snook

现在先把exe放上,源程序还在进一步完善中,最近比较忙,如果大家感兴趣,我会开贴讲讲开发过程中的一些心得。
程序运行需要.net4.0支持(现已提供.net 3.5可用版)。

 

2010.5.1 五一劳动节版

更新:

采用新的球球碰撞方法

球球碰撞重叠基本不会出现

球球碰撞更精准,我是说精准,解决方案是如果两个球有重叠,程序会让球回退到相切时刻

球弹库反弹的位置修正的更准确

让杆功能有效,如果一方把球打进袋,另一方可以让杆

2010.5.4 五四青年节版

更新:

修正一些bug,比如一杆中彩球先于红球进袋,彩球拿出,而长条球洞会有一个位置空出

修改彩球置原位的方法,如果本位被占,彩球被放置在最大可用彩球点位

修正记分的一些bug

去掉鼠标坐标的label

去掉原先为了测试方便使用的鼠标右键放置白球的功能

对方犯规就可以让杆

球相撞时,如果距离绝对值在1以内,认为相撞了,这样打起来更轻松,你会发现我的台球比中游的更容易进洞

求和和认输功能,不提供,等做成网络版时再提供

效果可以和中游台球相媲美,如果观察仔细的话可以发现中游台球移动时是一个像素一个像素的,而wpf的坐标是double,所以显示更细腻,不过不知什么原因,wpf使用图片当背景会比原图片模糊一点 

2010.5.9 母亲节版

更新:

修正黑球决胜时,打黑球,黑球不会动,之后停滞的问题

修正桌面只有彩球时,白球彩球同时入袋,彩球没被拿出的问题

  

.net 3.5版

点我下载

.net 4.0版

点我下载

 

源码点这里

 

以后有时间我会详细介绍是怎么实现的,源码上的注释已经很详细了,相信大家都能看的懂。代码还有完美的空间,希望大家给不吝赐教,谢谢

球的碰撞可以参考Vector For Flash,英文原版在这里,中文翻译在这里,还有两本书:《游戏开发物理学》和《Foundation Actionscript3.0 Animation》都很有参考意义,虽然这些都不是C#代码写的,但是可以相互借鉴。