Javascript 如何增加椭圆的亮度

Javascript 如何增加椭圆的亮度,javascript,p5.js,Javascript,P5.js,我有一个小代码,它是基于太阳随着时间的推移而落下,月亮出现在天空中,图像变暗,好像变成了夜间。问题是,月亮也会随着覆盖整个屏幕的矩形变暗,以使其透明度越来越高。我怎样才能使月亮显得明亮而洁白呢 我尝试过使用brightness()命令,但无法控制它 var groundHeight; var mountain1; var mountain2; var tree; var moon; var sun; var darkness; var moonB; function setup() {

我有一个小代码,它是基于太阳随着时间的推移而落下,月亮出现在天空中,图像变暗,好像变成了夜间。问题是,月亮也会随着覆盖整个屏幕的矩形变暗,以使其透明度越来越高。我怎样才能使月亮显得明亮而洁白呢

我尝试过使用brightness()命令,但无法控制它

var groundHeight;
var mountain1;
var mountain2;

var tree;

var moon;
var sun;
var darkness;

var moonB;

function setup()
{
createCanvas(800, 600);
//set the groundHeight proportional to the canvas size
groundHeight = (height / 3) * 2;

//initialise the the mountain objects with properties to help draw them 
to the canvas
mountain1 = {
    x: 400,
    y: groundHeight,
    height: 320,
    width: 230
};
mountain2 = {
    x: 550,
    y: groundHeight,
    height: 200,
    width: 130
};

//initalise the tree object
tree = {
    x: 150,
    y: groundHeight + 20,
    trunkWidth: 40,
    trunkHeight: 150,
    canopyWidth: 120,
    canopyHeight: 100
};

//initalise the sun 
sun = {
    x: 150,
    y: 70,
    diameter: 80,
};

moonB = 0

moonX = 700


//set the initial darkness
darkness = 0


}



function draw()
{


//draw the sky
background(150, 200, 255);
noStroke();

//draw the sun
fill(255, 255, 0);
ellipse(sun.x, sun.y, sun.diameter + 10);

//TASK: you'll need to draw the moon too. Make sure you use brightness to adjust the colour
fill(250, moonB)
ellipse(moonX,50, sun.diameter - 5);

//drawhe ground and make it green
fill(70, 200, 0);
rect(0, groundHeight, width, height - groundHeight);

//draw the mountains
fill(120);
triangle(mountain1.x, mountain1.y,
    mountain1.x + mountain1.width, mountain1.y,
    mountain1.x + (mountain1.width / 2), mountain1.y - mountain1.height);

triangle(mountain2.x, mountain2.y,
    mountain2.x + mountain2.width, mountain2.y,
    mountain2.x + (mountain2.width / 2), mountain2.y - mountain2.height);



//make the scene dark by drawing a rectangle that covers the whole canvas.
//Use the alpha value of fill to determine how dark to make it
fill(50, darkness);
rect(0,0,800,600)
sun.y = sun.y + 3;
darkness = min(darkness + 1,150);
moonB = moonB + 3


}
预计:太阳下山,而月亮每秒钟都显得更亮。当月亮明亮明亮时,屏幕变得更暗。
输出:太阳下山,月亮看起来更亮,但随着屏幕变暗,亮度会降低。

正如安德鲁·莫顿的评论中提到的,您正在用一个矩形覆盖场景,该矩形可以复制黑暗:

fill(50, darkness);
rect(0, 0, 800, 600);
问题是它还覆盖了月球,这使得月球也变暗了。如果你移动月亮代码的绘图,使其位于变暗的矩形之后,你将在晚上拥有一轮明亮的月亮

var地面高度;
瓦尔山1号;
瓦尔山2号;
var树;
月亮;
var sun;
黑暗;
var moonB;
函数设置(){
createCanvas(800600);
//设置与画布大小成比例的地面高度
地面高度=(高度/3)*2;
山体1={
x:400,
y:地面高度,
身高:320,
宽度:230
};
山脉2={
x:550,
y:地面高度,
身高:200,
宽度:130
};
//初始化树对象
树={
x:150,
y:地面高度+20,
树干宽度:40,
树干高度:150,
船宽:120,
独木舟高度:100
};
//初始化太阳
太阳={
x:150,
y:70,
直径:80,
};
moonB=0
月x=700
//设置初始黑暗度
黑暗=0
}
函数绘图(){
//画天空
背景(150200255);
仰泳();
//画太阳
填充(255,255,0);
椭圆(太阳x、太阳y、太阳直径+10);
//把地面画成绿色
填充(70200,0);
rect(0,地面高度,宽度,高度-地面高度);
//画山
填充(120);
三角形(mountain1.x,mountain1.y,
山体1.x+山体1.width,山体1.y,
mountain1.x+(mountain1.width/2),mountain1.y-mountain1.height);
三角形(mountain2.x,mountain2.y,
mountain2.x+mountain2.width,mountain2.y,
mountain2.x+(mountain2.width/2),mountain2.y-mountain2.height);
//通过绘制覆盖整个画布的矩形使场景变暗。
//使用“填充”的alpha值确定使其变暗的程度
填充(50,黑暗);
rect(0,0,800600)
sun.y=sun.y+3;
黑暗度=分钟(黑暗度+1150);
moonB=moonB+3
//任务:你也需要画月亮。确保你用亮度来调整颜色
填充(250,月b)
椭圆(月亮,50,太阳直径-5);
}

把场景调暗后,你试过画月亮吗?