Hello堆栈溢出社区, 这是我第一次使用这个网站。所以请善待^^“ (对于奇怪的命令感到抱歉,这是我学校使用的图书馆。不幸的是德语)
我希望机芯if (dieTastatur.rechts()){...
正在运行,而我的另一种方法this.erscheinen();
正在运行。这可能吗?如果不能如何更改它才能正常工作?
问题是:当积木向我移动时,我无法移动相机
public void fuehreAus(){
while(true){
Klotz_Array[0].unsichtbar();
Klotz_Array[1].unsichtbar();
Klotz_Array[2].unsichtbar();
Klotz_Array[3].unsichtbar();
this.erscheinen();
if(dieTastatur.rechts()){
this.bewege_rechts();
Sys.warte(3);
}
if(dieTastatur.links()){
this.bewege_links();
Sys.warte(15);
}
if(dieTastatur.oben()){
this.bewege_oben();
Sys.warte(3);
}
if(dieTastatur.unten()){
this.bewege_unten();
Sys.warte(3);
}
}
}
public void bewege_links(){
if(dieTastatur.links()){
dieKamera.setzePosition(-150,250,3000);
for(int a=0;a<=100;a++){
}
Sys.warte(400);
dieKamera.setzePosition(0,250,3000);
}
}
public void bewege_rechts(){
if(dieTastatur.rechts()){
dieKamera.setzePosition(150, 250, 3000);
for(int a=0;a<=100;a++){
}
Sys.warte(400);
dieKamera.setzePosition(0,250,3000);
}
}
public void bewege_oben(){
if(dieTastatur.oben()){
dieKamera.setzePosition(0,400,3000);
dieKamera.setzeBlickpunkt(0,400,-10);
for(int a=0;a<=100;a++){
}
Sys.warte(400);
dieKamera.setzePosition(0,250,3000);
dieKamera.setzeBlickpunkt(0,250,-10);
}
}
public void bewege_unten(){
if(dieTastatur.unten()){
dieKamera.setzePosition(0,100,3000);
for(int a=0;a<=100;a++){
}
Sys.warte(400);
dieKamera.setzePosition(0,250,3000);
}
}
public void erscheinen(){
while(!Klotz_Stack.isEmpty()){
Klotz_Stack.top().bewege();
Klotz_Stack.pop();
}
}
这是“Klotz”课程中的bewege方法
public void bewege(){
int a = (int)(Math.random() * 4) + 1;
if(a==1){
Block1.setzeSichtbarkeit(true);
for(int b=0;b<=1000;b++){
Block1.verschiebe(0,0,5);
Sys.warte(3);
}
Block1.loesche();
}
if(a==2){
Block3.setzeSichtbarkeit(true);
for(int b=0;b<=1000;b++){
Block3.verschiebe(0,0,5);
Sys.warte(3);
}
Block3.loesche();
}
if(a==3){
Block2.setzeSichtbarkeit(true);
for(int b=0;b<=1000;b++){
Block2.verschiebe(0,0,5);
Sys.warte(3);
}
Block2.loesche();
}
if(a==4){
Block4.setzeSichtbarkeit(true);
for(int b=0;b<=1000;b++){
Block4.verschiebe(0,0,5);
Sys.warte(3);
}
Block4.loesche();
}
}
public void unsichtbar(){
Block1.setzeSichtbarkeit(false);
Block2.setzeSichtbarkeit(false);
Block3.setzeSichtbarkeit(false);
Block4.setzeSichtbarkeit(false);
}
答案 0 :(得分:0)
首先,必要的导入:
import java.util.concurrent.Executors;
然后你可以让你的feuhreAus方法像这样开始一个新线程并立即返回。
public void fuehreAus(){
Executors.newSingleThreadExecutor().submit(new Runnable() {
@Override
public void run() {
while(true) {
Klotz_Array[0].unsichtbar();
Klotz_Array[1].unsichtbar();
Klotz_Array[2].unsichtbar();
...
}
}
});
}