Wie bearbeite ich die Geschwindigkeit der Gegner Schüsse(nach links und rechts) und wie bringe anschließend meine eigenen Schüsse zum drehen (um eigene Achse)?

Hat sich schon geregelt aber glaube ich darf die frage nicht löschen.

Hallo,

ich bräuchte dringend Hilfe bei den letzten beiden Aufgaben. Ich sitze schon den ganzen tag nur an der nr.4 und muss alles bis morgen Abend fertig haben.

Ich habe den ersten teil von der nr.4 bereits implementiert aber der Teil wo sich die Geschwindigkeit alle 0.5sec zwischen -30 pixel und 30 pixel ändern soll verstehe ich nicht wie ich es machen soll. Ich habe mir bereits die Methode applySpeedVector von der Klasse ObjectController geholt, aber noch nichts daran geändert. Ich habe öfters versucht die werte zu ändern aber das ändert nichts an der Geschwindigkeit.

Würde mich sehr über schnelle Hilfe freuen auch wenn es relativ viel Code ist. Ich sollte alles bereit gestellt haben aber es kann sein das ich ausversehen etwas vergessen habe. Ich kann jederzeit mehr Code zur Verfügung stellen.

Also eigentlich brauche ich nur hilfe bei dem letzten teil von Nr4 und die Nr5 komplett, diese habe ich auch schon versucht anzufangen aber war mir nicht sicher wie genau.

Vielen dank schonmal im vorraus und sry für all die Arbeit, aber ich schaff es nicht allein.

ObjectController:

package javashooter.controller;

import javashooter.gameobjects.GameObject;

import javashooter.playground.Playground;

/**

 * Class that controls the LOGICAL behavior of an object independently of how it is displayed or

 * drawn. The most important method here is {@link #updateObject}: this method is, by various

 * indirections, called exactly once per game time step for every object that is on the javashooter.playground.

 * It has, by virtue of the member variable {@link gameObject} (of type {@link GameObject}), full

 * access to

 * <ul>

 * <li>the object it is controlling

 * <li>the javashooter.playground this object belongs to

 * </ul>

 * Typically, updateObject would check whether an object leaves the screen to react appropriately.

 * In that case the object can be marked for deletion (by adding it to the flag "deleted" that is

 * always defined for any javashooter.playground), but of course other reactions are possible like rebounding,

 * emerging on the other side, ...

 */

public abstract class ObjectController {

 protected GameObject gameObject = null;

 protected String dummy = "";

 public void setObject(GameObject gameObject) {

  this.gameObject = gameObject;

 }

 public void setDummy(String x) {

  System.out.println("DUMMY called!!");

  this.dummy = x;

  System.out.println("DUMMY is now:" + dummy);

 }

 /**

  * Is called once every game time step by the game itself. NEVER call this directly, not

  * necessary!<br>

  * The method can do whatever it likes, including nothing. The field {@link #gameObject} contains

  * a reference to the controlled object.

  */

 public abstract void updateObject();

 /**

  * Convenience method: simply moves the object forward one step from its present position, using

  * its present speed.

  */

 public void applySpeedVector() {

  double ts = this.getPlayground().getTimestep();

  this.setX(this.getX() + this.getVX() * ts);

  this.setY(this.getY() + this.getVY() * ts);

  this.setPhi(this.getPhi() + this.getOmega() * ts);

 }

 public double getTimestep() {

  return this.gameObject.getPlayground().getTimestep();

 }

  

 public double getGameTime() {

  return this.gameObject.getPlayground().getGameTime() ;

 }

  

  

 public void setPhi(double phi) {

  gameObject.setPhi(phi) ;

 }

 

  

 public double getX() {

  return this.gameObject.getX();

 }

 public double getY() {

  return this.gameObject.getY();

 }

   

  

 public double getOmega() {

  return this.gameObject.getOmega();

 }

  

  

 public double getVX() {

  return this.gameObject.getVX();

 }

  

 public double getPhi() {

  return this.gameObject.getPhi();

 }

  

 public double getVY() {

  return this.gameObject.getVY();

 }

 public void setX(double x) {

  this.gameObject.setX(x);

 }

 public void setY(double y) {

  this.gameObject.setY(y);

 }

 public void setVX(double vx) {

  this.gameObject.setVX(vx);

 }

 public void setVY(double vy) {

  this.gameObject.setVY(vy);

 }

  

  

 /*

 public Object getLevelFlag(String s) {

  return this.getPlayground().getLevelFlag(s) ;

 }

  

 public Object getOrCreateLevelFlag(String s, Object def) {

  return this.getPlayground().getOrCreateLevelFlag(s, def) ;

 }

  

 public void setLevelFlag(String s, Object o) {

  this.getPlayground().setLevelFlag(s, o) ;

 }

  

  

 public void setGlobalFlag(String s, Object o) {

  this.getPlayground().setGlobalFlag(s, o) ;

 }

  

  

 public Object getOrCreateGlobalFlag(String s, Object def) {

  return this.getPlayground().getOrCreateGlobalFlag(s, def) ;

 } */

  

  

  

  

 public Playground getPlayground() {

  return this.gameObject.getPlayground();

 }

 public void setPlayground(Playground playground) {

  this.gameObject.setPlayground(playground);

 }

}

Bild zum Beitrag
Java, Eclipse, Programmiersprache
Schneebälle Despawnen Blöcke?

Hey, kennt sich hier jemand aus mit Java 8? Ich code derzeit an einem Minigame für Minecraft und weiß nicht weiter :/ Kann mir da jemand helfen? Das hier ist bisher der Quelltext und irgendwie möchte dieser nicht Funktionieren, folgendes sollte eigentlich passieren: Man Schließt mit einem Schneeball auf ein Block, die Block Location und das Material wird in einem String Gespeichert. Sobald der Schneeball einen Block trifft wird der Block zu Luft. 1.5 Sekunden Später sollte der selbe Block wieder an der selben Stelle erscheinen. Bei Glas, Wolle & Tonblöcken etc. sollte die Farbe mit übernommen werden.

@EventHandler
  public void onHit(ProjectileHitEvent e) {
    Projectile p = e.getEntity();
    if (e == null) {
    	return;
    }
    if (p instanceof Snowball) {
    	if (((HumanEntity) e.getEntity().getShooter()).getItemInHand().getItemMeta().getDisplayName().equals("§8» §aBlockspleefer")) {
    		Material block1 = p.getLocation().getBlock().getType();
    		Block block = p.getLocation().getBlock();
    		p.getLocation().getBlock().setType(Material.AIR);
    		p.remove();
    		new BukkitRunnable() {
  		  @Override
  		  public void run() {
  		  	block.setType(block1);
  		  }
    		}.runTaskLater(FirstJumpingMain.getInstance(), 30);
    	}
    }
  }
PC, Server, Microsoft, Java, Minecraft, Eclipse, Minecraft Server, Mojang, Spigot, Java 8, Minecraft Java Edition, eclipse java

Meistgelesene Fragen zum Thema Eclipse