Java游戏通用设计-乒乓球
我在爪哇打乒乓球是为了好玩。我刚刚完成了俄罗斯方块,但开始构建游戏时出现了错误,因此整个程序的设计都很糟糕,这限制了我可以做的事情 这一次,我想从现在开始。我想:Java游戏通用设计-乒乓球,java,swing,design-patterns,model-view-controller,Java,Swing,Design Patterns,Model View Controller,我在爪哇打乒乓球是为了好玩。我刚刚完成了俄罗斯方块,但开始构建游戏时出现了错误,因此整个程序的设计都很糟糕,这限制了我可以做的事情 这一次,我想从现在开始。我想: 按照MVC模式创建游戏 有合理的班级组织和脱钩 正确使用封装 将GUI与游戏规则分开 也就是说,我提出的班级结构是否正确使用了班级 Main类:扩展JFrame负责将JPanel添加到JFrame并初始化游戏 将GamePanel和ScorePanel添加到JFrame 设置其大小和位置等。。。(使用frame.pack()…)
- 按照MVC模式创建游戏
- 有合理的班级组织和脱钩
- 正确使用封装
- 将GUI与游戏规则分开
- 将GamePanel和ScorePanel添加到JFrame
- 设置其大小和位置等。。。(使用frame.pack()…)
- 初始化游戏-
publicstaticvoidmain(String[]args){…
- paintComponent()将形状(桨和球)绘制到屏幕上
- 具有边界和碰撞(球与桨碰撞)规则
- KeyListeners(不确定是否在正确的位置)
- 游戏计时器设置游戏的节拍
- 比赛得分、比赛结束规则、水准
- 球反弹时的角度(不确定是否在正确的位置)
- paintComponent()将分数和其他数据绘制到屏幕上
- getX(),getY()
- getColor()
- 设置位置(x,y)
问题:
- 不确定在哪里放置数学来计算球应该反弹的角度
- keyListener应该去哪里
- 如何使用“游戏循环”而不是让游戏通过
运行paintComponent()
- 尝试遵循MVC模式……这能实现吗
看看这篇文章,看看如何组合一个中等复杂的Swing GUI。我没有任何视频游戏的例子给你看。看起来你可能还需要一个Block类来处理那些被球破坏的块。你基本上了解MVC。有时候V&C层会有点分组,但是你的M层看起来很棒(除了Block类)@D.R.我正在做游戏
pong
,你只需来回弹起球。没有任何阻挡会被打破:)哦!对不起!我想的是错误的游戏(突破).那么你的模型层看起来很完美!而且看起来V&C层也很不错!@D.R.好的,你知道我应该在哪里添加角度计算和所有的数学计算吗?为什么投票决定关闭…我认为这是一个足够普遍的问题,人们可以从中受益(MVC、基本OOP设计方法等)谢谢你的回答,吉尔伯特。我在上面更新了一张图片,我认为我的课程如何符合维基百科给出的MVC图片。这有意义吗?Thanks@Growler:从逻辑上讲,这些图表是有意义的。从物理上讲,如果没有大量不必要的wo,您将无法将Java Swing代码清晰地分离到模型/视图/控制器中rk。