Моя проблема заключается в том, что когда я пытаюсь использовать метод монстра, метод действительно не работает, так как я хочу, чтобы он работал над тем, что кажется самым неправильным, - это переменная items. Также есть проблема с переводом кости в метод монстра, потому что, когда вы играете роль 1, которая должна убить вас, ничего не происходит. Весь код достаточно велик, поэтому он включает только части, которые задействованы. Ссылка на весь код можно найти здесь: http://justpaste.it/marcs Вот что происходит, когда метод монстра запускается с 2-х предметов:Передача переменных статического класса в java
//Du behöver hitta 2 objekt för att slåss mot bossen
Эта линия не должны придумать.
//Du möter en stor fet boss! Det är Slavechan!
//Om du slår en 1:a så trampar han på dig.
//Du slog 1
здесь я должен был умереть
//Du gör dig redo att slåss mot Slavechan.
//Slavechan dör från en överdos av ris.
//Du tar allt ris han hade och springer iväg mot solnedgången.
//Du Springer in i en osynlig synlig dörr och dör.
public class Spel
{
static Rum rum5;
static Rum current;
static Rum rum12 = new Rum("Du hittar ingenting. " , "En väg. ");
static boolean items = false;
public static void main(String[] args) {
Rum rum13 = new Rum("Du Springer in i en osynlig synlig dörr och dör. ", "Ett slott. ");
rum13.boss = new monster();
}
rum2
if (current.item1 != null){
current.visited = true;
}
rum5
if (current.item2 != null){
current.visited = true;
}
rum9
if (current.item3 != null){
current.visited = true;
}
boolean items = ((rum9.visited==true) || (rum2.visited==true) && (rum5.visited==true));
Весь код монстра
public class monster {
public void rulla1(){
if (Spel.items == false){
System.out.println("Du behöver hitta 2 objekt för att slåss mot bossen");
Spel.current = Spel.rum12;
}else
try {
Thread.sleep(2000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
System.out.println("Du möter en stor fet boss! Det är Slavechan!");
System.out.println(" ");
try {
Thread.sleep(2000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
System.out.println("Om du slår en 1:a så trampar han på dig.");
int rull1 = (int)(Math.random() * ((12 - 1) + 1));
System.out.println("Du slog " +rull1);
if (rull1 == 1){
Spel.current=null;
}else
try {
Thread.sleep(2000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
System.out.println("Du gör dig redo att slåss mot Slavechan.");
System.out.println(" ");
try {
Thread.sleep(1000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
System.out.println("Slavechan dör från en överdos av ris.");
try {
Thread.sleep(1000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
System.out.println("Du tar allt ris han hade och springer iväg mot solnedgången.");
try {
Thread.sleep(1000);
} catch(InterruptedException ex) {
Thread.currentThread().interrupt();
}
Spel.current = null;
}
}
К сожалению для шведских комментариев
Я не уверен, но вы, кажется, объявляете локальные переменные булевыми элементами, вы не используете статическую переменную, которую вы указали в своем классе Spel. .. – thijsraets
@thijsraets Вы хотите сказать, что я пытаюсь использовать его неправильно? – Marc
хорошо написав: «boolean items = ...», вы не устанавливаете статическую переменную, а только новую переменную, которая видима только локально, так как у вас на самом деле нет кода после этого объявления, эта переменная не используется. Но я думаю, что у меня что-то не хватает;) (FIX: просто напишите «items = ...») – thijsraets