open processingで、drawの中に用意する2つの図形を別々のフレームレートで動かしたいのですが、フレームレートを複数設定する方法はありますか?

1件の回答

回答を書く

1291065

2026-03-04 14:45

+ フォロー

\u0026gt; フレームレートを複数設定する方法

原則としてありません。



それぞれの図形を何フレームかに一度動かす、ということで似たような効果を得ることができるとは思います。



スタンドアローンのProcessingだとframeRateを高く設定できますが、p5.js(open Processing)だとパラメータを多くしても60fpsにしかならないようなので、16.6ms毎に動かすか動かさないかで移動速度が変わるようなことにはなります。



function setup() {

    createCanvas(340, 300);

    rectMode(CENTER);

    frameRate(60);

}



let interval=0;

const int1=1; //1回に1回(つまり毎回)動かす

const int2=3; //3回に1回動かす=フレームレート20に相当



const r=100;

const d=100;

let x1=r/2, x2=d/2, y1=r,y2=2*d;

let speed1=3, speed2=3;

let dir1=1, dir2=1;



function draw() {

    background(0xcc);

    //描画は毎回する

    circle(x1,y1,r);

    square(x2,y2,d)

    

    if(interval%int1==0){

        // 60/1フレーム/秒毎に値を更新する

        x1=x1+dir1*speed1;

        if(x1\u0026gt;width-r/2){

            dir1=-1;

            x1=width-r/2;

        }else if(x1\u0026lt;r/2){

            dir1=1

            x1=r/2;

        }

        

    }

    if(interval%int2==0){

        // 60/3フレーム/秒毎に値を更新する

        x2=x2+dir2*speed2;

        if(x2\u0026gt;width-d/2){

            dir2=-1;

            x2=width-d/2;

        }else if(x2\u0026lt;d/2){

            dir2=1;

            x2=d/2

        }

    }

    interval++;

}

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有