首页 / JAVA / Java控制台游戏开发|方法
Java控制台游戏开发|方法
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java控制台游戏开发|方法,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3205字,纯文字阅读大概需要5分钟。
内容图文
![Java控制台游戏开发|方法](/upload/InfoBanner/zyjiaocheng/764/dbcb615c13704273aa391c44897aa60b.jpg)
好吧,请允许我详述我的困境.
我正在用Java制作一个控制台游戏.它不会非常简单,但我也不希望它真正先进.我只是想用我学到的基础知识来测试我的技能.我已经开了几次,但经常遇到同样的“问题”.
这不是一个问题,只是我能做得更好的事情.解释它的最好方法是只显示一些示例代码.
这是我的主课.我们称之为“Main.java”.
package com.mattkx4.cgamedev.main;
public class Main {
public static void main(String[] args) {
}
}
好的,现在让我们在Main.java中创建一个新方法.我们将此方法称为“开始”.我们的主类现在看起来像这样:
package com.mattkx4.cgamedev.main;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
}
public static void start() {
System.out.println("This is the start.");
Scanner s = new Scanner(System.in);
System.out.println("Enter \"NEXT\" to continue.");
String in = s.nextLine();
if(in.equalsIgnoreCase("NEXT")) {
}else{
System.out.println("Please input \"NEXT\".");
start();
}
}
}
现在我们将添加两个方法.我们称之为“中间”和“结束”.我们完成的课程现在看起来像这样:
package com.mattkx4.cgamedev.main;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
start();
}
public static void start() {
System.out.println("This is the start.");
Scanner s = new Scanner(System.in);
System.out.println("Enter \"NEXT\" to continue.");
String in = s.nextLine();
if(in.equalsIgnoreCase("NEXT")) {
middle();
s.close();
System.exit(0);
}else{
System.out.println("Please input \"NEXT\".");
start();
}
}
public static void middle() {
System.out.println("This is the middle.");
System.out.println("Let's move on to the end.");
end();
}
public static void end() {
System.out.println("This is the end.\nFinishing up, and heading back to the start() method to close program.");
}
}
我在这里写的是一个非常低效的程序.编写代码的效率低下.必须有另一种方法来执行此程序,而不是调用其他方法内部的方法来移动程序.
我的问题摘要:上面的代码是编写控制台游戏最有效的方法吗?
提前致谢!如果您有任何问题,我将很乐意回答.
-马修
解决方法:
你的问题有很多种答案.我只列举一些基本的东西.
>您的设计是线性的,完全僵硬.不易伸缩.像这样的大多数应用程序,而不是链接任何方法等,以某种方式存储状态.这通常通过枚举来实现.了解state-based programming works是多么重要.所以你可能有类似的东西:
public enum GameState {
LOAD, START, STOP, BEGIN, MIDDLE, END, GAME_OVER // ... and so on
}
>您正在使用一堆静态方法.这肯定不是你想要做的.它完全放弃任何面向对象.如果你正在构建一个游戏世界,理想情况下,你将为你的世界中的每个不同对象创建一个类,并且它们将被安排在逻辑层次结构中,通过相互扩展或实现不同的接口.
>您将需要学习并发性.如果游戏具有任何复杂性,那么您的用户输入几乎必然与游戏渲染异步.至少,您可能至少需要Swing才能创建GUI.
因此,只需使用这三个非常基本的注释,您将需要学习object-orientation,polymorphism,concurrency以及所有可用的各种数据结构.坦率地说,您的示例具有Java 101项目的复杂性. (我不是说那是卑鄙的.)如果你打算制作一款真正的游戏,那么在你取得真正的进展之前,你需要更多的基础知识.
你的思维很重要,你编程的目标很大,这很好.但是把这个大梦想打破成可管理的大块.它会让你越走越快,也会让你灰心丧气.
祝你好运!
作为旁注,如果你开始编写一些简单的游戏(甚至像控制台的Hangman或Tic-Tac-Toe这样简单的游戏),请到Code Review Beta.我们非常乐意给你一个详细审查您的代码,并帮助您成为一名资深程序员!这是一个很好的社区,有很多非常有建设性的批评.我在那里帮助过那些人(使用Java)并且在学习Python时获得了很多帮助.
内容总结
以上是互联网集市为您收集整理的Java控制台游戏开发|方法全部内容,希望文章能够帮你解决Java控制台游戏开发|方法所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。