第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Java中斷/停止定時(shí)器

Java中斷/停止定時(shí)器

素胚勾勒不出你 2022-05-25 16:38:49
我有一個(gè) if 語(yǔ)句,它檢查我的對(duì)象(向?qū)В┦欠衩辛薸tem. 如果他這樣做了,巫師的體型就會(huì)改變,他應(yīng)該能夠在與障礙物的 1 次碰撞中幸存下來(lái)。現(xiàn)在我被困在“幸存 1 個(gè)障礙物碰撞”,因?yàn)樵谖业呐鲎卜椒ㄖ形乙呀?jīng)設(shè)置了它,如果它InvulnerabilityActive是真的,那么它不應(yīng)該檢測(cè)到碰撞。所以問(wèn)題是,在整個(gè)持續(xù)時(shí)間(9 秒)內(nèi),沒(méi)有檢測(cè)到與障礙物的碰撞。巫師只是飛過(guò)。如何更改它,使其不會(huì)檢測(cè)到與第一個(gè)障礙物的碰撞,然后停用該項(xiàng)目?我想過(guò)使用該Timer.cancel()方法,但正如您所見(jiàn),我只能用this關(guān)鍵字來(lái)引用它。Timer.cancel()在我使用它之前我不能打電話Timer。這是與物品的碰撞。try {    invulnerability = new Rectangle(GameWorld.obstacle1.getX() - GameRenderer.generator2.getValue2(),            GameWorld.obstacle1.getY() + GameRenderer.generator2.getValue1(), 15, 15);    if ((Intersector.overlaps(GameWorld.wizard.getBoundingRectangle(), invulnerability))){        GameRenderer.InvulnerabilityActive = true;        activeItem = true;        case0 = true;         GameWorld.wizard.setWidth(8);        GameWorld.wizard.setHeight(8);        new java.util.Timer().schedule(                new java.util.TimerTask() {                    public void run() {                        this.cancel();                        GameRenderer.InvulnerabilityActive = false;                        activeItem = false;                        case0 = false;                        GameWorld.wizard.setWidth(16);                        GameWorld.wizard.setHeight(16);                    }                 },                 9000        );     }} catch (NullPointerException e){     System.out.println("Caught NullPointerException!");}這是與障礙物碰撞的方法:public boolean collides(Wizard wizard) {   if (GameRenderer.InvulnerabilityActive){       return false;   } else {       return (Intersector.overlaps(wizard.getBoundingRectangle(), barUp)               || Intersector.overlaps(wizard.getBoundingRectangle(), barDown));   }}我知道問(wèn)題出在 if 語(yǔ)句,因?yàn)樗皇菣z查項(xiàng)目是否處于活動(dòng)狀態(tài),但我不知道如何更改它以使其工作。
查看完整描述

1 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

您需要先檢查碰撞。如果檢測(cè)到碰撞-檢查InvulnerabilityActive。如果是true- 將其重置為false并返回 false。在下一次碰撞InvulnerabilityActive將是假的,碰撞將被檢測(cè)到。


public boolean collides(Wizard wizard) {

    if (Intersector.overlaps(wizard.getBoundingRectangle(), barUp)

            || Intersector.overlaps(wizard.getBoundingRectangle(), barDown)) {

        if (GameRenderer.InvulnerabilityActive) {

            GameRenderer.InvulnerabilityActive=false;

            return false;

        } else {

            return true;

        }

    } else {

        return false;

    }

}

可能會(huì)出現(xiàn)“向?qū)эw過(guò)障礙物并不斷檢測(cè)到碰撞”之類的問(wèn)題。在這種情況下:將額外的字段添加bool InvulnerabilityActivePending到GameRenderer. GameRenderer.InvulnerabilityActivePending = true;旁邊添加GameRenderer.InvulnerabilityActive = true;。并使用此代碼:


public boolean collides(Wizard wizard) {

    if (Intersector.overlaps(wizard.getBoundingRectangle(), barUp)

            || Intersector.overlaps(wizard.getBoundingRectangle(), barDown)) {

        if (GameRenderer.InvulnerabilityActive) {

            GameRenderer.InvulnerabilityActivePending=false;

            return false;

        } else {

            return true;

        }

    } else {

        GameRenderer.InvulnerabilityActive=GameRenderer.InvulnerabilityActivePending;

        return false;

    }

}

我們不是InvulnerabilityActive在碰撞開(kāi)始時(shí)重置,而是在碰撞結(jié)束時(shí)重置它。


查看完整回答
反對(duì) 回復(fù) 2022-05-25
  • 1 回答
  • 0 關(guān)注
  • 230 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)