Topic: 帮人家写的俄罗斯方块游戏的结构. |
Print this page |
1.帮人家写的俄罗斯方块游戏的结构. | Copy to clipboard |
Posted by: 毕竟红尘 Posted on: 2004-11-24 16:30 关键词句: ---------------------------------------------------------------------------- 程序控制、问题分割:控制要有比较强的逻辑,消息的调用得时时在意 ------------------------------------------------------------------------------------ 继承 、多态 :俄罗斯中的boxFactory只生产structrue而不是生产具体的box --------------------------------------------------------------------------------------- 抽象类 :实现多态,可以让程序更有有可扩展性(淡化具体类型的限制,现在的代码可以调用到将来 写的代码)。俄罗斯中的structrue提取了所有box都该具有的特征。 ----------------------------------------------------------------------------------------- 内部类 :功能强大,很大程度上是因为它们可以不受限制地访问到其外包类的成员, 包括外包类的私有外包类成员。俄罗斯中用上几个内部匿名类 ,就象外界访问外包类的几扇窗口。 ----------------------------------------------------------------------------------------- 接口:用来实现策略模式(主要优势是能实现多重继承 多态比较明显:可以upcast成多种类型,这里没有用上其主要的功能) ----------------------------------------------------------------------------------------- 策略模式 :从变化的东西中分离出不变的东西。。。,俄罗斯中的DownFator ReshapeFactor LeftFator等分离出不同box所具有的不同的可移动规则 --------------------------------------------------------------------------------------- 工厂模式:生产特定需要的对象,俄罗斯中可以随机生产已经构造好的box (强大的工厂能自动记录生产的状态,并根据需要生产对象,但是这里是游戏自己控制工厂的生产,不是工厂自己控制的) ----------------------------------------------------------------------------- 可扩展:oop特定让软件具有较强的可扩展性,俄罗斯中只构造三种具体类型的box,但是可以自己构造添加任意种四按妞组成的box ------------------------------------------------------------------------------ 线程: 俄罗斯在线程中启动,所以在main函数中生成两个game的话,互相不受影响 如果启动了game的setKey方法的话可以让程序有了扩展双人对战的空间。。。。。 Timer本身就是用线程来实现的,可能和程序中的主线程产生事件处理先后顺序的问题 俄罗斯中的Game 的reStartGame方法中的currentBox的destroy方法就是处理一点点这上面的问题 ------------------------------------------------------------------------ swing界面及swing事件驱动 事件模型: 任意一种focusable的组件都可以用来监听另外一种组件上发生的事件,但是如果监听组件 本身失去焦点的话,它所监听失效。------------1.4后的swing模型功能强大,研究之。 ------------------------------------------------------------------------------ (毕竟红尘04.11.24) Game.rar (74.74k) |
2.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: 毕竟红尘 Posted on: 2004-12-21 17:24 突然觉得,失败的地方很多: 1.用到1.0时,会造成线程不安全的而被decprecated的线程方法stop() 2.在game类用busy waiting来一直判断生产出来box是否被消耗掉,于是占用了大量的cpu资源.这应该用到wait和notify来提高性能. 3.有人说自己编译过代码,但是却出现无法找到类actionbtn这样的问题,那我是我以前觉得无所谓默认包就可以了,现在觉得应该打包一下package com.zs 4.线程没同步好,conbtn中的方法应该有些要synchronized才行. 一起研究 |
3.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: caike Posted on: 2004-12-21 17:36 多谢分享,下下来研究研究 |
4.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: caike Posted on: 2004-12-22 09:29 大哥,您写的程序太强了,在我XP+SP2上,一运行就死机,比病毒还厉害:) 我就运行一个就这样 |
5.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: 毕竟红尘 Posted on: 2004-12-22 10:14 呵,首先要感谢兄弟的尝试.. 你试一下这个,上一个占cpu资源听我女朋友她们讲在90%以上...:! 那是因为在线程中出现了忙等待:bad usage of cpu cycle.. 呵呵,真丢脸:) 不过我改了,现在应该不会了.... jar可以直接运行,谢.. game.rar (36.93k) |
6.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: caike Posted on: 2004-12-22 12:11 呵呵,我再试试:) |
7.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: 毕竟红尘 Posted on: 2005-01-26 16:19 看看界面哦,原来border可以让组件漂亮许多....弱化了类关联,修改了结构,有兴趣可以看看哦. |
8.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: 毕竟红尘 Posted on: 2005-01-26 16:22 (缩略图,点击图片链接看原图) |
9.Re:帮人家写的俄罗斯方块游戏的结构. [Re: 毕竟红尘] | Copy to clipboard |
Posted by: OscarLao Posted on: 2005-01-27 13:48 经典的游戏……下载一份看看。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |