【问题标题】:Calling an infinite loop in a Java applet在 Java 小程序中调用无限循环
【发布时间】:2023-03-21 13:05:01
【问题描述】:

我开发了一个图形库,为了展示它的功能,我开发了一个简单的“Pong”克隆。我创建了一个运行游戏的新小程序,并且作为 Java 新手,我将游戏的循环放在了绘制函数中。我正在寻求将循环迁移到不同的函数,以便它仍然运行但 destroy() 调用响应。

这在 Java Applet 中是否可行?我不想在任何阶段挂起小程序,例如初始化(),油漆(),销毁()。我应该尝试不同的方法吗? 谢谢!

这里是我的代码的链接:

实际游戏:http://pastebin.com/vr541pnE

图形库:http://pastebin.com/5MMWqthf

【问题讨论】:

    标签: java loops applet freeze destroy


    【解决方案1】:

    我建议您创建一个单独的方法 run() 包含您的主循环。

    根据这个javadoc Applet,您可以使用start()stop() 来启动或停止游戏主循环。

    • start() 会调用 run()
    • stop() 会像在 destroy() 中一样设置一个布尔值来停止主循环。
    • init() 通知小程序它已被加载到系统中,在那里您可以创建任何应该在游戏循环之外持续存在的对象。
    • destroy() 通知小程序它应该销毁它已分配的任何资源,主要用于销毁由init() 创建的对象。

    您的简单游戏可能会这样运行:

    1. 浏览器加载小程序。
    2. 浏览器调用init() -> 加载小程序,创建对象并加载资源。
    3. 浏览器调用start() -> 小程序开始执行,调用主循环。
    4. Applet 运行由start() 调用的主循环。
    5. 浏览器或游戏调用stop() -> 结束或暂停主循环。
    6. 浏览器调用destroy() -> 小程序可以销毁任何创建的对象。

    您将在Applet Javadoc.中找到更多详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 2011-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多