Koordinaten der Maus wiedergeben

Hi,

Wir "programmieren" seit den Herbstferien mit BlueJ und erstellen dort ein erstes sehr einfaches programm ( mit sum.kern) mit dem fantasievollem namen "Tötet den Affen".
Nun zu meinem Problem : Ich möchte die Kanone in die Richtung schießen lassen, bei der ich von der Kanone ausgehend mit der Maus bin. 🙂

Gibt es eine Lösung das ich z.B schreiben kann meinBuntstift.vPosition() = x wobei x die vertikale Koordinate für die Zielrichtung der Kanone ist? (Natürlich das gleiche mit y)

Danke an alle Antworten :toll:
 
Auch wenn das sozusagen der "richtige" Ansatz wäre, wird das in einer BlueJ/SUM Umgebung wohl nicht viel helfen.
Ich selbst hab mit BlueJ/SUM noch nie was gemacht, aber laut JavaDoc von SUM gibt es die Methoden hPosition() und vPosition() von der Klasse Maus.
Darüber solltest Du die gewünschten Werte doch erhalten können?
 
Ach...Schande über mein Haupt..das gibts ja wirklich..Dachte 'sum.kern' sei ein Anfängerfehler.
Naja..Hab mit BlueJ noch nie was Anfangen können.
 
Eigentlich schon aber es hat ja nicht so geklappt deswegen frage ich ja hier...
Ich glaube ich kopier mal das programm hier rein. Das hilft vllt


Java:
import sum.kern.*;
/**
 * @author 
 * @version 
 */
public class Affe
{
    // Objekte
    Bildschirm derBildschirm;
    Stift meinStift;
    Buntstift meinBuntstift;
    Maus meineMaus;
    int y;
    int x;
    int i;

    // Konstruktor
    public Affe()
    {
        derBildschirm = new Bildschirm(800,600);
        meinStift = new Stift();
        meinBuntstift = new Buntstift();
        meineMaus = new Maus();
        
    
    }
    

    // Dienste
    public void fuehreAus()

    
    {
        // Aktionsteil
       
        meinStift.bewegeBis(395,580);//Kanone
        meinStift.zeichneRechteck(10, 20);
        
        meinStift.bewegeBis(400,5); //Affe
        meinStift.zeichneKreis(100);
                       
        meinBuntstift.bewegeBis(400,580);
        
        meinBuntstift.vPosition() = x;
        meinBuntstift.hPosition() = y;
        
        meinBuntstift.dreheZu(x,y);//Zielrichtung der Kanone
        
        meinBuntstift.bewegeBis(400, 573);
        
        meinBuntstift.setzeFarbe(Farbe.PINK);
        
        
        for(i=0;i<1000000000;i=i+1)//Schleife für Kugel
        {
           if(meinBuntstift.vPosition()<97)
            {
              meinStift.bewegeBis(400,5);
              meinStift.radiere();
              meinStift.zeichneKreis(100);
            }
        meinBuntstift.setzeLinienbreite(5);//Bewegung
        meinBuntstift.zeichneKreis(1);
        meinBuntstift.bewegeUm(0.015);
        meinBuntstift.zeichneKreis(4.5);
        meinBuntstift.bewegeUm(-0.015);
        meinBuntstift.radiere();
        meinBuntstift.zeichneKreis(4.5);
        meinBuntstift.bewegeUm(0.015); 
        meinBuntstift.normal();
       }
        
        
        
        
        
        
        
        
      
    }
}

Und mein Problem liegt in Zeile 44 und 45...
So wie es da steht klappt es nicht 🙂

Danke an die schnellen Antworten
 
Naja. Ohne das zu kennen dünkt es mich falsch rum.
x = ...
y = ...
um die Koordianten zu hohlen und in X,y zu speichern.
Du möchtest doch das von meinBuntstift.vPosition() im x speichern.
(umgekehrt ist das etwa so wie gar nichts machen)
 
Und mein Problem liegt in Zeile 44 und 45...
So wie es da steht klappt es nicht 🙂

Also mein Kompiler meldet bei einem Vergleichbaren Versuch:

The left-hand side of an assignment must be a variable

Java:
meinBuntstift.vPosition() = x;
meinBuntstift.hPosition() = y;
ist sicher falsch! Du willst einem Funktionsaufruf einen Wert zuweisen????
Erklär uns doch mal was das hier genau bewirken soll.

Da ich keine Ahnung habe was du genau machen willst und meine Glaskugel wie immer in Reparatur ist ....

Deinen Buntsift auf die Position x/y setzen geht sicher schief das x und y nicht initialisiert sind (Wert = 0);
und müsste mit den set Methoden gemacht werden
Ich habe keine Ahnung was Buntstift für eine Klasse ist, also ist das als Pseudocode zu verstehen:
Java:
meinBuntstift.setHPosition(x);

oder du willst die aktuelle Position speichern, das müsste aber so aussehen:

Java:
x = meinBuntstift.vPosition();

was aber auch wieder nicht viel Sinn macht, da du x nirgendwo verwendest
 

Zurück
Oben