[Greenfoot] Zeitverzögerung

Status
Nicht offen für weitere Antworten.

Gamma

Mitglied
Hallo,
Weiß jemand warum folgender Code nicht funktioniert?

Java:
/**
 * Write a description of class Orange here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Orange  extends Actor
{

 /**
     * Act - do whatever the Orange wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
      for(int a = 0; a >= 10000000; a++)
      {
       
       int b = (int)(Math.random()*10)+1;
       int c = (int)(Math.random()*10)+1;
        
        setLocation(b,c);
        
        }
    }
    
    
}
Es passiert nichts
MfG Gamma
 
Zuletzt bearbeitet:

Landei

Top Contributor
a <= 10000000

Bei solchen Problem hilft oft ein kleines System.out.println(".."), um zu sehen, ob er überhaupt in einer Schleife oder so reingeht...

Schöner als Math.random() ist eine statische Variable vom Typ java.util.Random, und daran nextInt(10) + 1 aufgerufen.
 

Gamma

Mitglied
Mit a=10; funktionierts auch nicht.
Mit next int kenn ich mich nicht aus.
Könntest dus mal in den Quellcode schreiben und diesen posten?

MfG Gamma
 

Landei

Top Contributor
Du hast die Bedingung falsch herum. Du musst in der for-Scheife sagen, wie lange du drinbleiben willst, nicht, wann du raus willst. Schreib einfach <= statt >= und es sollte laufen.
 

Gamma

Mitglied
Hab jetzt nochmal eine andere Frage zu Grennfoot:
Ich will erreichen, dass die Orange erst nach kurzer Zeit ihre Position ändert.
Hiermit aber verzögere ich nicht nur die Orange, sondern alles:

Java:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;
/**
 * Write a description of class Orange here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Orange  extends Actor
{

 /**
     * Act - do whatever the Orange wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    {
      Greenfoot.delay(100);
       Random r = new Random();
       int b = Math.abs(r.nextInt()) % 10;
        Random s = new Random();
       int c = Math.abs(s.nextInt()) % 10;
              
        
         setLocation(b,c);
        
       
       

    
    
}}
 

ttplayer

Aktives Mitglied
Das ist vielleicht umständlich aber du kannst ja den Aufruf in einen neuen Thread machen:
Java:
Runnable run = new Runnable()   //neuer Thread
{
    act()
}
<Den Code, den du nebenher ausführen willst>
 

Gamma

Mitglied
Ich weiß jetzt nicht ganz genau wie du das meinst, aber so wie ich das verstanden hab gehts nicht, weil die klasse Orange Actor untergeordnet sein muss (extends Actor) sonst versteht er nicht mehr befehle wie setLocation(x,y).
 

ttplayer

Aktives Mitglied
Ich glaub, du hast mich falsch verstanden: Runnable ist keine Klasse, sondern ein Thread, der parallel zum anderen Code ausgeführt wird (wenn vorhanden, auf einem anderen Prozessorkern) also wird act aufgerufen und gleichzeitig schon mal unten weitergemacht
 

Gamma

Mitglied
Hab mir in der zwischenzeit ausgedacht, das man das ja auch mit schritten machen könnte (sry wenn ich nerve)
z ist die Schrittanzahl die in Spinne hochgezählt wird:
Java:
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import java.util.*;
import java.awt.*;
import java.awt.event.*;
/**
 * Write a description of class Orange here.
 * 
 * @author (your name) 
 * @version (a version number or a date)
 */
public class Orange extends Spinne
{

    public void run()
    {int zero = 0;
     int g = z/5;  
     while(g > zero){  
     Random r = new Random();
     int b = Math.abs(r.nextInt()) % 10;
     Random s = new Random();
     int c = Math.abs(s.nextInt()) % 10;
              
        
         setLocation(b,c);
        }
        }
 /**
     * Act - do whatever the Orange wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */

    public void act() 
    {
     run();
    
}

}

Wenn ich Schritt 5 machen will stürtz greenfoot ab. Nur mit Reset gehts wieder, aber der Run und der Act button funktionieren nur nach Neustart. Was ist da los?
 
V

Verzweifelt

Gast
Hallo, wir haben zurzeit Greenfoot in der Schule (ich krankheitsbedingt leider nur teilweise) und die Hausaufgabe ist für mich unentschlüsselbar; könnt ihr mir erklären was
/java
public void schleife_a()
{
for(int i=0;i<4;i++)
{
bewegen();
akkuAufnehmen();
}
}


public void schleife_b()
{

for(int j=4;j<5;j++)
{
bewegen();
akkuAufnehmen();
}
}


public void schleife_c()
{
for(int bla=-2;bla<3;bla+=2)
{
bewegen();
akkuAufnehmen();
}
}


public void schleife_d()
{
for(int i=5;i>0;i--)
{
bewegen();
akkuAufnehmen();
}
}


public void schleife_e()
{
for(int z=2;z<0;z+=10)
{
bewegen();
akkuAufnehmen();
}
}
/java


das "for(int klfjöalkjfd-a,.eoifaökl) heißt


mfG
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Pinhg Sound in Greenfoot Code einbinden Java Basics - Anfänger-Themen 2
P Zugriff auf Variablen anderer Klassen in Greenfoot Java Basics - Anfänger-Themen 1
M Greenfoot World und Actor Quellcode Java Basics - Anfänger-Themen 13
D incompatible Types Problem in Greenfoot Java Basics - Anfänger-Themen 5
W Schleifen bei Greenfoot Java Basics - Anfänger-Themen 4
Z Greenfoot Variable in einer Datei und nicht in einem Objekt/World speichern Java Basics - Anfänger-Themen 1
A Greenfoot - Objekt im Vordergrund lassen, bei einer scrollbaren Welt ohne zentrierten Actor Java Basics - Anfänger-Themen 3
C Greenfoot: Bei Tastendruck und best. Wert Bild ändern Java Basics - Anfänger-Themen 2
B Hilfe bei Greenfoot ( random blickrichtung + vor(); Java Basics - Anfänger-Themen 10
BlueFox Greenfoot wait() Java Basics - Anfänger-Themen 10
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
Domi741 [Greenfoot] Zugriff auf Subclass von Actor in Subclass von World Java Basics - Anfänger-Themen 16
T Wegberechnung mit Greenfoot Java Basics - Anfänger-Themen 10
B Erste Schritte Generelle Fragen zu Java / Greenfoot. Java Basics - Anfänger-Themen 8
Q Greenfoot: Art Mario programmieren Java Basics - Anfänger-Themen 7
K Problem mit Greenfoot - aussetzen modellieren? Java Basics - Anfänger-Themen 2
M Zeitverzögerung mit java Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben