前提・実現したいこと
processingでブロック崩しのゲームのプログラミングを書いています。ブロックの色を緑にしたいです。現在黒くなっています。
発生している問題・エラーメッセージ
エラーメッセージはありません。ブロックの色を緑に指定しても反映されません。
該当のソースコード
processing
1int x=100; 2int y=560; 3int bar_w=10;//haba 4int bar_h=100;//nagasa 5int dx=5; 6int blockX=25,blockY=10 ;//blockzahyou 7int number=50; 8int[]blocks={blockX,blockY}; 9int ellipseX=550; 10int ellipseY=545; 11int ellipseDx=5; //hayasa 12int ellipseDy=-2; 13int[][]positions=new int [200][200]; 14 15void setup(){ 16 size(1000,600); 17 displayBlocks(blocks,positions);//barwohyouzi 18 background(0); 19 noStroke(); 20 loadPixels(); 21} 22 23void draw(){ 24 updatePixels(); 25 keyPressed(); 26 displayBar(); 27 moveBall(); 28 displayBall(); 29 reboundBall(positions); 30} 31 32void displayBar(){ 33 fill(255,0,0); 34 rect(x,y,bar_h,bar_w); 35} 36 37void displayBall(){ 38 fill(0,0,255); 39 ellipse(ellipseX,ellipseY,30,30); 40} 41 42void reboundBall(int[][] positions){ 43 44 if(ellipseX > 1000-15 && ellipseDx >0){ 45 ellipseDx=-ellipseDx; 46 } 47 48 if(ellipseY>583 && ellipseDy>0){ 49 noLoop(); 50 print("GAME OVER."); 51 } 52 53 if(ellipseY<15 && ellipseDy<0){ 54 ellipseDy=abs(ellipseDy);//abs=zettaiti 55 } 56 57 if(ellipseX < 15){ 58 ellipseDx=-ellipseDx; 59 } 60 61 if(ellipseX>= x && ellipseX <= x+100 && ellipseY >= y-17){ 62 ellipseDy=-ellipseDy; 63 } 64 65 for(int i=0;i<200;i++){ 66 noStroke(); 67 smooth(); 68 if(dist(ellipseX,ellipseY,positions[0][i],positions[1][i])<=17){ 69 ellipseDx=-ellipseDx; 70 ellipseDy=-ellipseDy; 71 fill(0); 72 rect(positions[0][i],positions[1][i],20,20); 73 positions[0][i]=-1; 74 positions[1][i]=-1; 75 ellipse(ellipseX,ellipseY,31,31); 76 rect(x,y,100,10); 77 loadPixels(); 78 79 } 80 } 81 82} 83 84void moveBall(){ 85 ellipseX=ellipseX+ellipseDx; 86 ellipseY=ellipseY+ellipseDy; 87} 88 89void displayBlocks(int[] block, int positions[][]){ 90 fill(0,255,0); 91 92 for(int i=0; i<200; i++){ 93 rect(block[0],block[1],20,20); 94 block[0]=block[0]+25; 95 positions[0][i]=block[0]; 96 positions[1][i]=block[1]; 97 if(block[0]>=950){ 98 block[1]=block[1]+25; 99 block[0]=25; 100 } 101 } 102} 103 104 105void keyPressed(){ 106 if(key==CODED){ 107 switch(keyCode){ 108 case LEFT: 109 if(isBlockedLeft(x)==true){ 110 return; 111 }else{ 112 x=x-dx; 113 } 114 break; 115 116 case RIGHT: 117 if(isBlockedRight(x)==true){ 118 return; 119 }else{ 120 x=x+dx; 121 } 122 break; 123 } 124 } 125} 126 127boolean isBlockedRight(int x){ 128 if(x>=width-bar_h){ 129 return true; 130 }else{ 131 return false; 132 } 133} 134 135boolean isBlockedLeft(int x){ 136 if(x<=0){ 137 return true; 138 }else{ 139 return false; 140 } 141}
試したこと
fill(0,255,0)の位置を変えてみた。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー