Welcome to the forum ![]()
It appears to be an issue with Processing rather than your code.
Processing objects to the variable name open it also doesn’t like opens but I got it to accept shut so you could simply use
boolean shut = true;
The door would be open if shut = false and you could test this with
if(!shut){
// door is open code
}
Update to last post:
It is definitely a Processing issue as your code is acceptable to Java. I suspect it is being incorrectly being flagged by the pre-processor as early versions of Processing used to have a function (over 10 years ago) called open but was replaced by launch.
How about?
boolean isOpen = false;if (isOpen) return;
Since you asked there is nothing wrong with using isOpen but since it is an attribute of the class Door I would prefer to reserve isOpen to be a method to interrogate the door state, open or shut. Since Processing doen’t want us to use open I envision the class structure to be something like
class Door{
boolean shut = true;
void tryOpen(Player p){
if(!shut) return;
if(lockType == LOCK_WIRE && p.hasWire) shut = false;
if(lockType == KEY_CARDE && p.hasKeycard) shut = false;
}
boolean isOpen() {
return !shut;
}
}
I should point out this is my preference and is not a criticism of using isOpen.
I know I can be a little pedantic when it comes to syntax and semantics
and the OP can choose either approach or something else to avoid the Processing bug. ![]()
