Valaki Segítene ezzel a kóddal? (js)
Az lenne a probléma hogy van egy audio visualizer-kód amit wallpaper engineben használok. Viszont ha nincs hang a kör teljesen eltűnik és csak hangra jelenik újra meg viszont én szeretném hogy végig legyen egy kör
'use strict';
export let __workshopId = '2398102478';
import * as WEVector from 'WEVector';
export var scriptProperties = createScriptProperties()
.addSlider({
name: 'barWidth',
label: 'Bar Width (Scale)',
value: 8,
min: 1,
max: 10,
integer: true
})
.addSlider({
name: 'scaleY',
label: 'Bar Height (Scale Y)',
value: 50, //50 default
min: 0,
max: 1000,
integer: true
})
.addCheckbox({
name: 'enableScaleX',
label: 'Enable Scale X',
value: false
})
.addSlider({
name: 'scaleX',
label: 'Scale X',
value: 2, //3 default
min: 0,
max: 100,
integer: true
})
.addSlider({
name: 'circleScale',
label: 'Circle Scale',
value: 265, //350 default
min: 0,
max: 1000,
integer: false
})
.addSlider({
name: 'angle',
label: 'Arc',
value: 180,
min: 0,
max: 360,
integer: false
})
.addCombo({
name: 'barAlignmentdir',
label: 'Bar Alignment (Direction)',
options: [{
label: 'Centre',
value: 'centre'
}, {
label: 'Bottom',
value: 'bottom'
}, {
label: 'Top',
value: 'top'
}]
})
.finish();
var bars = [];
var baseAngle;
var baseOrigin;
var alignDir;
let audioData = engine.registerAudioBuffers(64);
/**
* @param {Boolean} value (for property 'visible') Biohazard
*/
export function applyUserProperties(changedProperties) {
if (changedProperties.hasOwnProperty('key')) {
for (var i = 0; i < 64; ++i) {
let bar = bars[i];
bar.visible = changedProperties.key;
}
}
}
/**
* @param {Boolean} value (for property 'visible')
*/
export function update() {
//var origin = baseOrigin.copy();
var scale = new Vec3(0 + scriptProperties.barWidth);
for (var i = 0; i < 64; ++i) {
let amt = audioData.average[i];
let bar = bars[i];
scale.y = amt * scriptProperties.scaleY;
bar.alignment = scriptProperties.barAlignmentdir;
//origin.x += scriptProperties.originX;
//origin.y += scriptProperties.originY;
bar.scale = scale;
//bar.origin = origin;
if (scriptProperties.enableScaleX) {
scale.x = amt * scriptProperties.scaleX;
}
}
}
/**
* @param {Boolean} value (for property 'visible')
*/
export function init() {
let center = thisLayer.origin;
bars.push(thisLayer);
let thisIndex = thisScene.getLayerIndex(thisLayer);
for (var i = 1; i < 64; ++i) {
let bar = thisScene.createLayer('models/bar.json');
bar.alignment = scriptProperties.barAlignmentdir;
thisScene.sortLayer(bar, thisIndex);
bar.parallaxDepth = new Vec2(0,0);
bars.push(bar);
}
for (i = 0; i < 64; ++i) {
let angle = scriptProperties.angle * (i / 64);
let direction = new Vec3(WEVector.angleVector2(angle)).multiply(scriptProperties.circleScale);
let bar = bars[i];
bar.origin = center.add(direction);
bar.angles = new Vec3(0, 0, angle + 90);
// how do you rotate an arc around the origin point?
// rotatedPoint = origin + (orientationQuaternion * (origin));
// context.rotate(angle);
}
}
Ha jól sejtem erről van szó:
Feltételezem (nem ismerem a wallpaper engine rendszerét) az alábbi sor:
let amt = audioData.average[i];
kéri le meg a hangerőt és az alábbi sor
scale.y = amt * scriptProperties.scaleY;
felel az előbbi mértékétől függően a megjelenítendő sáv magasságáért.
Ezen utóbbi sort kell kiegészíteni, adva neki egy kezdőmagasságot - például:
scale.y = amt * scriptProperties.scaleY + 10;
Megpróbálom,
köszi szépen
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!