Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Java
You last visited: Today at 11:01

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Java/BlueJ] Pfeiltastensteuerung -need help!

Discussion on [Java/BlueJ] Pfeiltastensteuerung -need help! within the Java forum part of the Coders Den category.

Reply
 
Old   #1
 
Tim0n_'s Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 282
Received Thanks: 36
[Java/BlueJ] Pfeiltastensteuerung -need help!

Hallo liebe com,

Und zwar habe ich ein kleines problem, ich hab von meinem Lehrer in der schule eine extra Aufgabe bekommen wobei es um das steuern eines objektes (in dem fall einen Wurm/Raupe) per tasteneingabe..
Er selbst weiss nicht ob es möglich ist aber ich denke schon

Zum verständnis: Wir haben von ihm ein sogesehen vorgefertigten code bekommen mit Klassen für Rechtecke, Kreise, Quadrate und Dreiecke insklusive einer ausgabemöglichkeit in Form einer Leinwand.
Unsere aufgabe war es bisher einen Baum zu "zeichen/programmieren"
sprich stamm, krone, äpfel, Vogelhaus und einen Wurm.

mein Ergebnis sieht folgendermaßen aus:

so wie gesagt habe ich nun Die Aufgabe bekommen diesen kleinen aüßerst hübschen wurm mit pfeiltasten (vorerst nur nach rechts und links) zu bewegen.

ich hab mir dazu mehrere codes im Internet angesehen (stichwort Keylistener) aber irgendwie nur bahnhof verstanden
Außerdem müsste ich den wurm irgendwie gruppieren, da er mittlerweile noch aus 5 verschiedenen Objekten besteht und das denke ich zuviel schreibarbeit ist das alles einzelnd zu verschieben lassen..

meine Idee war folgende: Ich wollte die 5 Objekte zu einem Instanzieren und diese instanz dann per keylistener zu verschieben und dabei brüchte ich ein wenig hilfe weil ich nicht so ganz weiss wie ich das angehen soll ..

Ich hoffe das mir jemand helfen kann Mfg Timon

Ps: hier ist mein jetziger code den ich mir zusammengeastelt habe aber ich hab den mittlerweile wieder rausgenommen weil der 0 funktioniert hat..

Code:
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Steuerung extends JApplet implements KeyListener
{   
    private Raupe r1;
    public void init()
    {
        addKeyListener(this);
        r1 = new Raupe();
    }
    public void keyTyped(KeyEvent event) 
    {
    }
    public void keyPressed(KeyEvent event) 
    {
        if (event.getKeyCode() == KeyEvent.VK_LEFT) r1.horizontalBewegen();
        if (event.getKeyCode() == KeyEvent.VK_RIGHT) r1.horizontalBewegen();
       
        repaint();
    }
    public void keyReleased(KeyEvent event) 
    {
    }
    
}
wie schon zusehen ich würde ich gerne die einzelnden Objekte zu einer Klasse Raupe mit der variable r1 zusammenfügen aber da scheint mein konstructor oder wie das teil heisst nicht funktioniert zu haben (hab den code leider nicht mehr)

rechtschreibfehler behaltet bitte für euch, hatte diese nacht keinen schlaf ich darf das
Tim0n_ is offline  
Old 11/16/2014, 12:43   #2


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Die Raupe ist wirklich sehr hübsch. =D

Zur Gruppierung: Bau dir doch ne Klasse die das Skelett (also die Grundform) abbildet. Diese Klasse könnte entweder ne Liste oder Collection (weiß nicht wie das bei Java heißt, ich habe noch nie so wirklich in Java programmiert) haben in der alle Objekte enthalten sind, die gezeichnet werden müssen. Das setzt natürlich eine Schnittstelle (oder zumindest eine Klasse) voraus, die generisch gestaltet ist.

Ich denke nicht, das diese Voraussetzung erfüllt wird. Deshalb würde notfalls auch eine Klasse ausreichen, die alle Objekte enthält die zu zeichnen sind. Dort definierst du einfach mal ne Methode Move(Point destination) und lässt die Objekte verschieben. Somit trennst du den Part auch von der Interaktion, denn wenn du irgendwann mal die Raupe mit deinen Maustasten bewegen willst, würdest du hier entweder redundanten Code haben oder du müsstest alles in den neuen Eventhandler schieben.

C# Code der demonstriert was ich meine:

Code:
    public interface IMoveableShapeGroup
    {
        void Move(Point point);
    }

    public class Shape
    {
        public Point Position { get; set; }
        public string Description { get; set; }

        public Shape(string description, Point position)
        {
            Position = position;
            Description = description;
        }
    }

    public class Raupe : IMoveableShapeGroup
    {
        public List<Shape> ShapeComponents { get; set; }

        public Raupe(List<Shape> shapeComponents)
        {
            ShapeComponents = shapeComponents;
        }

        public void Move(Point point)
        {
            foreach (var shapeComponent in ShapeComponents)
                shapeComponent.Position = point;
        }
    }
PS: Dein Lehrer ist eine Banane, wenn er sich nicht sicher ist ob das umzusetzen ist.
Mostey is offline  
Thanks
2 Users
Old 11/16/2014, 13:28   #3
 
Tim0n_'s Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 282
Received Thanks: 36
Erstmal vielen dank für die Umfangreiche Antwort

Also klar, das war auch mein gedankengang aber irgendwie scheitert es dabei weil ich nicht genau weiss wie ich die objekte gruppieren kann :s

Ich kann die Gegenstände per code verscheiben lassen das bekome ich hin, jedoch weiss ich nicht wie ich die überleitung zu den pfeiltasten bekomme bzw wie ich diese dummen objekte in kleine arrays stecken kann ;D

also das mit den listen habe ich kapiert, aber im internet finde ich nur Beispiele für String listen aber ich will ja sogesehen keine random daten zusammenfügen sondern meine schon existierenden objekte

(tut mir leid ich bin wie gesagt noch in den anfängen.. )

ja er ist ne banane aber ne coole banane, er schaffts problemlos schüler in seinen bann zu ziehen da fällt die fachkompetenz kaum auf und man bekommt immer super nioten
Tim0n_ is offline  
Old 11/16/2014, 13:38   #4


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by Tim0n_ View Post
also das mit den listen habe ich kapiert, aber im internet finde ich nur Beispiele für String listen aber ich will ja sogesehen keine random daten zusammenfügen sondern meine schon existierenden objekte

(tut mir leid ich bin wie gesagt noch in den anfängen.. )


Der von dir gelieferte Code ist nicht ausreichend um dir diesbezüglich zu helfen, da musst du konkreter werden.

Zu der Pfeiltastengeschichte:
Mostey is offline  
Thanks
1 User
Old 11/16/2014, 13:54   #5
 
Tim0n_'s Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 282
Received Thanks: 36
das hier ist mein bisheriger code überhaupt nichts besonderes ganz im gegenteil:


wobei meine gruppierung sich nur auf "RKopf", "RKoerper", "RRAuge", "RLAuge" und "RMund" beziehen (das sind die einzelteile der Raupe)

zum verständnis wie ich zu diesen ganzen variablen und so komme packe ich hier nochmal den code der kreis klasse rein, der rest ist ähnlich aufgebaut wennn überhaupt nur mit leichten Abweichungen:


wie ihr schon sehen könnt ein ziemlich einfacher selbsterklärender code :P
und vielleicht gerade weil so simpel ist denke ich vielleicht einfach nur zu kompliziert ..
Tim0n_ is offline  
Old 11/16/2014, 19:49   #6


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Fasse doch einfach mal die Raupe zusammen wie ich dir zuvor schon gedeutet habe. Du hast dann ein Objekt der Klasse Raupe die alle Körperteile enthält und kannst damit dann interagieren. Du definierst dort die Move Methode und verschiebst jedes Körperteil einfach um X Stellen nach rechts (oder links, je nach Pfeiltaste) indem du die X Koordinate änderst. Versuch's einfach mal und liefere Ansätze, dann bessert das hier bestimmt nochmal jemand aus wenn es nicht ganz so funktioniert aber du solltest wirklich mal selbst versuchen hier weiterzukommen.

Ich weiß das du dafür nichts kannst aber das Design ist miserabel und dein Lehrer sollte wirklich mal bedenken, ob er sich nicht besser mal weiterbildet bevor er weiter lehrt. Vor allem lässt das eine Kommentar darauf schließen, dass er den Code schon seit mehr als 8 Jahren verwendet und das ist echt traurig.
Mostey is offline  
Thanks
1 User
Old 11/16/2014, 22:35   #7
 
Tim0n_'s Avatar
 
elite*gold: 1
Join Date: Mar 2011
Posts: 282
Received Thanks: 36
sooooooooooo ich hab mir mal was zusammengeschustert


und siehe da ich habe einen kleinen grünen kasten den ich nun am unteren "bildschirmrand" vom applet entlangwandern lassen kann mithilfe der Pfeiltasten LINKS und RECHTS !

jedoch verstehe ich nicht so ganz warum das system in der form funktioniert und nicht mit meinen anderen gezeichneten objekten :/
hier der alte code, überarbeitet mit dem funktionierenden code von oben:


dazu zu sagen das er mir keine errors auspuckt, compilen tut er alles problemlos, es passiert nur nix wenn ich das so im appletviewer öffne :/

PS: Edit: Ich habe den wurm nun komplett nach dem anderen muster "programmiert" und er bewegt sich ohne probleme und das auch ausgesprochen simpel, wenn jedoch jemand noch eine idee hat wie ich das applet nun auf mein baum layout bekomme wäre ich ihm sehr verbunden wenn er mir noch einen Lösungsansatz geben würde, ansonsten Danke ich dir Mostey!
Tim0n_ is offline  
Old 11/17/2014, 17:53   #8


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Wieso nennst du eine Klasse Steuerung und implementierst aber in der Klasse Baum genauso die Steuerungsfunktion? Das macht keinen Sinn und ist zu trennen.

Außerdem verstehe ich nicht wo genau das Problem ist. Du bewegst in dem Code nur RKopf (was vermutlich den Kopf der Raupe repräsentiert), kein Wunder das der Baum sich dann nicht bewegt ;O
Mostey is offline  
Reply


Similar Threads Similar Threads
Bluej Mp3 Player
02/26/2014 - General Coding - 0 Replies
Moin Leute, Hat irgendwer nen Mp3 Player mit Java/Bluej an dem ich mich orientieren kann? Der mP3 muss nicht umfangreich sein ganz Simpel ( Song auswählen,abspielen, stopp,start und ne Oberfläche) Vielen danke mfg yohnson
Java blueJ Ableitung einer Funktion
07/03/2013 - General Coding - 3 Replies
Guten Abend, meine AUfgabe in Informatik ist es mit einem Array,auf einer Oberfläche mit einer Ableitung einer Funktion + einen x wert den zugehörigen y Wert zu berechnen. Dabei ist es halt wichtig,dass ständig die coeffizienten im array gespeichert werden und dann mit einem x Wert multipliziert,sodass der zugehörige y wert herauskommt. Wie setze ich dies um?
Hilfe bei Bluej/Java programmierung
04/28/2013 - General Coding - 7 Replies
Moin Leute, ichbrauche jemanden der sich mit Java/Bluej. Wer sich halbwegs auskennt soll mich bitte anschreiben. es geht um einfache Dinge wie z.b. das programmieren eines Würfel etc. mfg yohnson :mofo:
Suche Hilfe bei BlueJ(Java)
01/16/2013 - .NET Languages - 8 Replies
Hallo, ich weiß nicht ob ihr BlueJ kennt , aber das haben wir auf jedenfall in der Schule in Informatik und ich muss als Hausaufgabe eine Methode schreiben. Das soll so eine Liste sein(also sowas ähnliches wie ein Array) und man weiß nicht wie lang die Liste ist, also das muss immer gehen und die soll den Durchschnitt aller Werte nehmen. ALso das soll ich in etwa machen und abgeben. Kann mir da jemand helfen? Würde dafür dann ein bischen Paypal oder sowas überweisen, wir werden...
Suche Hilfe bei BlueJ(Java)
01/16/2013 - General Coding - 20 Replies
Hallo, ich weiß nicht ob ihr BlueJ kennt , aber das haben wir auf jedenfall in der Schule in Informatik und ich muss als Hausaufgabe eine Methode schreiben. Das soll so eine Liste sein(also sowas ähnliches wie ein Array) und man weiß nicht wie lang die Liste ist, also das muss immer gehen und die soll den Durchschnitt aller Werte nehmen. ALso das soll ich in etwa machen und abgeben. Kann mir da jemand helfen? Würde dafür dann ein bischen Paypal oder sowas überweisen, wir werden uns...



All times are GMT +2. The time now is 11:02.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.