62,623
社区成员
发帖
与我相关
我的任务
分享
synchronized(gwait)
{
gwait.wait();
}
//等待玩家操作
System.out.println("玩家操作了");
synchronized(opsecure)
{
opsecure.wakeup=false;
opsecure.wait();//系统内部在计算,不接受玩家再度操作
}
System.out.println("");
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("AP begins");
//softclick是AI按键,可以忽略,我这个AI没开
if (opseat.lplayertype.lvalue.equals("AI"))
{
if (!softclick)
return ;
softclick=false;//avoid local click
jou.opsecure.wakeup=false;
}
//local表示这个是本地玩家的
if (opseat.lplayertype.lvalue.equals("local"))
{
System.out.println("userclick="+userclick);//多此一举 userclick=true 表示等待的是用户按键
//当用户按键进行处理的,此句始终打印true
if (!userclick)
return;
userclick=false;//这里原来程序是true,我改成false了,貌似不影响
}
if (!this.opseat.isAI)
synchronized (jou.gwait)
{
jou.gwait.notify();
}
else //没开AI,并且isAI都是false 不会走到这里
{
try {
Thread.sleep(1000);
} catch (InterruptedException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
System.out.println("{");//这句打印的
while (jou.opsecure.wakeup)
{
//以前这里一直好的,就是唤醒jou.java里的gwait.wait()
//等jou.java里执行到opsecure.wait()的时候,jou.opsecure.wakeup就会=false,表示正在计算一步用户操作,不接受任何其他操作,其他所有人都等待
//1.7里一直好的
//这个循环里没有内容
//然后就是这里一段,上面的一句打印,下面的一句不打印,而且之前好的,没改过这里
}
System.out.println("}"+jou.topscene());//这句就不打印