zoukankan      html  css  js  c++  java
  • 关于javaswing做的游戏的一点小总结x

    之前看了几个swing小游戏,也动手敲了下,比如俄罗斯方块,小鸟,“是男人就坚持30秒”,射击游戏等,有点小总结:

      所有swing做的游戏,无非是一种页面,一种可以与人交互,可以控制的动态页面,这其中就涉及到一些问题,我将它总结成了三个大步骤

      静态:

      目的:这个阶段先设计好类,并抽出父类和接口。若多个都满足有共同属性,抽父类(最好抽象类),若满足某实体既满足***又***则将后者设计为接口。

    在界面上显示出每个实体,不需要它动,只需要能够在面板上显示出来,现不考虑谁先谁后的顺序,也不考虑什么实体的出现于其他的实体的出现有关。

      

      动态:

      目的(就射击游戏而言):

        动态效果的第一步就要做:让各个实体按照标准顺序进入面板,不能使静态存在了,比如射击游戏里面,英雄机可以直接在面板初始化的时候出来,敌机和小蜜蜂就需要通过共同父类FlyingObject随机生成(位置范围给定),然后推到面板,然后子弹是根据英雄机的坐标确定,所以子弹是通过英雄机的方法shoot得到并显示出来

        第二步:让实体动一步,英雄机喷气,敌机小蜜蜂下落,子弹发出

        第三步:既然动了一步,就要考虑是否有碰撞或者子弹击中事件发生,并处理,这是代码量最多的一步

        第四步:处理事件之后,需要将多余的清理掉(越界的删除,碰撞的删除,子弹消除)

        第五步:判断游戏是否结束

        第六步:不要忘了,需要重绘

      可控制的动态:

        这个阶段就需要控制状态了,比如开始的时候不能动,显示开始界面,游戏结束后不能动,要清除实体,并显示gameover界面,注意理清什么阶段应该显示哪些实体和产生什么事件,就在这些事件或方法前加状态,比如

              if(state==RUNNING){}

  • 相关阅读:
    第六周总结
    《构建之法》读后感二
    移动端疫情展示
    第五周
    用python爬取疫情数据
    第四周
    疫情图表展示和时间查询
    wpf datagrid row height 行高自动计算使每行行高自适应文本
    c# 实现mysql事务
    c# 简单实现 插件模型 反射方式
  • 原文地址:https://www.cnblogs.com/jamsbwo/p/4681741.html
Copyright © 2011-2022 走看看