2017-11-15 3 views
2

私は現在、Codename Oneを使用して小惑星ゲームを作成している学校プロジェクトを行っています。私の現在の機能は、船のイメージを回転させることを除いて、うまくいきます。 Transformクラスの使用は効果がありませんでした。 Transformがどのように適用されているか、画像が描画されていても、画像は回転しません。ここCodename OneのTransformクラスを使用してコマンドでイメージを回転するにはどうすればよいですか?

が有効に使用されるコードのサンプル部分である:

public void turnRight() //Rotates the ship 5 degrees clockwise 
{ 
    if (direction==355) 
     direction = 0; 
    else 
     direction+=5; 
    Transform tmpTransform = Transform.makeIdentity(); 
    theImage.getGraphics().getTransform(tmpTransform); 
    tmpTransform.rotate((float)Math.toRadians(5), x, y); 
    theImage.getGraphics().setTransform(tmpTransform); 
    theImage.getGraphics().drawImage(shipPic, 0, 0); 
} 

  • theImage可変画像(100×100)
  • shipPicイメージを介して作成された画像です。 createImage(String path)

さらに、draw(Graphics g、Point p)mを試してみました。エジプトを渡してtheImage.getGraphics()を渡し、shipPic.getGraphics()を渡します。 私は紛失しています。この問題に関するCodename Oneのドキュメントは役に立ちません。

私はいくつかの援助を得ることができますか?

+0

必要なものすべてをカバーするかどうかは不明ですが、アニメ時計が作成されたブログの投稿があります。 https://www.codenameone.com/blog/codename-one-graphics-low-level-animations.html –

答えて

1

あなたが1枚のグラフィックスを使用する必要があるオブジェクトので、このような何か:

グラフィックスグラム= theImage.getGraphics();

もっと正確でしょうか。また、低レベルのグラフィックがすべてのサーフェスのすべてのOSに移植可能であるとは限らないため、イメージをレンダリングする際に変換サポートをテストする必要があります。良い例は、画像上のレンダリングが表示レンダリングとは全く異なる低レベルの実装を使用するiOSです。

通常は、現代のデバイスではハードウェアアクセラレーションが適用され、イメージはソフトウェアで実装されることが多いため、ディスプレイに直接レンダリングします。

ドキュメントについては、開発者ガイドのgraphics sectionをお読みになりましたか?

すべての説明が含まれていなければなりません。欠けているものがある場合はsearchです。あなたがまだ何かを見つけられず、自分で気づいてもわからない場合は、edit the docsもあります。

+0

パースペクティブ変換はシミュレータではサポートされていませんが、アフィン変換はサポートされていません。 - グラフィックスがオブジェクトに格納されている場合にのみ、g.getTransform()を使用しないでください。 - ほとんどのマニュアルやドキュメントで実際にイメージの変換方法は教えていません - 2Dアフィン変換は次のとおりです。 _completely_ undocumented(https://www.codenameone.com/javadoc/com/codename1/ui/Transform.html#rotate-float-float-float-を参照) アドバイスありがとうございます。 – TheMiscGamer

+0

Java SEは 'Graphics2D'で適切なパースペクティブ変換を実際にサポートしていないため、パースペクティブはシミュレータ上で問題があります。生成されたメモリガーベジを減らすために使用される 'getTransform(Transform t)'を特に指す、非推奨コメントがあります。これについてはjavadocでもいくつか議論がありますが、そこにはありますか?https://www.codenameone.com/javadoc/ 'Transform'クラスと他のクラスを見ています。 –

+0

私はSteveにこれについて尋ねました。彼は一般的にこれがより多くのサンプルを使用することに同意しました。彼は私にこれを指摘しました:https://www.codenameone.com/blog/perspective-transform.html –

関連する問題