Informatik – die neusten Beiträge

Wie kann Java auf ein User-Input warten?

Guten Tag,

ich programmiere gerade ein kleines Java-Projekt.

Dort hat bis jetzt auch alles geklappt, doch nun weiß ich nicht mehr weiter.

Ich habe für den Start meines Programms dieses GUI erzeugt:

Wie da ja schon steht, soll der User 'W' drücken, damit das Spiel anfängt. Doch ich weiß nicht, wie ich das programmieren kann. Ich habe schon eine Klasse (KeyHandler) angelegt, die KeyListener implementiert und die ich schon meinem Programm hinzugefügt habe, doch passieren tut dabei nichts.

Ich habe auch schon eine Ahnung warum: Die Variable 'commands.isRunning' wird direkt überprüft (und danach nicht mehr) und deshalb der If-Teil überschprungen. Wie kann jetzt Java auf einen User-Input warten, damit die Variable nicht sofort überprüft wird?

Hier ist meine Draw Klasse:

(commands.isRunning ist gerade noch false, soll aber durch das 'W' true werden. Die Methode, die dadurch aufgerufen werden soll, steht in der Klasse Commands)

public class Draw extends JPanel implements Variables {

    Commands commands = new Commands();
    KeyHandler keyHandler = new KeyHandler();

    Player player = new Player();
    Donut donut = new Donut();

    Draw() {
        this.addKeyListener(keyHandler);
        this.setPreferredSize(new Dimension(SCREEN_WIDTH, SCREEN_HEIGHT));
        this.setBackground(Color.black);
        this.setFocusable(true);
    }

    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        commands.printStartText(g);
        
        if (commands.isRunning() == true) {

            // Draw Grid
            for (int i = 0; i < SCREEN_HEIGHT / UNIT_SIZE; i++) {
                g.drawLine(i * UNIT_SIZE, 0, i * UNIT_SIZE, SCREEN_HEIGHT);
                g.drawLine(0, i * UNIT_SIZE, SCREEN_HEIGHT, i * UNIT_SIZE);
            }

            // Place Player
            player.placePlayer(g);

            // Place Donut
            donut.placeDonut(g);

            // Place Barrier

            // Place Gadget

            // Set Default Color
            g.setColor(Color.darkGray);

        }
    }
}

Und hier die KeyHandler Klasse:

public class KeyHandler implements KeyListener {

    Commands commands = new Commands();

    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub
    }

    @Override
    public void keyPressed(KeyEvent e) {

        switch (e.getKeyCode()) {
        case KeyEvent.VK_W:
            commands.startGame();
            break;

        case KeyEvent.VK_A:

            break;
        case KeyEvent.VK_S:

            break;
        case KeyEvent.VK_D:

            break;
        }
    }

    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub

    }
}

Auch habe ich schon 'System.in.read' hinter 'commands.printStartText(g);' platziert, doch da wurde dann nur ein weißes Bild angezeigt.

Ich hoffe ihr könnt mir helfen!

Schon mal vielen Dank im voraus.

Bild zum Beitrag
Computer, Technik, programmieren, Java, Informatik, GUI

Kann man mit einem Wirtschaftsinformatik-Studium immer noch Software-Entwickler werden?

Hi, ich habe letztens mit meinem Wirtschaftsinformatik-Studium begonnen und bin jetzt am Ende meines ersten Semesters. Grundsätzlich gefällt mir das Studium auch, nur ich merke ziemlich dass mir der Informatikteil deutlich mehr gefällt als der Wirtschaftsinformatik / BWL VWL Teil. Grundsätzlich ist die Verteilung zwischen Wirtschaft und Informatik ziemlich genau 50 50. Am Anfang deutlich mehr Wirtschaft / Grundlagenmodule, ab dem 3. Semester sind es 2 / 3 Informatikmodule (Algorithmen und Datenstrukturen, Datenbankensysteme usw).

Ich habe jetzt jedoch oft gehört, dass Wirtschaftsinformatiker am Ende viel mehr die Schnittstelle zwischen Informatik und BWL darstellen und zb häufig im IT Projektmanagement oder bei Anwendungssystemen wie SAP zu finden sind. Dass ein Wirtschaftsinformatiker am Ende ein Softwareentwickler ist soll eher selten vorkommen.

In dem Studienführer des Studiengangs der Universität steht zwar, dass Software-Engeneering auch zu den Berufsfeldern gehört die Wirtschaftsinformatiker ausüben können, jedoch habe ich von vielen Leuten mittlerweile etwas anderes gehört.

Demnach sei man in diesem Bereich strenggenommen ein "schlechterer Informatiker" und somit ein Schlechterer Softwareentwickler als jemand der reine Informatik studiert hat...

Auch die Verteilung der Fächer kommt mir irgendwie so vor, deutlich weniger Mathe als die Informatiker, keine Module wie technische oder theoretische Informatik, und dafür viele Grundlagendinge wie Rechnungswesen oder Mikroökonomik. Gerade in Leipzig ist die Verteilung eben sehr stark 50 50 und daher habe ich schon irgendwie das Gefühl dass mir wichtige Grundlagen für das Berufsfeld fehlen würden... Nicht zuletzt habe ich gerade mal ein einziges Programmiermodul in meinem Studiengang. Zwar dafür mit 3 mal die Woche am häufigsten, aber irgendwie trotzdem sehr begrenzt.

Also stimmt es, dass man als Wirtschaftsinformatiker in der Softwareentwicklung eigentlich nichts zu suchen hat, oder kann man auch als Wirtschaftsinformatiker Softwareentwickler werden ?

Und falls das so sein sollte, was sind die besten Möglichkeiten das ganze in die Richtung zu lenken ? Nochmal abbrechen und reine Informatik studieren ? Oder einen Master in Informatik hinterherschieben ? Sich weitere Programmiersprachen einfach eigenständig aneignen ?

LG Valentin

Schule, Informatik, Softwareentwickler, Wirtschaftsinformatik, Ausbildung und Studium, Wirtschaft und Finanzen, Beruf und Büro

PROCESSING- Layer festlegen und undurchlässige objekte erstellen?

hallo, wir haben in der schule seit kurzen ein paar pogrammier grundlagen mit processing.

das ziel ist es ein kleines spiel selbst zu programmieren.

ich habe mit einem spiel angefangen in dem man einen kleinen character hat (eine png datei) den man nach rechts und links steuern kann und der springen kann.

außerdem habe ich ein paar röhren eingebaut durch die der character hindurchlaufen soll.

hier kommen wir zu meiner ersten Frage: ist es möglich das ich verschiedene laye festlege, also das die röhren über dem character liegen, diesen also verdecken?

und meine zweite frage ist: ich habe ein paar schwebende plattformen erstellt auf die der character hinaufspringen können soll. allerdings fällt dieser momentan noch einfach hindurch. wie bekomme ich diese platformen solide? d.h. das wenn der character darauf landet, soll er darauf stehen bleiben und nicht hindurchfallen.

anbei noch der code, allerdings ziemlich wirr.

gif&gif2 = chaacter

danke schonmal.

PImage[] gif;
PImage [] gif2;
int nof;
int f;    // für die Laufanimation
int k;
PImage platform;
PImage hintergrund;
PImage Rohr;
PImage Rohr2;
int x = 0;
float y = 0;
boolean mover;
boolean movel;
boolean springen;
boolean rohr = false;


float jump;


boolean rechts;








void setup() {
  frameRate(130);
  size(1920, 1080);


  Rohr = loadImage("R.png");
  Rohr2 = loadImage("R2.png");
  platform = loadImage("platform.png");


  nof = 5;  
  gif = new PImage[nof];  
  int i = 0;  
  while (i < nof) { 


    gif[i] = loadImage("pixil-frame-"+i+".png");


    i=i+1;
  }   // laufanimation rechts




  gif2 = new PImage[nof];  
  int g = 0;  
  while (g    < nof) { 


    gif2[g] = loadImage("pixi-frame-"+g+".png");
    g=g+1;
  }   // laufanimation links








  hintergrund = loadImage("hintergrund.png");


  movel = false;
  mover = false;
  rechts = true;


  x = 50;
  y = 880;
  jump = 0;
}


void draw() {
  background(hintergrund);


  rohr = x > 0 && x < 10 && y > 370 && y < 490;


  println (mouseX+","+mouseY);






  image(Rohr, -20, 350, 100, 150);


  image(Rohr2, 1840, 60, 100, 150);
  image (platform, 0, 490);
  image (platform, 1660, 200);


  if (rechts) {


    image(gif[f], x, y, 160, 120);  //anfang laufen


    if (frameCount % 5 == 0)   f = f + 1;
    if (f == nof) f = 0;
  } else {
    image (gif2[k], x, y, 160, 120);


    if (frameCount % 5 == 0)   k = k + 1;
    if (k == nof) k = 0;
  }


  y = min(y+jump, 880);


  jump = jump + .28;








  if (x > 1300) {
    x = -150;
  }


  if (rohr) {
    x = 1300;
  }


  if (mover) {
    x = x+3;
  }
  if (movel) {
    x = x-3;
  }




  if (springen) {
    y = y - 5;
  }
}




void keyPressed() {


  if (key == ' ') {
    jump= -8;
  }


  if (keyCode == RIGHT) {




    mover = true;
    rechts = true;
  }




  if (keyCode == LEFT) {
    movel = true;
    rechts = false;
  }
}


void keyReleased() {
  if (keyCode == RIGHT) {
    mover = false;
  }
  if (keyCode == LEFT) {
    movel = false;
  }




  println (mouseX+","+mouseY);
}


Computer, programmieren, Java, Informatik, Processing, Spiele und Gaming

C Programmierung: Zweidimensionale Arrays und Pointer?

Guten Tag,

ich hätte ein paar Fragen zu Pointern im Bezug auf zweidimensionale Arrays und Pointer. Zuerst wollte ich fragen, ob mir jemand die Syntax hinter Pointern für mehrdimensionale Arrays in C erklären kann?

Wenn ich einen Array habe, wie bspw.:

int ary[2][3] = { {1, 2, 3}, {4, 5, 6} };

Nun möchte ich einen Pointer auf diesen Array:

int (*p1)[3] = ary; // Pointer auf int Array der Länge 3
int (*p2)[2][3] = &ary; // Pointer auf 2 dim Array der aus 2 int Arrays der Länge 3 besteht.

Warum werden hier die Indizes hinter dem Pointer geschrieben und nicht etwas wie:

int[2][3] *p2

Wäre das nicht intuitiver? Gibt es hinter der Schreibweise einen logischen Sinn?

Eine weitere Frage zur Syntax wäre, wie man das korrekt aufschreibt, wenn man einen return Value oder einen Funktionsprototypen aus einem Pointer zu einem zweidimensionalen Arrays (mit klar definierter Größe) haben möchte?

Dazu wollte ich noch sichergehen, dass meine Vermutung, warum ich für die Zuweisung bei p2 noch ein & davor hängen muss, die Richtige ist. ary und &ary sind exakt die selben Pointer. Ist es so, weil ary als Pointer auf einen int Array der Länge 3 hinterlegt ist und &ary sozusagen ein Pointer auf einen zweielementigen Array ist, der aus int Arrays der Länge 3 besteht?

Über eine Antwort würde ich mich sehr freuen!

Computer, Technik, programmieren, Informatik, C (Programmiersprache)

python sinus cosinus tangens math modul?

Hallo,

from math import sin, cos, tan


print("Winkelfunktionen")

print("          /| ")
print("         /ß| ")
print("        /  | ")
print("       /   | ")
print("      /    | ")
print("c    /     |a ")
print("    /      | ")
print("   /       | ")
print("  /        | ")
print(" /        _| ")
print("/@_______/.| ")
print("     b       ")

print("Um das Dreieck zu berechnen brauchen wir folgende Informationen")
rechtwinklig_abfrage = input("Ist ihr Dreieck rechtwinklig? (erkennbar am Zeichen oder 90°) [j/n] ")
if rechtwinklig_abfrage == "j":
    rechtwinklig = True
else:
    rechtwinklig = False
    print("Winkelfunktionen können in nicht-rechtwinkligen Dreiecken nicht benutzt werden! ")


a_abfrage = input("Ist die Seite a gegeben? [j/n] ")
if a_abfrage == "j":
    a_vorhanden = True
    a = int(input("welche Länge ist für a angegeben?: "))
else:
    a_vorhanden = False

b_abfrage = input("Ist die Seite b gegeben? [j/n] ")
if b_abfrage == "j":
    b_vorhanden = True
    b = int(input("welche Länge ist für b angegeben?: "))
else:
    b_vorhanden = False

c_abfrage = input("Ist die Seite c/Hypotenuse gegeben? [j/n] ")
if c_abfrage == "j":
    c_vorhanden = True
    c = int(input("welche Länge ist für c/Hypotenuse angegeben?: "))
else:
    c_vorhanden = False

alpha_abfrage = input("Ist  alpha gegeben? (@) [j/n] ")
if alpha_abfrage == "j":
    alpha_vorhanden = True
    alpha = int(input("Welche Größe ist für alpha angegeben?"))
else:
    alpha_vorhanden = False

beta_abfrage = input("Ist  beta gegeben? (ß) [j/n] ")
if beta_abfrage == "j":
    beta_vorhanden = True
    beta = int(input("Welche Größe ist für alpha angegeben?"))
else:
    beta_vorhanden = False

art_abfrage = input("was soll berechnet werden? [a/b/c/@/ß] ")
if art_abfrage == "a":
    if alpha_vorhanden and b_vorhanden:
        ergebnis = tan(alpha*b)
        print(ergebnis)

wie verwende ich das math modul richtig?

zb

b 0 3

alpha = 40

eigentlich sollte 2,52 rauskommen, das programm kommt aber auf 0,71

Danke

Computer, Mathematik, programmieren, Informatik, modul, Python, Sinus, Cosinus, Tangens

Meistgelesene Beiträge zum Thema Informatik