2016-11-04 10 views
0

私がしたいのは、クリックしたピクセルの色を変更するだけです。したがって、2つの状態があります。処理3でクリックしたポイントの座標を取得

マウスは、私は以下のコードを使用してい

をクリックされていない

マウスをクリックしました。

boolean myBol = false ; 
void setup(){ 
    size(860,640); 
    background(0); 
} 
void draw(){ 
    if (mousePressed) { 

    if(myBol == true){myBol = false;} else {myBol = true;} 

    } 

    if (myBol == true){ 
    stroke(255); 
    point(mouseX,mouseY); 
}} 

最初のクリック後にこのコードを実行すると、マウスを動かす場所が描画されますが、必要なものは描画されます。 "画面をクリックするたびに描画する"。

+0

あなたはすべてのコードを示していません。 'clickx'、' clicky'、 'mousePressed'はどこから値を取得しますか? – Raniz

+0

clikcxとclickyについては申し訳ありませんが、私はそれらを削除します。 mousePressedは処理3のブール値です。私はそれを設定していません。 – bukowski

+0

クリックするとmyBolの状態を切り替える条件があります。だからもう一度クリックすると描画が止まり、もう一度クリックするともっと描画することができます。もしあなたが '描画するならば、私はmyBolの必要性が見えません。 – AxelH

答えて

1

チェック条件が正しくありません。

if (mousePressed) { 
    if(myBol == true){ 
     myBol = false; 
    } else { 
     myBol = true; 
    } 
} 

またはbasicly

if (mousePressed) 
    myBol = !myBol 

各クリックでmyBol値を変更します。

クリックして描画したいので、この値は必要ありません。直接mousePressed値を使用してください。

if (mousePressed) { 
    stroke(255); 
    point(mouseX,mouseY); 
} 
0

あなたは余裕のないロジックを持っています。 mousePressed変数が既にある場合、なぜmyBolが必要ですか?

void setup() { 
    size(860, 640); 
    background(0); 
} 

void draw() { 
    if (mousePressed) { 
    stroke(255); 
    point(mouseX, mouseY); 
    } 
} 

それとも、このように、マウスイベント機能を使用することができます:あなたはこのにあなたのロジックを簡素化することができませんでした。また

void setup() { 
    size(860, 640); 
    background(0); 
} 

void mousePressed() { 
    stroke(255); 
    point(mouseX, mouseY); 
} 

void mouseDragged() { 
    stroke(255); 
    point(mouseX, mouseY); 
} 

void draw() { 
} 

boolean値はそう、直接および演算子で使用することができますこの:

boolean example; 
if(example == true){example= false;} else {example= true;} 

ない演算子を使用して、ちょうどこれに短縮することができます

boolean example; 
example = !example; 

そして、この:

if(example == true) 

はこれに短縮することができます:

if(example) 
関連する問題