昨天,一个朋友问我“开心农场”的原理是什么样的(现在校内,QQ,开心网等各大cnc平台比较热门的一款web game),我的第一个反应就是Flash做的。但是用flash怎么做的呢?
后来,仔细操作了下,好像有了点感觉,现在写下来,想跟大家讨论一下。(以下纯属个人认为,请大家不要被我误导哈……)
开心农场的好友列表,我想是用flex组件完成的。
里面的操作(这些操作的结果需要记录到数据库):
1、每个动作。比如说:浇水、除草、杀虫,这些分别为mc,当鼠标触发的时候,调用相应的mc去显示。
2、播种。先判断鼠标触发的区域的地上有没有植物,没有的话,则种上,有的,则提示种不了。播种的同时需要记录种子的数量。
2、庄稼的生长状态。也同样有不同时期的mc组成,创建时间侦听时间,去判断当前的生长状态,然后调用相应的mc。
3、收获。对于单季庄稼,则在收获后调用收获后的mc;对于多季庄稼,在庄家生长的时候记录是第几季,在收获的时候记录是第几季。
3、场景移动。StartDrag()和StopDrag()侦听不同的鼠标操作,进行移动。
偷好友果实和帮助好友,这些在flash显示上跟在自己的农场显示一样,只是提示的信息不同。
当在好友农场进行操作时,这里的操作结果,需要记录到数据库,然后在对于个人的经验值和仓库的数量进行增加。
对于前端显示,运用到flash去显示,然后通过flash跟后台程序(php,.net,java等)进行交互显示(flash跟后台数据交互时,可以通过as与js的连接,as与xml的读取等),对于实时数据显示,还需要运动用ajax技术,在不刷新游戏的情况下进行数据的交互显示。
暂时先想到这么些,大家有兴趣的话,来跟帖讨论下吧? |