Java – die neusten Beiträge

Informatik (Schule) erstes Java Projekt 3d Grafik + Pixelart zu schwer oder machbar?

Wer nicht lesen möchte guckt sich das beigefügte Video (Gameplay) an, inwiefern das machbar ist mit wenig Zeit.

Wir werden voraussichtlich in meinem Informatik Kurs ein Spiel programmieren. Jede einzelne Person ein eigenes. Ich hab nun aber noch nie mit Java gearbeitet und wollte fragen wie schwer es ist sich dort reinzufuchsen. Haben in der Schule mit java tutle und kara bisher gearbeitet und habe in Scratch so 30h an ein kleines Pixeladventure gearbeit (selber alles gezeichnet und animiert). Aber das war alles letztes Jahr, im Prinzip fange ich also wieder bei 0an.

Da ich auch die Grafik selber machen will (Charakterdesign, Animationen, Welt) wollte ich fragen wie schwer es ist. Ich wollte einen nach hinten gehenden Raum machen bei dem die Kamera dem Charakter nach hinten oder nach vorne folgt. Das selbe für einen weg von rechts nach links. Alles frei bewegbar.

ich füge mal gameplay von ANNO: Mutationem hier ein, so ähnlich möchte ich es haben, nur nicht so eine Crazy große Welt. (short story adventure eben)

https://www.youtube.com/watch?v=O0bkJArvYIE

wie sehr ist das zu hoch ambitioniert für ein Schulprojekt. Plane höchstens 30 Stunden Zuhause daran zu arbeiten (+30h für die künstlerischen Aspekte) und sonst haben wir ca 15h im Unterricht dafür.
Sollte ich lieber meine Ansprüche runterschrauben und was einfacheres machen, ein Spiel ohne 3d Perspektive? Habt ihr vielleicht Tipps von Tutorial Kanälen auf YouTube? Weiß noch nicht wie das Programm aussieht welches unser Lehrer geben wird, aber grundsätzlich erstmal java.

Schule, Technik, 3D, programmieren, Java, Gaming, Informatik, Programmiersprache, Pixel-Art

Verkettete Listen in Java CD?

import java.io.BufferedReader;
import java.io.FileReader;
import java.util.LinkedList;
import java.util.Random;

public class PlaylistReader {
    public static void main(String[] args) {
        LinkedList<Titel> playlist = new LinkedList<Titel>();
        BufferedReader br = null;
        
        try {
            br = new BufferedReader(new FileReader("titel.txt"));
            String name = br.readLine(); // Name der CD aus erster Zeile
            String line = "";
            while ((line = br.readLine()) != null) {
                String[] parts = line.split(";");
                int cdNr = Integer.parseInt(parts[0].replaceAll("\\D+", ""));
                int trackNr = Integer.parseInt(parts[1]);
                String interpret = parts[2];
                String title = parts[4];
                String duration = parts[5];
                
                Titel t = new Titel(cdNr, trackNr, interpret, name, title, duration);
                playlist.add(t);
            }
            br.close();
            Random rand = new Random();
            int index = rand.nextInt(playlist.size());
            Titel zufallstitel = playlist.get(index);
            System.out.println(zufallstitel.getName());
            System.out.println("CD " + zufallstitel.getCdNr());
            System.out.println("Titel Nr.: " + zufallstitel.getTrackNr());
            System.out.println("Interpret: " + zufallstitel.getInterpret());
             System.out.println("Titel: " + zufallstitel.getTitle());
            System.out.println("Spielzeit: " + zufallstitel.getDuration());
        } catch (Exception e) {
            System.out.println("Fehler beim Einlesen der Datei: " + e.getMessage());
        }
    }
}

public class Titel {
    private int cdNr;
    private String duration;
    private String interpret;
    private String name;
    private String title;
    private int trackNr;

    public Titel(int cdNr, int trackNr, String interpret, String name, String title, String duration) {
        this.cdNr = cdNr;
        this.trackNr = trackNr;
        this.interpret = interpret;
        this.name = name;
        this.title = title;
        this.duration = duration;
    }

    public int getCdNr() {
        return cdNr;
    }
    public void setCdNr(int cdNr) {
        this.cdNr = cdNr;
    }
    
    public String getDuration() {
        return duration;
    }
    
    public void setDuration(String duration) {
        this.duration = duration;
    }
    
    public String getInterpret() {
        return interpret;
    }

    public void 
        setInterpret(String interpret) {
        this.interpret = interpret;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
   
    public int getTrackNr() {
        return trackNr;
    }

    public void setTrackNr(int trackNr) {
        this.trackNr = trackNr;
    }
}
Java, Programmiersprache

Greenfoot/Schiffe-versenken: Wieso schießt der Gegner mehrmals?

Hey, bei meinem Java-Code für Greenfoot spielt man selbst gegen den Computer, der, nachdem man selbst geschoßen hat, auch einen zufälligen Schuss setzt.

Der Gegner schießt momentan allerdings mehrmals. Hat jemand eine Idee, woran das liegt? 🙂

import greenfoot.*; // (World, Actor, GreenfootImage, Greenfoot und MouseInfo)
import java.util.*;

/**
 * Ergänzen Sie hier eine Beschreibung für die Klasse Schiff.
 * 
 * @author (Ihr Name) 
 * @version (eine Versionsnummer oder ein Datum)
 */
public class Schiff extends Actor {
  public Schiff(String image) {
    setImage(image);
  }

  /**
   * Act - tut, was auch immer Schiff tun will. Diese Methode wird aufgerufen, 
   * sobald der 'Act' oder 'Run' Button in der Umgebung angeklickt werden. 
   */
  public void act() {
    mausKlick();
  }

  public void mausKlick() {
    if (Greenfoot.mouseClicked(this)) {
      int xPos = Greenfoot.getMouseInfo().getX();
      int yPos = Greenfoot.getMouseInfo().getY();
      ((Schiffeversenken)this.getWorld()).addObject(new Treffer(), xPos, yPos);
    }
    else if (Greenfoot.mouseClicked(((Schiffeversenken)this.getWorld()).rechts)) {
      int xPosi = Greenfoot.getMouseInfo().getX();
      int yPosi = Greenfoot.getMouseInfo().getY();
      ((Schiffeversenken)this.getWorld()).addObject(new KeinTreffer(), xPosi, yPosi);
      gegner();
    }
  }

  public void gegner() {
    int[] xKoordinate = new int[7];
    int[] yKoordinate = new int[7];
    int x = 0;

    for (int i = 67; i < 326; i = i + 43) {
      xKoordinate[x] = i;
      x++;
    }

    int y = 0;

    for (int i = 154; i < 398; i = i + 40) {
      yKoordinate[y] = i;
      y++;
    }

    Random random = new Random();
    int xIndex = random.nextInt(7);
    int yIndex = random.nextInt(7);
    int zufallx = xKoordinate[xIndex];
    int zufally = yKoordinate[yIndex];
    List<Schiff> schiffe = getWorld().getObjectsAt(zufallx, zufally, Schiff.class);

    if (!schiffe.isEmpty()) // Wenn ein Schiff gefunden wurde
    {
      ((Schiffeversenken)this.getWorld()).addObject(new Treffer(), zufallx, zufally); // Füge ein Treffer-Objekt hinzu
    }
    else // Wenn kein Schiff gefunden wurde
    {
      ((Schiffeversenken)this.getWorld()).addObject(new KeinTreffer(), zufallx, zufally); // Füge ein NichtTreffer-Objekt hinzu
    }
  }
}
programmieren, Java, Code, Programmiersprache, Greenfoot

Meistgelesene Beiträge zum Thema Java