Kezdőoldal » Számítástechnika » Programozás » Valaki Segítene ezzel a...

Valaki Segítene ezzel a kóddal? (js)

Figyelt kérdés

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);

}

}



2021. ápr. 18. 23:49
 1/5 anonim ***** válasza:
28%
Akkor módosítanod kell a kódot!
2021. ápr. 18. 23:55
Hasznos számodra ez a válasz?
 2/5 A kérdező kommentje:
Azt gondoltam de nemtudok rájönni hogy hol
2021. ápr. 18. 23:55
 3/5 anonim ***** válasza:
100%

Ha jól sejtem erről van szó:

[link]


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;

2021. ápr. 19. 00:20
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

Megpróbálom,

köszi szépen

2021. ápr. 19. 00:51
 5/5 A kérdező kommentje:
Müködik köszönöm szépen
2021. ápr. 19. 11:39

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!