java 两个类中的一个变量?

wgx48brx  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(199)

我试着设置一个Java变量,它应该在两个类中访问,因为我正在编程的一个游戏。它不重要,使它具体,但一个例子会有帮助。
例如,我的问题:
我有一个演员火箭和演员流星。这些都是在类中定义的对象。我想给予我更多的点在一个变量中,然后我做一些像破坏两个在同一时间。正常情况下,我得到一个点每秒,然后火箭是一个“生命”。现在我需要在我的火箭类中的变量,以获得点火箭生命,但也在流星类中获得点后,流星杀死。我不知道如何在这两个结构中获取“count”变量。
我这样做了(在我的起源任务的绿脚beauchouse),但我认为你不需要它:
这是我的火箭,我发送它,你知道在哪种类型的地区我的代码。如果你需要更多的信息,请发表意见。

import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

    public class Rocket extends Actor
    {
    private int zaehler_02 =0;//wait for shoot
    private int zaehler_03 =0;//addbullet
    private int zaehler_05 =0;//counter
    private int magazin = 25;`
    
    public void act() 
    {
        if(Greenfoot.isKeyDown("right")){
            this.MoveRight();
        }
        if(Greenfoot.isKeyDown("left")){
            this.MoveLeft();
        }
        if(Greenfoot.isKeyDown("up")){
            this.MoveUp();
        }
        if(Greenfoot.isKeyDown("down")){
            this.MoveDown();
        }`
        
       `zaehler_03 += 1;
        zaehler_02 += 1;
        zaehler_05 += 1;
        if(Greenfoot.isKeyDown("space")){
            if(zaehler_02 >=35 && magazin >= 1){
                this.bullet();
                zaehler_02 = 0;
                magazin += -1;
            }
        }
        
        this.counter();
        this.getBullets();
        this.checkcollision();
    }    

    public void MoveRight(){
        this.setLocation(this.getX()+3, this.getY());
    }

    public void MoveLeft(){
        this.setLocation(this.getX()-3, this.getY());
    }

    public void MoveUp(){
        this.setLocation(this.getX(), this.getY()-3);
    }

    public void MoveDown(){
        this.setLocation(this.getX(), this.getY()+3);
    }
    
    public void bullet(){
        Bullet bullet = new Bullet();
        this.getWorld().addObject(bullet, this.getX(),this.getY());
    }
    
    public void counter(){
        count = zaehler_05;
        count /= 20;
        this.getWorld().showText("Score:" + Integer.toString(count), 60, 20);
        this.getWorld().showText("Magazin:" + Integer.toString(magazin), 200, 20);
    }

    public void getBullets(){
        Bulletup bulletup= (Bulletup) this.getOneIntersectingObject(Bulletup.class);

        if(bulletup != null){
            this.addBullet();
            bulletup = null;
        }
    }

    public void addBullet(){
        if (zaehler_03 > 200){
            magazin += 10;
            zaehler_03 = 0;
        }
    }
    
    public void checkcollision(){
        Meteor meteor = (Meteor) this.getOneIntersectingObject(Meteor.class);

        Dead dead =new Dead();

        if(meteor != null){
            this.getWorld().addObject(dead, 600, 500);
            Greenfoot.stop();
        }
     }
    }
jchrr9hc

jchrr9hc1#

从另一个类获取变量的方法主要有两种:
第一种方法:

private int YOURVARIABLE = 0;
    public static int getNumber() {
        return YOURVARIABLE;
    }
    public static void setNumber(int x) {
        YOURVARIABLE = x;
    }

    //calling the method form another class
    CLASSNAME.setNumber(YOURNUMBER); //setting the number
    CLASSNAME.getNumber(); //getting the number

第二种方法:

//You can create a variable like this:
    public static int x = 0;
    //And call it from another class with this:
    CLASSNAME.x

相关问题