簡體   English   中英

如何讓我的正整數變為負數並保持負數直到我的行動結束?

[英]How do I make my positive integer become negative and stay negative until the end of my action?

我試圖通過將其x和y值轉換為負值(我的屏幕是500 x 500並且無法調整大小)來測試從屏幕中刪除圖像,然后通過轉換將其返回到下一張幻燈片中的屏幕x和y值重新變為正數,因此我可以將它們轉換回負值以再次刪除它們。

在一個類(在屏幕上顯示一個紅色指針,我可以移動到其他項目的邊界)我有這個:

import java.awt.Rectangle;
public void checkBoundariesTouching() {
    NextSlide next = MainFrame.getSlide();

    for (int i = 0; i < 1; i++) {
        if (getBounds().intersects(next.getBounds())) {
            MainFrame.slide += 1;

在我的MainFrame中,此幻燈片增加會更改背景以使我的幻燈片變得有趣並更改顯示的書寫。

我有另一個產生黑色矩形的類,我逐個刪除它以揭示我寫下的一個要點。 我刪除這樣的矩形:

import java.awt.Rectangle;
public class BlackRectangle extends Entity {

public BlackRectangle(int x, int y) {
    super(x, y);

}    
public void update() {
    int slide = MainFrame.getSlide();
    checkBoundariesTouching();
    if (slide >= 2) {
        if (x < 0) {
            x = -x;
        }
        if (y < 0) {
            y = -y;
        }
        checkBoundariesTouching();
    }
}

public void checkBoundariesTouching() {

    Pointer pointer = MainFrame.getPointer();
    NextSlide next = MainFrame.getSlide();
    if (getBounds().intersects(pointer.getBounds())) {
        x = -x;
        y = -y;


    }

當幻燈片等於1時,我可以毫無問題地刪除黑色方塊。 但是,當我已經增加到下一張幻燈片時(從幻燈片2開始),當指針觸摸黑色矩形時,它會被屏幕移開,但是一旦我將指針移離它,黑色矩形將返回並覆蓋信息。 有沒有辦法可以修復此代碼,因為它只是更改更新方法?

我承認我根本不太了解Java並且兩天前就開始了,但我正在嘗試使用Java代碼進行演示,以證明我可以在很短的時間內掌握程序的基本概念並在此基礎上構建它(我需要證明這一點,以便進入與計算機科學無關的大學課程。)

我會認真地勸告你不要這樣做。

如果課程的先決條件是您已經掌握了編程的基本知識......並且您沒有基本的掌握......那么您將在軌道上遇到真正的問題。 特別是,因為如果這不是一門CS課程,如果你因為編程技巧不好而遇到問題,他們就不能幫助你。

OTOH,如果問題是你能勝任(比方說)C#而不是Java,那么正確的解決方案是為開發人員許可付出代價。 “因為你需要它才能將開發工作作為課程的一部分......或將來。

(但你肯定能找到一種獲得Visual Studio許可證的更便宜的方法。我可以從MS Store獲得“Visual Studio Professional 2012 with MSDN”,價格低於$ 1.2k澳元......沒有學生折扣。)


我承認你的觀點是他們沒有專門測試你的Java能力。 然而,他們正在測試您作為程序員的一般能力。 當然,這包括你為工作選擇合適工具的能力......其中包括不嘗試在你不熟悉的編程語言的緊迫期限內做一些編程!

如果在slide = 1時代碼工作正常,我建議刪除它:

if (slide >= 2) {
    if (x < 0) {
        x = -x;
    }
    if (y < 0) {
        y = -y;
    }
    checkBoundariesTouching();
}

如果需要該代碼在屏幕上移回框,則可以將if語句放在單獨的方法中,並在更改幻燈片時調用該方法。

檢查更新方法中的其他條件。 該方法必須如下所示: -

        public void update() {
            int slide = MainFrame.getSlide();
            checkBoundariesTouching();
            if (slide >= 2) {
                if (x < 0) {
                    x = x*-1;
                }
                if (y < 0) {
                    y = y*-1;
                }


            }
        }


public void checkBoundariesTouching() {

    Pointer pointer = MainFrame.getPointer();
    NextSlide next = MainFrame.getSlide();
    if (getBounds().intersects(pointer.getBounds())) {
    if(x>0){
        x = -x;
           }
    if(y>0){
        y = -y;
           }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM