俄罗斯方块Demo

来源:互联网 发布:淘宝话费充值店铺介绍 编辑:程序博客网 时间:2024/06/05 18:28

起因

其实是面京东伤心了,问啥啥不会,就拿个项目认真写写,写啥呢?俄罗斯方块呗;主要其实想玩一下io还有序列化;现在都基本实现了一下,下一步就是认真看看这两东西,或者就是看看socket方面的东西,反正就是一句话,玩项目,看书,巩固基础;
代码传送门

类图

主要参考 这个代码有一些问题,我都改掉了;

这里写图片描述

MVC的架构还是很清楚的吧;

这里写图片描述
具体类图如下:
这里写图片描述

这里写图片描述

这里写图片描述

遇到的问题

  1. 游戏方面的问题,形状在碰到墙后,其实是可以旋转的,所以就写了半天,但是还是会有bug的,但是我发现游戏嘛,和代码关系也少,就不继续了;
  2. 线程方面,因为要暂停线程,使形状不再下降,所以就需要wait()了,然后这里遇到的主要问题就是synchronized() 锁的是谁了?以下面的代码为例,必须明确书写锁住对象,否则就会出现线程监视器不对的问题
public synchronized void continueThread()    {        /*        唤醒线程         */        synchronized (shapeDriver)          //必须锁住线程对象,否则将报错        {            suspended = false;            System.out.println("akjhjkahfskfhlasfk");            shapeDriver.notify();        }    }
  1. 序列化部分,其实很简单;但就是因为很简单所以等同于没学。。。。;
  2. 各种小问题吧,由于参考代码是有问题的,所以就很麻烦;比如有一处shapelistene,它是随着面板初始化,有时候成功,有时候失败;成功就没有问题,失败就完蛋;所以就改成了共享对象放在了构造函数里;这样就不会有问题;
  3. UI部分编程简直了。。。。;
0 0
原创粉丝点击