1

ですから、私はまだJavaにかなり慣れておらず、ゲームを作ろうとしています。オンラインのチュートリアルを使用して、本当に基本的なゲームエンジンを作成しました。Engine(コア)、Sprite、SpriteManagerの3つのクラスがあります。これらの各クラスは、1つのパッケージ内の独自の.javaファイルに記述されています。私はNetBeansを使用しており、ゲームのフロントエンドを処理するために別の.javaを作成したいと思います。私が信じているもののApplicationクラスを拡張するものはJavaFXです。唯一の問題は、このファイルを作成してゲームを実行しようとすると、デバッグコンソールに次のメッセージが表示されることです。

run:
java.lang.NoSuchMethodException: kingdomsclash.Engine.main([Ljava.lang.String;)
    at java.lang.Class.getMethod(Class.java:1622)
    at com.javafx.main.Main.launchApp(Main.java:656)
    at com.javafx.main.Main.main(Main.java:805)
Java Result: 1
jfxsa-run:
BUILD SUCCESSFUL (total time: 4 seconds)

Engineは単なるクラス宣言ですが、NBはFrontEndファイルを実行しようとしておらず、代わりにEngine.javaを使用しているようです。フロントエンドは、新しいJavaファイルhello worldを作成するときにNBによって作成されるテンプレートです。Main Class他のクラスはインスタンス化されません。

TL; DR

  1. Javaアプリを最初にフロントエンドで実行するか、上記のエラーを修正するにはどうすればよいですか?

ご助力ありがとうございます。その他の情報が必要な場合は、遠慮なくお問い合わせください。:)

4

1 に答える 1

2

NetBeansでは、クラスフィールドに移動してクラスに一致するようFile | Project Properties | Runに変更できます(クラスにはメソッドが含まれ、JavaFXが拡張され、メソッドも含まれている必要があります)。 Applicationkingdomclash.FrontEndmainApplicationstart

プロジェクトを元々JavaFXプロジェクトとして設定している限り、機能するはずです。

単なるJavaプロジェクトの場合、NetBeansはJavaFXランタイムを検出しない可能性があります。その場合は、以下の手順に従ってください。既存のコードがSwing用に記述されている場合は、最初に開始するときに不要な複雑さをもたらす2つのシステムを混在させようとするのではなく、JavaFX用に書き直すことをお勧めします。

NetBeansには、JavaFXアプリケーション用の特別なプロジェクトおよびプラットフォームタイプがあり、これを使用する必要があります(そうでない場合、javafxランタイムが見つかりません)。セットアップ方法に関するドキュメントがあります(ただし、現在のJavaFX 2.2リリースではなく、プラットフォームのセットアップがより複雑な古いJavaFX 2.1リリースを参照しているため、残念ながら現在は古くなっています)。基本的に、実行する必要があるのは、最新のJavaバージョン(jdk 7.7u6 +)と最新のNetBeansバージョン(7.2+)を使用し、新しいを選択することProject | JavaFX | JavaFX Applicationです。NetBeansは、実行できる基本的なhelloworldスケルトンを作成する必要があります。ゲームコードをコピーしてそこに貼り付け、JavaawtクラスやswingクラスではなくJavaFXクラスのみを使用していることを確認してください。

また、JavaFXを使用してスプライトアニメーションを作成するためのこの非常に優れたチュートリアルにも興味があるかもしれません。

于 2012-09-22T21:04:58.483 に答える