Përmbajtje:

Udhëzime interesante të programimit të përpunimit për projektuesin-Ngarkimi i mediave dhe ngjarja: 13 hapa
Udhëzime interesante të programimit të përpunimit për projektuesin-Ngarkimi i mediave dhe ngjarja: 13 hapa

Video: Udhëzime interesante të programimit të përpunimit për projektuesin-Ngarkimi i mediave dhe ngjarja: 13 hapa

Video: Udhëzime interesante të programimit të përpunimit për projektuesin-Ngarkimi i mediave dhe ngjarja: 13 hapa
Video: Nusja harron dhendrin para Butrintit, çfarë po ndodh? 😮#shorts #viral #butrintimeri #butrint #trend 2024, Nëntor
Anonim
Udhëzime interesante të programimit të përpunimit për projektuesin-Ngarkimi i mediave dhe ngjarja
Udhëzime interesante të programimit të përpunimit për projektuesin-Ngarkimi i mediave dhe ngjarja

Përpunimi mund të ngarkojë shumë të dhëna të jashtme, ndër të cilat ka tre lloje që përdoren shumë shpesh. Ato janë imazhe, audio dhe video veç e veç.

Në këtë kapitull, ne do të flasim se si të ngarkoni audio dhe video në detaje, duke u kombinuar me ngjarjet. Në fund, ju mund të krijoni tastierën tuaj muzikore ose paleta muzikore.

Hapi 1: Lexoni imazhin

Para se të fillojmë, le të shikojmë përsëri në metodën e ngarkimit të imazhit.

Hapi 2: Funksionet që lidhen me imazhin

Para se të përdorim këto funksione, duhet të krijojmë një objekt imazhi përmes PImage. Pastaj ne mund t'i përdorim këto funksione për të përcaktuar të gjitha llojet e vetive të imazhit.

Mos harroni të ruani burimet e imazhit tuaj në skedarin e të dhënave para se të ekzekutoni programin tuaj.

Hapi 3: Ngarkimi i Muzikës, Luajtja & Ndalimi

Në vijim, ne fillojmë t'ju prezantojmë zyrtarisht thirrjen e muzikës. Shumë e ngjashme me ngarkimin e imazhit, duhet të deklaroni një objekt audio në fillim. Ju mund t'i referoheni shembullit më poshtë nga gramatika aktuale.

Shembull Kodi (10-1):

[cceN_cpp theme = "agim"] importimi i përpunimit.zërit.*;

SoundFile tingull;

void setup () {

madhësia (640, 360);

sfond (255);

zë = SoundFile e re (kjo, "1.mp3");

}

tërheqje e pavlefshme () {

}

çelësi i pavlefshëm i shtypur () {

// Luaj zërin

nëse (çelësi == 'p') {

tingull.luaj ();

}

// Ndaloni tingullin

nëse (çelësi == 's') {

tingull.stop ();

}

} [/cceN_cpp]

Përgatitja:

Përpunimi në vetvete nuk mbart ndonjë bibliotekë zanore. Duhet ta shkarkoni vetë. Pra, para se të shkruani kodin tuaj, më mirë bëni përgatitjet e mëposhtme.

Shtoni bibliotekën në Përpunim. Këtu është praktika e zakonshme. Zgjidhni nga shiriti i menysë për "Tool"- "Add Tool" dhe më pas kaloni te "Bibliotekat". Futni fjalët kyçe të bibliotekës në kolonën e kërkimit në mënyrë që ta shkarkoni dhe instaloni direkt.

Sidoqoftë, nëse e përdorim këtë funksion në vendin tonë (në Kinë), nuk mund ta shkarkojmë duke e lidhur direkt uebin. Ne duhet të fillojmë VPN. Edhe pse e fillojmë, do të ketë kushte të paqëndrueshme. Pra, duhet të jeni të durueshëm për ta provuar disa herë. Kjo është metoda më e përshtatshme e ngarkimit. Nëse nuk mund ta instaloni, duhet të shkarkoni nga faqja zyrtare me manual. (https://processing.org/reference/libraries/) Meqenëse metoda e instalimit manual është shumë e komplikuar, ne do ta diskutojmë më tej në kapitullin tjetër.

Kodi i Shpjeguar:

Biblioteka e zërit mund të funksionojë siç duhet pas përfundimit të përgatitjes. Përballoni kodin e mësipërm, klikoni RUN, atëherë do të funksionojë. Shtypni butonin "P" për të luajtur muzikë, "S" për të ndaluar muzikën.

Nëse është mësuar me programin, së pari duhet ta ngarkojmë. Në fillim, duhet të shtojmë një fjali "importimi i përpunimit. Zërit.*". "import" është fjala kyçe, që do të thotë ngarkim fjalë për fjalë. Shtoni emrin e bibliotekës pas "importit", atëherë ajo do të ngarkojë bibliotekën. Bishti zakonisht ndjek një shenjë "*", kështu që do të ngarkojë të gjitha klasat e lidhura me bibliotekën në program pa pasur nevojë t'i shtoni ato një nga një me dorë.

Në fjalinë e dytë, "SoundFile sound;" ka deklaruar një objekt audio. SoundFile është i ngjashëm me PImage.

Brenda konfigurimit të funksionit, "sound = new SoundFile (kjo," 1.mp3 ");" përdoret për të krijuar një objekt dhe për të përcaktuar rrugën e tij të leximit. Këtu ne në fakt tashmë kemi filluar të përdorim një koncept të ri Class. Tani për tani ne nuk e diskutojmë atë thellë. Ne vetëm duhet të dimë se është një metodë fikse shkrimi dhe parametri i fundit është për mbushjen e adresës së burimit të muzikës.

Ndër ngjarjet kryesore të shtypura (), "sound.play ()" dhe "sound.stop ()" punojnë relativisht si efekt i lojës dhe ndalimit. "." në mes tregon një funksion anëtar që luajnë dhe ndalojnë i përkasin objekteve audio. Ne mund ta konsiderojmë funksionin anëtar si funksionin e përfshirë në objekt. I përket këtij objekti, i cili është përcaktuar më parë. Më vonë, kur duhet të luajmë objekte të shumta audio, duhet të shtojmë vetëm ".play ()" pas emrit relativ të ndryshores.

Burimet audio do të ruhen në skedarin e të dhënave nën të njëjtin katalog të sketchfile (me prapashtesë pde). Nëse nuk ka asnjë, mund ta krijoni me dorë.

Mos harroni të shkruani vizatimin e funksionit. Edhe pse nuk keni vizatuar asnjë grafikë, është e nevojshme të luani muzikë me sukses.

Procedura e mësipërme duket mjaft komplekse, por ju duhet të shtoni vetëm disa fjali të kodit, atëherë mund të realizoni funksionin e lojës. Veryshtë shumë i përshtatshëm.

Përpunimi mbështet formatet e zakonshme audio si mp3, wav, ogg, etj.

Hapi 4: Kontrolli i Shpejtësisë së Muzikës

Shembujt e mëposhtëm do të fillojnë të bëhen shumë interesantë. Përpunimi ka siguruar disa funksione që mund të kontrollojnë shpejtësinë e luajtjes së muzikës. Në të njëjtën kohë, tonet do të ndryshojnë me shpejtësinë e luajtjes së muzikës. Kur përdorim miun për të kontrolluar, do të krijojë një efekt shumë psikedelik.

Faqja e internetit e videos:

Shembull Kodi (10-2):

[cceN_cpp theme = "agim"] importimi i përpunimit.zërit.*;

SoundFile tingull;

void setup () {

madhësia (640, 360);

sfond (255);

zë = SoundFile e re (kjo, "1.mp3");

}

tërheqje e pavlefshme () {

shpejtësia e notimit = mouseX/(float) gjerësia * 3;

tingulli.vlera (shpejtësia);

float vol = mouseY/(float) lartësia * 4;

tingull.amp (vol);

}

çelësi i pavlefshëm i shtypur () {

// Luaj zërin

nëse (çelësi == 'p') {

tingull.luaj ();

}

// Ndaloni tingullin

nëse (çelësi == 's') {

tingull.stop ();

}

} [/cceN_cpp]

Kodi Shpjegoni:

Funksioni.rate () kontrollon shpejtësinë e luajtjes së audios. Vlera në kllapa përcakton shpejtësinë dhe ngadalësinë e lojës. Kur vlera është 1, shpejtësia e lojës është normale. Kur është përtej 1, atëherë përshpejtoni; ndërsa është nën 1, pastaj ngadalësoni.

Funksioni.amp () kontrollon volumin e zërit. Vlera në kllapa përcakton vlerën e vëllimit. Kur është 1, vlera e volumit është normale. Kur është përtej 1, atëherë rrisni vëllimin; ndërsa është nën 1, atëherë zvogëloni volumin.

Këtu kemi ndërtuar dy ndryshore lokale shpejtësinë dhe volumin si parametra që duhen ngarkuar. Prandaj koordinata horizontale e miut do të ndryshojë tonin e muzikës, dhe koordinata vertikale do të ndryshojë volumin e muzikës.

Hapi 5: Luajtja e videos dhe ndalimi

Në Përpunim, ngarkimi i videos është i ngjashëm me ngarkimin audio. Së pari ju duhet të shkarkoni bibliotekën e videove. (https://processing.org/reference/libraries/video/index.html)

Shembull Kodi (10-3):

[cceN_cpp theme = "agim"] importo përpunimin.video.*;

Filmi filmik;

void setup () {

madhësia (640, 360);

sfond (0);

mov = Filmi i ri (ky, "1.mov");

}

film i pavlefshëm Event (film filmi) {

mov.read ();

}

tërheqje e pavlefshme () {

imazh (mov, 0, 0, 640, 360);

}

çelësi i pavlefshëm i shtypur () {

nëse (çelësi == 'p') {

mov.play ();

}

nëse (çelësi == 's') {

mov.stop ();

}

nëse (çelësi == 'd') {

mov.pause ();

}

} [/cceN_cpp]

Pamja e ekranit të videos:

Kodi Shpjegoni:

Fjalia e parë "importoni përpunimin. Video.*;" Përdoret për të ngarkuar bibliotekën.

Fjalia e dytë "Movie mov;" përdoret për të deklaruar objekt video. Midis tij, funksioni i "Movie" është i ngjashëm me PImage.

Në konfigurimin e funksionit, efekti i "mov = Movie i ri (kjo," 1.mov ");" është të krijojë objekt dhe të përcaktojë rrugën e tij të leximit. Parametri i fundit duhet të plotësohet me adresën e burimit të videos.

Behine setup, movieEvent përfaqëson ngjarjen video. Përdoret për të azhurnuar dhe lexuar informacionin e videos. "mov.read ()" në rast do të thotë i lexuar.

Me përjashtim të shfaqjes së imazheve, imazhi i funksionit mund të shfaqë edhe video. Ne mund ta konsiderojmë objektin video si një fotografi dinamike. Parametri i parë, plotësojmë emrin e ndryshores së objektit të videos. Parametrat e dytë dhe të tretë janë koordinatat horizontale dhe vertikale të vizatuara me video. Parametrat e katërt dhe të pesëmbëdhjetë vendosin gjatësinë dhe gjerësinë e shfaqjes së videos.

Funksioni.lojë () do të thotë lojë. Funksioni.stop () do të thotë ndalim, dhe do të rivendosë videon. Funksioni.pushim () do të thotë pauzë. Do të ndërpresë luajtjen aktuale, e cila do të vazhdojë derisa të thirret funksioni.play ().

Hapi 6: Kontrolli i Shpejtësisë së Video

Shembull Kodi (10-4):

[cceN_cpp theme = "agim"] importo përpunimin.video.*;

Filmi filmik;

void setup () {

madhësia (640, 360);

sfond (0);

mov = Filmi i ri (ky, "transit.mov");

}

void filmEvent (film filmi) {

mov.read ();

}

tërheqje e pavlefshme () {

imazh (mov, 0, 0, gjerësia, lartësia);

noton newSpeed = mouseX/(noton) gjerësia * 4;

mov.speed (newSpeed);

}

çelësi i pavlefshëm i shtypur () {

nëse (çelësi == 'p') {

mov.luaj ();

}

nëse (çelësi == 's') {

mov.stop ();

}

nëse (çelësi == 'd') {

mov.pause ();

}

}

[/cceN_cpp]

Kodi Shpjegoni:

Funksioni.speed () mund të përdoret për të kontrolluar shpejtësinë e luajtjes së videos. Kur vlera e parametrit është 1, shpejtësia e luajtjes është normale. Kur vlera përtej 1, atëherë përshpejtoni; ndërsa është nën 1, pastaj ngadalësohet.

Për shkak se ne kemi krijuar ndryshore lokale newSpeed dhe e kemi importuar atë në funksion setSpeed (), koordinata e miut do të ndikojë drejtpërdrejt në shpejtësinë e luajtjes së videos.

Sa për më shumë shembuj në lidhje me videon, mund t'i referoheni Bibliotekave - Video në bibliotekën e rastit.

Hapi 7: Përpunimi i Ngjarjeve të Përbashkëta

Më parë, ne kemi prezantuar vetëm ngjarjen keyPressed (). Do të aktivizohet pasi të keni shtypur tastierën. Në vijim, ne do të prezantojmë ngjarje të tjera të zakonshme në Përpunimin për ju.

Përdorimet e ngjarjeve të mësipërme janë të ngjashme me ato të shtypura. Ata nuk kanë sekuencë në shkrimin e kodit. Me fjalë të tjera, pa marrë parasysh se cilën ngjarje keni vendosur para ose pas konfigurimit të funksionit, ju merrni të njëjtin rezultat. Urdhri i ekzekutimit lidhet vetëm me gjendjen shkaktuese të vetë ngjarjes. Vetëm nëse kushti plotësohet, atëherë ai do të ekzekutohet. Të gjitha ngjarjet e mësipërme janë shumë të lehta për tu kuptuar. Thjesht duhet të bëni një eksperiment të vogël, atëherë mund t'i kuptoni shpejt përdorimet e tyre.

Rrjedha e ngjarjeve

Ne mund të përdorim një shembull për të njohur rendin e ekzekutimit të ngjarjeve.

Shembull Kodi (10-5):

[cceN_cpp theme = "agim"] konfigurim i pavlefshëm () {

frameRate (2);

println (1);

}

tërheqje e pavlefshme () {

println (2);

}

void mousePressed () {

println (3);

}

void mouseMoved () {

println (4);

}

void mouseReleased () {)

println (5);

}

çelësi i pavlefshëm i shtypur () {

println (6);

}

çelësi i pavlefshëm i lëshuar () {)

println (7);

} [/cceN_cpp]

Kodi Shpjegoni:

Në konfigurimin e funksionit, funksioni frameRate () ka vendosur që shpejtësia e funksionimit të programit të jetë 2 kuadro për sekondë. Ulja e shkallës së kornizës mund të na ndihmojë të vëzhgojmë daljen në tastierë në rast se ngjarjet e shkaktuara menjëherë do të fshihen nga të dhënat e reja në pjesën e pasme.

Mundohuni të lëvizni miun, klikoni miun, lëshoni miun dhe vëzhgoni rezultatin e daljes. Njihuni me urdhrin e ekzekutimit të ngjarjes përmes println.

Ajo që ia vlen t'i kushtohet vëmendje është se funksionet e vizatimit nuk mund të shkruhen në ngjarje të tjera përveç tërheqjes së funksionit, ose nuk mund të shfaqen. Nëse duam të kontrollojmë fshehjen dhe shfaqjen e komponentëve grafikë përmes ngjarjeve si keyPressed, mund të konsiderojmë të krijojmë variablin bool si medium.

Ngjarjet do të ekzekutohen në rregull. Vetëm pasi të zbatohet i gjithë kodi në ngjarjen aktuale, ai do të ekzekutojë kodin në ngjarjen tjetër.

Hapi 8: Shembull gjithëpërfshirës-Tastiera e muzikës

Duke u kombinuar me ngjarjet e sapo kuptuara, ne mund të shtojmë ndërveprime të reja në programin tonë. Tjetra, vetëm me pak minuta, ne mund të analogojmë me lehtësi një tastierë muzikore.

Faqja e internetit e videos:

Shembull Kodi (10-6):

[cceN_cpp theme = "agim"] importimi i përpunimit.zërit.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

çelësi boolean1, çelësi2, çelësi3, çelësi4, çelësi5;

void setup () {

madhësia (640, 360);

sfond (255);

noStroke ();

sound1 = SoundFile e re (kjo, "do.wav");

sound2 = SoundFile e re (kjo, "re.wav");

sound3 = SoundFile e re (kjo, "mi.wav");

sound4 = SoundFile e re (kjo, "fa.wav");

sound5 = SoundFile e re (kjo, "so.wav");

}

tërheqje e pavlefshme () {

sfond (255, 214, 79);

rectMode (CENTER);

noton w = gjerësia * 0.1;

noton h = lartësia * 0.8;

nëse (çelësi 1) {

mbush (255);

} tjetër {

mbush (238, 145, 117);

}

drejt (gjerësia/6, lartësia/2, w, h);

nëse (çelësi 2) {

mbush (255);

} tjetër {

mbush (246, 96, 100);

}

drejt (gjerësia/6 * 2, lartësia/2, w, h);

nëse (çelësi 3) {

mbush (255);

} tjetër {

mbush (214, 86, 113);

}

drejt (gjerësia/6 * 3, lartësia/2, w, h);

nëse (çelësi 4) {

mbush (255);

} tjetër {

mbush (124, 60, 131);

}

drejt (gjerësia/6 * 4, lartësia/2, w, h);

nëse (çelësi 5) {

mbush (255);

} tjetër {

mbush (107, 27, 157);

}

drejt (gjerësia/6 * 5, lartësia/2, w, h);

}

çelësi i pavlefshëm i shtypur () {

nëse (çelësi == 'a') {

tingulli1.luaj ();

çelësi1 = e vërtetë;

}

nëse (çelësi == 's') {

tingulli2.luaj ();

çelësi2 = e vërtetë;

}

nëse (çelësi == 'd') {

tingulli3.luaj ();

çelësi3 = e vërtetë;

}

nëse (çelësi == 'f') {

tingulli4.luaj ();

çelësi4 = e vërtetë;

}

nëse (çelësi == 'g') {

tingulli5.luaj ();

çelësi5 = e vërtetë;

}

}

çelësi i pavlefshëm i lëshuar () {)

nëse (çelësi == 'a') {

çelësi 1 = i rremë;

}

nëse (çelësi == 's') {

çelësi2 = i rremë;

}

nëse (çelësi == 'd') {

çelësi3 = i rremë;

}

nëse (çelësi == 'f') {

çelësi4 = i rremë;

}

nëse (çelësi == 'g') {

çelësi5 = i rremë;

}

} [/cceN_cpp]

Kodi Shpjegoni:

Ne duhet të krijojmë objekte të shumta audio për të lexuar informacionin relativ të zërit në mënyrë që të luajmë tinguj të ndryshëm kur ndizen çelësa të ndryshëm.

Këtu ne përdorim një çelës të ri të ngjarjes të lëshuar (). Funksioni i kësaj ngjarje është të rivendosë ngjyrën e tastierës në ngjyrën e saj origjinale. Kur lëshoni çelësin, do të aktivizohet.

5 vlerat booleane të deklaruara në kokë përdoren për të zbuluar statusin e çelësit.

Hapi 9: Shembull gjithëpërfshirës-Paleta e Muzikës 1

Përveç ngjarjes së tastierës, ngjarja e miut është një gjë e mirë që ne duhet ta përdorim atë në mënyrë fleksibile. Shembulli i mëposhtëm është për ne që të krijojmë një paletë muzikore, ndër të cilat kemi përdorur dy ngjarje të lidhura me miun.

Faqja e internetit e videos:

Shembull Kodi (10-7):

[cceN_cpp theme = "agim"] importimi i përpunimit.zërit.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

boolean isDragging;

void setup () {

madhësia (640, 360);

sfond (255, 214, 79);

noStroke ();

sound1 = SoundFile e re (kjo, "do.wav");

sound2 = SoundFile e re (kjo, "re.wav");

sound3 = SoundFile e re (kjo, "mi.wav");

sound4 = SoundFile e re (kjo, "fa.wav");

sound5 = SoundFile e re (kjo, "so.wav");

}

tërheqje e pavlefshme () {

if (isDragging) {

mbush (107, 27, 157, 100);

elips (mouseX, mouseY, 16, 16);

}

}

void mouseDragged () {

isDragging = e vërtetë;

nëse (mouseX> 100 && mouseX <105) {

tingulli1.luaj ();

}

nëse (mouseX> 200 && mouseX <205) {

tingulli2.luaj ();

}

nëse (mouseX> 300 && mouseX <305) {

tingulli3.luaj ();

}

nëse (mouseX> 400 && mouseX <405) {

tingulli4.luaj ();

}

nëse (mouseX> 500 && mouseX <505) {

tingulli5.luaj ();

}

}

void mouseReleased () {)

isDragging = false;

} [/cceN_cpp]

Kodi Shpjegoni:

Shpresojmë që vetëm kur të shtypim miun dhe ta tërheqim atë, të mund të vizatojmë fotografi. Pra, ne duhet të ndërtojmë një variabël boolean isDragging për të marrë statusin aktual.

Kur tërhiqni miun, isDragging bëhet vlerë e vërtetë kështu që funksionet e vizatimit brenda Draw do të ekzekutohen. Do të lërë gjurmë në ekran. Kur lëshojmë miun, isDragging bëhet vlerë false. Pra, funksionet e vizatimit në funksionin draw do të ndalojnë ekzekutimin.

Ne kemi krijuar disa kushte nxitëse në ngjarjen e zvarritjes së miut. Për shembull, kur koordinata horizontale e miut është midis 100 dhe 105 piksele, muzika do të luhet automatikisht. Kjo bën që ekrani të krijojë disa tela të padukshëm. Vetëm nëse miu kalon nëpër zona të caktuara, do të shkaktojë muzikën relative.

Hapi 10: Shembull gjithëpërfshirës-Paleta e Muzikës 2 (Versioni i Përditësuar)

Efekti i shembullit të mësipërm është tashmë mjaft i mirë. Por nëse e shikojmë me kujdes, do të gjejmë shumë probleme. Për shembull, kur miu lëviz shumë shpejt, ai do të lërë një pikë të rrumbullakët në ekran sa herë që lëviz. Nuk është një linjë e drejtë koherente. Ndërkohë, ajo gjithashtu shkakton një rrjedhje muzikore. Ndërsa kur miu lëviz shumë ngadalë, duke kaluar nëpër pozicionin kur koordinata horizontale është midis 100 dhe 105, ai do të transmetojë muzikë shumë herë brenda një kohe shumë të shkurtër, gjë që ju jep një ndjenjë të ngecjes. Të gjitha këto probleme, ne mund t'i zgjidhim përmes shembullit më poshtë.

Videot mund t’i shikoni në lidhjen më poshtë:

v.qq.com/x/page/w03226o4y4l.html

Shembull Kodi (10-8):

[cceN_cpp theme = "agim"] importimi i përpunimit.zërit.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

boolean isDragging;

void setup () {

madhësia (640, 360);

sfond (255, 214, 79);

noStroke ();

sound1 = SoundFile e re (kjo, "do.wav");

sound2 = SoundFile e re (kjo, "re.wav");

sound3 = SoundFile e re (kjo, "mi.wav");

sound4 = SoundFile e re (kjo, "fa.wav");

sound5 = SoundFile e re (kjo, "so.wav");

}

tërheqje e pavlefshme () {

if (isDragging) {

goditje (107, 27, 157, 100);

goditje Pesha (10);

linjë (mouseX, mouseY, pmouseX, pmouseY);

}

}

void mouseDragged () {

isDragging = e vërtetë;

nëse ((mouseX - 100) * (pmouseX - 100) <0) {

tingulli1.luaj ();

}

nëse ((mouseX - 200) * (pmouseX - 200) <0) {

tingulli2.luaj ();

}

nëse ((mouseX - 300) * (pmouseX - 300) <0) {

tingulli3.luaj ();

}

nëse ((mouseX - 400) * (pmouseX - 400) <0) {

tingulli4.luaj ();

}

nëse ((mouseX - 500) * (pmouseX - 500) <0) {

tingulli5.luaj ();

}

}

void mouseReleased () {)

isDragging = false;

} [/cceN_cpp]

Kodi Shpjegoni:

Këtu kemi përdorur dy variabla pmouseX dhe pmouseY të bartura në vetë sistemin e përpunimit. Ato janë të ngjashme me mouseX dhe mouseY, por ato që kanë marrë janë koordinatat e miut në kuadrin e fundit.

Në tërheqjen e funksioneve, ne kemi përdorur vijën e funksionit () për të zëvendësuar elipsin e funksionit origjinal (). Kjo e bën koordinatën e kornizës së fundit të lidhur drejtpërdrejt me koordinatën e kornizës aktuale. Kështu që ne mund të vizatojmë linja koherente ose kthesa.

Në rast mouseDragged, ne kemi krijuar një gjendje të re nxitëse. Përmes gjykimit nëse koordinata e kornizës së fundit dhe kornizës aktuale janë në të njëjtën anë për të ditur nëse një koordinatë e caktuar kalohet. Merrni këtë kusht si shembull: "if ((mouseX - 100) * (pmouseX - 100) <0)". Midis tij, nga vlera pozitive dhe negative e rezultuar nga "mouseX - 100", ne mund të dimë nëse mouseX është në të djathtë ose në të majtë të coodinate horizontale 100. Ngjashëm me "pmouseX - 100". Prandaj, kur dy pikat në pjesën e përparme dhe të pasme nuk janë në të njëjtën anë, një pozitiv shumëzon një negativ, ai do të marrë një numër të ri negativ. Kështu plotësohet kushti i ekzekutimit.

Sa më sipër është një shprehje e thjeshtuar, e cila ka përdorur me zgjuarsi një algoritëm të caktuar matematikor-Dy negativë të shumohen do të krijojnë një pozitiv. Ju gjithashtu mund ta ndani atë në dy situata për të diskutuar veçmas. Sidoqoftë, është shumë më e komplikuar të shkruash kushtet e gjykimit. Kushtet e gjykimit "nëse ((mouseX = 100) || (mouseX> 100 && pmouseX <= 100))" është ekuivalente me kushtet përcaktuese të kodit burimor.

Hapi 11: Funksionet relative në lidhje me kontrollin audio dhe video

Funksionet e lartpërmendura janë të mjaftueshme për skenarë të përdorimit të përgjithshëm. Nëse doni ta gërmoni thellë, këtu kam mbledhur disa funksione të zakonshme në lidhje me audio dhe video për ju. Ju mund të eksploroni përdorimet e tij sipas kërkesave tuaja.

Për më shumë hyrje, mund t'i referoheni dokumenteve nga faqja zyrtare e internetit.

Audio (https://processing.org/reference/libraries/sound/index.html)

Video (https://processing.org/reference/libraries/video/index.html)

Ky artikull vjen nga stilisti Wenzy.

Hapi 12: Lexime relative:

Udhëzime interesante të programimit për projektuesin-përpunimi i prekjes fillestare

Udhëzime interesante të programimit për projektuesin - Krijoni programin tuaj të parë të përpunimit

Udhëzime interesante të programimit për Dizajnerin-Merrni Fotografinë tuaj (Pjesa e Parë)

Udhëzime interesante të programimit për stilistin-Merrni fotografinë tuaj (Pjesa e Dytë)

Udhëzime interesante për programim për Dizajnuesin e Procesit të Kontrollit të Procesit të Projektuesit

Udhëzime interesante të programimit për Dizajnerin-Kontrolli i Procesit të Programit-Deklarata e Gjendjes (Pjesa e Parë)

Udhëzime interesante të programimit për Projektuesin-Kontrolli i Procesit të Programit-Deklarata e Gjendjes (Pjesa e Dytë)

Udhëzime interesante të programimit për projektuesin-funksionet e personalizuara dhe rekursioni fraktal

Udhëzime interesante të programimit për projektuesin-funksionet e personalizuara dhe rekursioni fraktal

Udhëzime interesante të programimit të përpunimit për projektuesin-Kontrolli i ngjyrave

Hapi 13: Burimi

Ky artikull është nga:

Nëse keni ndonjë pyetje, mund të kontaktoni : [email protected].

Recommended: