【发布时间】:2021-11-13 14:36:59
【问题描述】:
我是 p5.js 和一般编码的初学者。对于我的课堂项目,我正在创建一张可定制的生日贺卡。卡片的三个部分是可定制的:蛋糕样式、帽子样式和蛋糕上的面部表情。理想情况下,用户会单击卡片的每个部分来循环选择适合自己口味的自定义选项。
我现在粘贴在这篇文章中的代码只是蛋糕样式选项。此外,我对其进行了编码,以便用户可以单击一个按钮来选择他们的蛋糕样式,而不是单击卡片上的特定区域,因为这对我来说更容易弄清楚。
我的问题是,我将如何对其进行编码,以便在用户第一次单击按钮时弹出第一个蛋糕选项,然后在第二次单击时弹出第二个蛋糕选项,等等?我需要每次点击弹出一个蛋糕选项;所有其他蛋糕选项都需要隐藏。
我的另一个问题是关于在显示所有蛋糕选项后循环回到第一个蛋糕选项。我有五个蛋糕选项,那么我该如何编写代码,这样不仅第一次点击会显示第一个蛋糕选项,还会显示第六个、第十一个、第十六个等?
提前致谢。
let clickCount = 0
let cakes
let cakeButton
function preload (){
card_bg = loadImage ("card_bg.png")
cake_chocolate = loadImage ("cake_chocolate.png")
cake_pink = loadImage ("cake_pink.png")
cake_pinkDrip = loadImage ("cake_pinkDrip.png")
cake_rainbow = loadImage ("cake_rainbow.png")
cake_white = loadImage ("cake_white.png")
hat_chevron = loadImage ("hat_chevron.png")
hat_dots = loadImage ("hat_dots.png")
hat_puff = loadImage ("hat_puff.png")
hat_stars = loadImage ("hat_stars.png")
hat_stripes = loadImage ("hat_stripes.png")
}
function setup() {
createCanvas(450, 600);
background(220);
image (card_bg, 0, 0)
cakeButton = createButton("click me", "blue")
cakeButton.position (125, 600)
cakeButton.size (200, 150)
cakeButton.mousePressed (cakePress)
}
function cakePress() {
clickCount++
imageMode (CENTER)
let cakes = [cake_chocolate, cake_pink, cake_pinkDrip, cake_white, cake_rainbow]
for (let i = 0; i<5; i++){
if (clickCount === i+1){
image (cakes[i], 225, 425)}
else if (clickCount === i+2 && cakes[i] === true){
cakes[i].hide()
}
}
}
【问题讨论】:
标签: javascript arrays for-loop mouseevent p5.js