2016-05-04 14 views
0

私はjavaを初めて使用しています。現在、私の最初のゲームに取り組んでいます!私は、私が読んだ本のおかげでそれに似たボタンやものを作る方法を知っています。 しかし、BufferedImageをクリック可能なオブジェクトにすることはできますか? これは決してカバーされませんでしたが、私はそれがクリッカーゲームなので、私はそれを必要としています。自分のクラスにあるモンスターをクリックしてdrawImageでペイントする必要があります。BufferedImageをクリック可能にするのに問題がある場合

誰でも私にこれを実現させるためのサポートを提供できますか? また、モンスタークラスでこれを行い、ペイント後でもクリック可能な機能を維持することは可能ですか? これについて調べてみましたが、マウスリスナーが必要なように思えますが、それはかなりの方法をカバーしていません。とにかく私の理解のレベルにではありません。謝罪します;私はむしろ大嫌いです。

//Imports 
    import javax.swing.*; 
    import javax.swing.event.*; 
    import java.awt.event.*; 
    import java.awt.*; 
    import java.awt.image.*; 
    import java.io.*; 
    import javax.imageio.*; 
    import java.util.*; 

    public class Monster 
    { 
    static final double BASE_MONSTER_HEALTH = 10; 

    static double monsterHealth; 
    static double monsterDamage; 

    BufferedImage monsterSprite; 
    String monsterName; 
    Random rand = new Random(); 

    public Monster() 
    { 
     monsterHealth = Math.pow(RPGClicker.room, 2) * BASE_MONSTER_HEALTH; 
     monsterDamage = RPGClicker.room + 1 - RPGClicker.defenceLevel; 
    //Types of monsters. 
     String monster[] = {"Ork", "Mermaid", "Goblin", "Fish", "Griffen", "Cerberus", "Empousai", "Gorgon", "Stymphalian Bird", "Chimera", "Ichthyocentaur", "Typhon", "Minotaur", "Fury", "Hydra", "Sphinx"}; 
     String monsterType = monster[rand.nextInt(monster.length)]; 
     monsterSprite = ImageLoader.loadImage("rec/alpha/monster/" + monsterType + ".png"); 
    //Friends. <3 
     String[] firstName = {"Lucas", "Ben", "Caytlynn", "Fay", "Seth", "Jostein", "Paige", "Luis", "Josefiina", "Patricia", "Angus", "David", "Manjit", "Matt", "Maya", "Richard", "Roman", "Rudy", "Téa", "Fi"}; 
     String connection1 = " the "; 
    //Adjectives 
     String[] secondName = {"Powerful ", "Unstoppable ", "Almighty ", "Vigourous ", "Formidible ", "Mighty ", "Cowardly ", "Intoxicated "}; 
     String connection2 = " of "; 
    //The seven deadly sins/the sins of which each demon represents. 
     String[] thirdName = {"Sloth", "Wrath", "Pride", "Greed", "Lust", "Envy", "Gluttony"}; 

     monsterName = firstName[rand.nextInt(firstName.length)] + connection1 + secondName[rand.nextInt(secondName.length)] + monsterType + connection2 + thirdName[rand.nextInt(thirdName.length)]; 
    } 
    } 

答えて

0

私は10のためのスターターとしてあなたはJButtonのにイメージを回して考えることができると思う - のJButtonを拡張し、paintComponentsメソッドをオーバーロード - これは、それがクリック可能になるだろう。

+0

私は、JButtonに画像を回転させてJButtonを拡張し、paintComponentsメソッドをオーバーロードすることを検討することができると考えています。これにより、クリック可能になります。 私はそれを考えていた!しかし、私はそれでもグラフィックを変更することができるようにしたい、私は試していないが、私はクリックして戻って変更すると半分の時間のJBu​​ttonの画像を変更することができますか? 私はそれを一時的な解決策として考えていますので、少なくとも自分自身のゲームの基礎をコーディングすることができます。それは私が単にそうする前に尋ねると思ったものでした。 –

+0

オーバーロードJButtonは、マウスクリックイベントをリスンするものが必要な場合の標準的なSwing公理です。イメージをレンダリングするには、paintComponentメソッドをオーバーライドする必要があります。 – Lee

+0

ああ!今私はそれについて考える! JButtonをカスタムの場所に配置することはできませんか? 私のmonsterSpriteはx、y座標にあります。 私が知る限り、JButtonをJPanelに追加する必要があります。そのモンスターがgameSceneのどこに置かれるかのような柔軟性はありませんか? –

関連する問題