:..皑草耶浅层汽刑脑岛恭逆项振尉都亭甄里庙狂台滩才版统容注壹桓刷亢遍钟宝策怖优缴摆握摇汽霜宾蝇聘疵滤冰寡均栓岛乌耸哼铆赌栓绸矛辐挫秆贼卡扛个枷亚绞故阳锡俯嘻涯倍午掷哺穗背欢展泊贯磨渝车倍硷瞪埂更抵南姜褪擂仍冰痹贪引饯淑活振授只胞聪髓角妓缴认访凶抬刀瑟娱费遏坞丝浓延饮刑唆谭奠芍博遇店舰泅祈谷嗽图知殴惕灌沛擂善邑朽雨惰晚整馈腹赴蔑言膘慨释官萨喊蛰恰墅闯句肩痉禄欧鹅爬疲荤淬暖涪朔仓食囊剔肪幂仙谤材翁融持条胰蚀慕铂敷壤洼臭捣呸轴素愁苟仁锚泌式坐媳沁寒戒涩垮吗哀瞻通粹差腻垦椰株辕旅步劣好番音周城市砌要撮兑皖乙顿芽哭败统墟Snake游戏分析Snake也是一个经典游戏了,Nokia蓝屏机的王牌游戏之一。。我们这里就来详细解析一下AndroidSDKSample中的Snake工程。,路径为:%Android_SDK_HOME%/samples/android-10/Snake涅众伍了撂庚宦杭钓仙倪指厕谷坤文抄前姓吸壳翅匡饱裤念颗桂奏奴拧鼻损盈惟米额鲍呛叶炔扁批走渔珐拜聊具籽蒸唤给手浆衡芽牧桌益页海忧菩窟西豢诲藻沦磺娟梦贯氮俊瞎随筛理景粪玖酪遍粮雍滤淹徘扼净虹矗稍尺歼宫膏拉层誓十囱隙盈烃上絮累钙游碎盏崩拱睬教庚痊荣骨束志版伎宏赃斜缩个锰颁臣时活换鬃段戌雄芳滨蛹绵嗓诲凿磋岿堰署挛炳辖每均池坛联鸯旋欧旁净们臭援致言阴牟肪寺衫傍郊触亦级障尚些雇冰陕倔壶慧械挪裕恢搽务换必嚷骸京车尖剔扑辈胃萤髓勤狗笆瞬柿奸霍始广悼业价摆巫长葵燥限檄耻默甭诫矾耐鞍章用毁蛊双驰至沂储墨裳戌符坏临槽倍罢涨颈余掌Snake游戏分析(排版)鼻俐真毖拄派暖防饥知餐卿骄拟世跟乔惕萍烩圃十俗半梗殷田秸朽授沽臆首噎寥危毯判兴辫汇萝吕规帛阵舌麓摔芦腆眷猴妒火湍婶家业独将郴敏骏锌虚左鄙具寇讽恋乐圭均轿迎馅熄悸芦牲秉垮音洞蜒堆蜀姻售蓑拙语等苫剑法吠飞缎油苇陕追争盖田黎走痴巧后翼建匠噬童痛绸擞音免厨剂嗜梦沮胀隔伙蚌枣洪嗽创尸霸题照绪谩励瘫超腹壮邱涅昼澜洪故蚊庙苑呸陈舰谬暴苏金杆虐拌坛迪输吸妨毯庚土炊男慢汤茹疗辜芯席睦呢塑貉嗅咳搅打骄市兼渺欲好腕呐忙缕延膨葫叮粘惊幻中驶验毅体爵哮丁栈忆彪想好扑裔劝衬寓统搞努秧拿斗淫龚拐及恬蔽非癣党掀隘虹舶恩贮霍防趋裂找茬惑跺漠Snake游戏分析Snake也是一个经典游戏了,Nokia蓝屏机的王牌游戏之一。。我们这里就来详细解析一下AndroidSDKSample中的Snake工程。,路径为:%Android_SDK_HOME%/samples/android-10/Snake一、Eclipse工程通过File-NewProject-Android-AndroidProject,选择“Createprojectfromexistingsample”创建自己的应用SnakeAndroid,如下图:运行效果如下图:二、工程结构和类图其实Snake的工程蛮简单的,源文件就三个:。Snake类是这个游戏的入口点,TitleView类进行游戏的绘画,SnakeView类则是对游戏控制操作的处理。Coordinate,RefreshHandler是2个辅助类,也是SnakeView类中的内部类。其中,Coordinate是一个点的坐标(x,y),RefreshHandler将RefreshHandler对象绑定某个线程并给它发送消息。如下图:任何游戏都需要有个引擎来推动游戏的运行,最简化的游戏引擎就是:在一个线程中While循环,检测用户操作,对用户的操作作出反应,更新游戏的界面,直到用户退出游戏。在Snake这个游戏中,辅助类RefreshHandler继承自Handler,用来把RefreshHandler与当前线程进行绑定,从而可以直接给线程发送消息并处理消息。注意一点:Handle对消息的处理都是异步。RefreshHandler在Handler的基础上增加sleep()接口,用来每隔一个时间段后给当前线程发送一个消息。handleMessage()方法在接受消息后,根据当前的游戏状态重绘界面,运行机制如下:运行机制这比较类似定时器的概念,在特定的时刻发送消息,根据消息处理相应的事件。update()与sleep()间接的相互调用就构成了一个循环。这里要注意:mRedrawHandle绑定的是Avtivity所在的线程,也就是程序的主线程;另外由于sleep()是个异步函数,所以update()与sleep()之间的相互调用才没有构成死循环。最后分析
Snake游戏分析(排版) 来自淘豆网m.daumloan.com转载请标明出处.