ページ 11

processingのプログラム

Posted: 2013年7月24日(水) 21:44
by 獅音
processingのプログラム作成をしているのですが、こちらで質問させていただいてもよろしいでしょうか?

Re: processingのプログラム

Posted: 2013年7月24日(水) 22:00
by softya(ソフト屋)
はい。大丈夫ですよ。
全部を覚えているわけではないですけど。

Re: processingのプログラム

Posted: 2013年7月24日(水) 22:22
by 獅音

コード:

int w = 600;
int h = 400;
int racketW, racketH;
// racketPosX, racketPosY
float racketPosX,raxketPosY,racketSpeed;
color fgcolor; // foreGround Color
color bgColor; // backGround color

void setup(){
size(w,h);
smooth();
noStroke();
frameRate(30);
racketW = 20;
racketH = 50;
racketPosX = w/2;
racketPosY = 0 ;
racketSpeed = 4;
bgColor = color(0);
fgColor = color(255);
}

void draw(){
  background(bgColor);
  if(keyPressed == true){
    if(key == 'w' || key == 'w'){
      racketPosY -= racketSpeed;
    }
    if(key == 's' || key == 's'){
      racketPosY +=racketSpeed;
    }
  }
  fill(fgColor);
  rect(racketPosX,racketPosY,racketW,racketH);
}
このコードで、ラケットの移動をさせたいのですが、画面上から消えてしまうのですが、どこを直せば画面を突き抜けないプログラムに出来ますか?

Re: processingのプログラム

Posted: 2013年7月24日(水) 22:31
by softya(ソフト屋)
インデントがちょっと分かりづらいですね。綺麗に直すとこんな感じです。

コード:

int w = 600;
int h = 400;
int racketW, racketH;
// racketPosX, racketPosY
float racketPosX, raxketPosY, racketSpeed;
color fgcolor; // foreGround Color
color bgColor; // backGround color

void setup() {
	size( w, h );
	smooth();
	noStroke();
	frameRate( 30 );
	racketW = 20;
	racketH = 50;
	racketPosX = w / 2;
	racketPosY = 0 ;
	racketSpeed = 4;
	bgColor = color( 0 );
	fgColor = color( 255 );
}

void draw() {
	background( bgColor );
	if( keyPressed == true ) {
		if( key == 'w' || key == 'w' ) {
			racketPosY -= racketSpeed;
		}
		if( key == 's' || key == 's' ) {
			racketPosY += racketSpeed;
		}
	}
	fill( fgColor );
	rect( racketPosX, racketPosY, racketW, racketH );
}
直す所はracketPosY の座標を変えている所で、画面の外に出ないように補正することです。
あとif( key == 'w' || key == 'w' ) {は2とも同じ条件に見えますけど。間違えていませんか?

Re: processingのプログラム

Posted: 2013年7月24日(水) 22:39
by 獅音
すみません、大文字のWとSでした。
それで、変えるのは16行目でいいんでしょうか^^;

Re: processingのプログラム

Posted: 2013年7月24日(水) 22:43
by softya(ソフト屋)
setup()の方は初期値です。キーで動的に座標が変化するには draw()の方です。
racketPosY が動的に変化する所は何らかのガードが必要です。

Re: processingのプログラム

Posted: 2013年7月24日(水) 23:26
by softya(ソフト屋)
マルチポストされていませんか?
「proccesingのプログラム - Yahoo!知恵袋」
http://detail.chiebukuro.yahoo.co.jp/qa ... 4110782014
フォーラムルール違反となるので、こちらで質問していることも明記・リンクして下さい。
当然ながら、こちらからも知恵袋で質問しているとリンクして頂く必要があります。

Re: processingのプログラム

Posted: 2013年7月25日(木) 14:09
by 獅音
はい。すみません気を付けます。
どうも申し訳ございませんでした。