Мазмуну:

Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Медиа жүктөө жана окуя: 13 кадам
Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Медиа жүктөө жана окуя: 13 кадам

Video: Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Медиа жүктөө жана окуя: 13 кадам

Video: Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Медиа жүктөө жана окуя: 13 кадам
Video: Сиздин мээңиз кандай иштейт👀??? Логикалык суроолор🤪!!! 2024, Ноябрь
Anonim
Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Медиа жүктөө жана окуя
Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Медиа жүктөө жана окуя

Иштетүү көптөгөн тышкы маалыматтарды жүктөөгө болот, алардын арасында абдан кеңири колдонулган үч түрү бар. Алар өзүнчө сүрөт, аудио жана видео.

Бул бөлүмдө, биз окуялар менен айкалыштырып, деталдуу түрдө аудио жана видеону кантип жүктөө жөнүндө сүйлөшөбүз. Акыр -аягы, сиз өзүңүздүн музыкалык клавиатураңызды же музыка палитрасын түзө аласыз.

1 -кадам: Сүрөттү окуу

Баштоодон мурун, келгиле, сүрөттү жүктөө ыкмасын карап көрөлү.

2 -кадам: Сүрөткө байланыштуу функциялар

Бул функцияларды колдонуудан мурун, PImage аркылуу сүрөт объектисин түзүшүбүз керек. Андан кийин биз бул функцияларды ар кандай сүрөттүн касиеттерин аныктоо үчүн колдоно алабыз.

Программаны иштетүүдөн мурун сүрөт булактарыңызды маалымат файлына сактоону унутпаңыз.

3 -кадам: Музыканы жүктөө, ойнотуу жана токтотуу

Төмөндө биз сизге музыканын чакырылышын расмий түрдө тааныштыра баштайбыз. Сүрөттү жүктөөгө абдан окшош, сиз башында аудио объектини жарыялашыңыз керек. Төмөндөгү мисалга чыныгы грамматикадан кайрылсаңыз болот.

Коддун мисалы (10-1):

[cceN_cpp theme = "таң"] импорттоо иштетүү.соо.*;

SoundFile үнү;

жараксыз орнотуу () {

өлчөмү (640, 360);

Фон (255);

үн = жаңы SoundFile (бул, "1.mp3");

}

жараксыз тартуу () {

}

void keyPressed () {

// Үн ойнотуу

if (key == 'p') {

sound.play ();

}

// Үн токтот

if (key == 's') {

sound.stop ();

}

} [/cceN_cpp]

Даярдоо:

Иштетүүнүн өзү эч кандай үн китепканасын камтыбайт. Сиз аны өзүңүз жүктөп алышыңыз керек. Ошентип, кодуңузду жазардан мурун, төмөнкү даярдыктарды көрүңүз.

Китепкананы иштетүүгө кошуу. Бул жерде жалпы практика. Меню тилкесинен "Курал"- "Курал кошуу" үчүн тандап, анан "Китепканаларга" өтүңүз. Китепкананын ачкыч сөздөрүн издөө тилкесине киргизиңиз, аны жүктөп алып, түз орното аласыз.

Бирок, эгерде биз бул функцияны өзүбүздүн өлкөбүздө (Кытайда) колдонсок, аны вебди түз туташтыруу менен жүктөй албайбыз. Биз VPN иштетишибиз керек. Биз баштасак да, туруксуз шарттар болот. Андыктан бир нече жолу аракет кылуу үчүн чыдамдуу болууңуз керек. Бул жүктөөнүн эң ыңгайлуу ыкмасы. Эгерде сиз орното албасаңыз, анда расмий сайттан кол менен жүктөп алышыңыз керек. (https://processing.org/reference/libraries/) Кол менен орнотуу ыкмасы өтө татаал болгондуктан, аны башка бөлүмдө талкуулайбыз.

Code Exaplain:

Добуш берүү аяктагандан кийин үн китепканасы туура иштей алат. Жогорудагы кодду жеңип, RUN дегенди басыңыз, анан ал иштейт. Музыканы ойнотуу үчүн "P" баскычын, музыканы токтотуу үчүн "S" баскычын басыңыз.

Эгерде бул программа үчүн колдонулган болсо, биз аны биринчи жүктөшүбүз керек. Башында биз "импорттоо иштетүү. Үн." Деген сүйлөмдү кошушубуз керек. "импорт" - ачкыч сөз, түзмө -түз жүктөөнү билдирет. Китепкананын атын "импорттоонун" артына кошуңуз, анда китепкана жүктөлөт. Куйругу адатта "*" белгисине ылайык келет, андыктан китепканага тиешелүү бардык класстарды кол менен кошпостон программага жүктөйт.

Экинчи сүйлөмдө, "SoundFile sound;" аудио объект жарыялады. SoundFile PImageге окшош.

Функцияны орнотууда "sound = new SoundFile (this," 1.mp3 ");" объектти түзүү жана анын окуу жолун аныктоо үчүн колдонулат. Бул жерде биз иш жүзүндө жаңы түшүнүк классын колдоно баштадык. Азыр биз аны терең талкуулабайбыз. Биз билишибиз керек, бул туруктуу жазуу ыкмасы жана акыркы параметр музыка булагынын дарегин толтуруу үчүн.

KeyPressed () окуяларынын арасында "sound.play ()" жана "sound.stop ()" ойноо жана токтотуу таасири катары салыштырмалуу иштейт. "." ортосунда ойнотуу жана токтотуу аудио объектилерге таандык болгон мүчө функциясын көрсөтөт. Биз мүчө функциясын объектке кирген функция катары карай алабыз. Ал бул объектке таандык, ал алдын ала аныкталат. Кийинчерээк, бир нече аудио объекттерди ойнотуу керек болгондо, салыштырмалуу өзгөрмөлүү аттын артына ".play ()" кошушубуз керек.

Аудио булактары ошол эле эскиз файлынын каталогу астында маалымат файлында сакталууга тийиш (pde суффикси менен). Эгерде ал жок болсо, аны кол менен түзө аласыз.

Функция чийүүнү жазууну унутпаңыз. Сиз эч кандай графика тартпасаңыз да, музыканы ийгиликтүү ойнотуу керек.

Жогорудагы процедура өтө татаал көрүнөт, бирок сиз бир нече код сүйлөмүн гана кошушуңуз керек, ошондо сиз ойноо функциясын ишке ашыра аласыз. Бул абдан ыңгайлуу.

Иштетүү mp3, wav, ogg ж.б сыяктуу жалпы аудио форматтарын колдойт.

4 -кадам: Музыка ылдамдыгын көзөмөлдөө

Төмөнкү мисалдар абдан кызыктуу боло баштайт. Иштетүү музыканын ойноо ылдамдыгын башкара турган кээ бир функцияларды камсыздады. Ошол эле учурда, обондор музыканын ойноо ылдамдыгына жараша өзгөрөт. Биз көзөмөлдөө үчүн чычканды колдонгондо, бул абдан психикалык таасирди жаратат.

Видео сайты:

Коддун мисалы (10-2):

[cceN_cpp theme = "таң"] импорттоо иштетүү.соо.*;

SoundFile үнү;

жараксыз орнотуу () {

өлчөмү (640, 360);

Фон (255);

үн = жаңы SoundFile (бул, "1.mp3");

}

жараксыз тартуу () {

сүзүү ылдамдыгы = mouseX/(float) туурасы * 3;

үн ылдамдыгы (ылдамдык);

float vol = mouseY/(float) бийиктиги * 4;

sound.amp (vol);

}

void keyPressed () {

// Үн ойнотуу

if (key == 'p') {

sound.play ();

}

// Үн токтот

if (key == 's') {

sound.stop ();

}

} [/cceN_cpp]

Кодду түшүндүрүңүз:

. Rate () функциясы аудионун ойноо ылдамдыгын көзөмөлдөйт. Кашаанын ичиндеги маани ойноо ылдамдыгынын ылдамдыгын жана жайдыгын аныктайт. Мааниси 1 болгондо, ойноо ылдамдыгы нормалдуу. Качан ал 1ден ашса, анда ылдамдатыңыз; ал 1ге чейин, андан кийин басаңдатуу.

. Amp () функциясы аудионун үнүн көзөмөлдөйт. Кашаанын ичиндеги маани көлөмдүн маанисин аныктайт. 1 болгондо, көлөмдүн мааниси нормалдуу болот. Качан ал 1ден ашса, анда көлөмүн көбөйтүңүз; ал 1ге чейин болсо, анда көлөмүн азайтыңыз.

Бул жерде биз жүктөлө турган параметрлер катары ылдамдык менен көлөмдүн эки жергиликтүү өзгөрмөсүн түздүк. Демек, чычкандын горизонталдык координаты музыканын үнүн, ал эми вертикалдуу координаты музыканын үнүн өзгөртөт.

5 -кадам: Видеону ойнотуу жана токтотуу

Кайра иштетүүдө видеону жүктөө аудио жүктөөгө окшош. Алгач видео китепкананы жүктөп алышыңыз керек. (https://processing.org/reference/libraries/video/index.html)

Коддун мисалы (10-3):

[cceN_cpp theme = "таң"] импорттоо иштетүү.видео.*;

Movie Mov;

жараксыз орнотуу () {

өлчөмү (640, 360);

background (0);

mov = жаңы кино (бул, "1.mov");

}

void movieEvent (Movie movie) {

mov.read ();

}

жараксыз тартуу () {

сүрөт (mov, 0, 0, 640, 360);

}

void keyPressed () {

if (key == 'p') {

mov.play ();

}

if (key == 's') {

mov.stop ();

}

if (key == 'd') {

mov.pause ();

}

} [/cceN_cpp]

Видео скриншоту:

Кодду түшүндүрүңүз:

Биринчи сүйлөм "импорттоо иштетүү. Видео.*;" Видео китепкананы жүктөө үчүн колдонулат.

Экинчи сүйлөм "Movie mov;" видео объектини жарыялоо үчүн колдонулат. Анын ичинде "Кинонун" функциясы PImageге окшош.

Функцияны орнотууда "mov = new Movie (this," 1.mov ");" эффектиси объектти түзүү жана анын окуу жолун аныктоо болуп саналат. Акыркы параметр видео булактын дареги менен толтурулушу керек.

Орнотууда, movieEvent видео окуяны билдирет. Бул видео маалыматты жаңыртуу жана окуу үчүн колдонулат. окуяда "mov.read ()" окуу дегенди билдирет.

Сүрөттөрдү көрсөтүүдөн башка, функция сүрөтү видеону да көрсөтө алат. Биз видео объектини динамикалык сүрөт катары карай алабыз. Биринчи параметр, биз видео объектинин өзгөрмө атын толтурабыз. Экинчи жана үчүнчү параметрлер - бул видео менен тартылган горизонталдуу жана вертикалдуу координаттар. Төртүнчү жана бешинчи параметрлер видео дисплейдин узундугун жана туурасын чечет.

. Play () функциясы ойнотууну билдирет.. Stop () функциясы токтотууну билдирет жана ал видеону баштапкы абалга келтирет.. Pause () функциясы паузаны билдирет. Ал учурдагы ойнотууну токтотот, ал.play () функциясы чакырылганга чейин уланат.

6 -кадам: Видео ылдамдыгын көзөмөлдөө

Коддун мисалы (10-4):

[cceN_cpp theme = "таң"] импорттоо иштетүү.видео.*;

Movie Mov;

жараксыз орнотуу () {

өлчөмү (640, 360);

background (0);

mov = жаңы кино (бул, "transit.mov");

}

void movieEvent (Movie movie) {

mov.read ();

}

жараксыз тартуу () {

сүрөт (mov, 0, 0, туурасы, бийиктиги);

float newSpeed = mouseX/(float) туурасы * 4;

mov.speed (newSpeed);

}

void keyPressed () {

if (key == 'p') {

mov.play ();

}

if (key == 's') {

mov.stop ();

}

if (key == 'd') {

mov.pause ();

}

}

[/cceN_cpp]

Кодду түшүндүрүңүз:

Функциясы.speed () видеону ойнотуу ылдамдыгын көзөмөлдөө үчүн колдонулушу мүмкүн. Параметрдин мааниси 1 болгондо, ойноо ылдамдыгы нормалдуу. Качан 1ден ашкан мааниде, анда тездетүү; ал 1ге чейин, андан кийин басаңдатуу.

Биз newSpeed жергиликтүү өзгөрмөсүн куруп, аны setSpeed () функциясына импорттогондуктан, чычкандын координаты видеонун ойноо ылдамдыгына түздөн -түз таасир этет.

Видео жөнүндө көбүрөөк мисалдарга келсек, китепканалардагы видеолорго кайрылсаңыз болот.

7 -кадам: Жалпы окуяларды иштетүү

Буга чейин биз keyPressed () окуясын гана киргизгенбиз. Ал клавиатура басылгандан кийин иштей баштайт. Төмөндө биз сиздер үчүн Процесске башка жалпы окуяларды киргизебиз.

Жогорудагы окуялардын колдонулушу keyPressedге окшош. Алардын код жазууда ырааттуулугу жок. Башкача айтканда, сиз функцияны орнотуунун алдында же артында кайсы окуяны койсоңуз да, сиз ошол эле натыйжаны аласыз. Аткаруу тартиби иш -чаранын өзү баштоочу шартка гана байланыштуу. Шарт аткарылганда гана ал аткарылат. Жогорудагы окуяларды түшүнүү абдан оңой. Сиз жөн гана кичинекей эксперимент жасашыңыз керек, андан кийин алардын колдонулушун тез түшүнө аласыз.

Окуя агымы

Биз мисал менен окуялардын аткарылыш тартибин билсек болот.

Коддун мисалы (10-5):

[cceN_cpp theme = "таң"] жараксыз орнотуу () {

frameRate (2);

println (1);

}

жараксыз тартуу () {

println (2);

}

жараксыз чычкан басылган () {

println (3);

}

жараксыз mouseMoved () {

println (4);

}

void mouseReleased () {

println (5);

}

void keyPressed () {

println (6);

}

void keyReleased () {

println (7);

} [/cceN_cpp]

Кодду түшүндүрүңүз:

Функцияны орнотууда, frameRate () функциясы программанын иштөө ылдамдыгын секундасына 2 кадр кылып койгон. Кадрдын ылдамдыгын төмөндөтүү, консолдогу өндүрүштү байкоого жардам берет, эгерде окуялар артка жаңы маалыматтар менен дароо тазаланса.

Чычканыңызды жылдырууга аракет кылыңыз, чычканды басыңыз, чычканды коё бериңиз жана жыйынтыкты байкаңыз. Println аркылуу окуянын аткарылыш тартиби менен таанышыңыз.

Көңүл бурууга арзырлык нерсе, тартуу функциялары функция тартуудан башка башка окуяларга жазылышы мүмкүн эмес, же көрсөтө албайт. Эгерде биз keyPressed сыяктуу окуялар аркылуу графикалык компоненттердин жашырылышын жана көрсөтүлүшүн көзөмөлдөгүбүз келсе, анда bool өзгөрмөсүн орто катары түзүүнү ойлонушубуз мүмкүн.

Окуялар ирети менен аткарылат. Учурдагы окуядагы бардык коддор аткарылгандан кийин гана, ал кодду кийинки иш -чарада аткарат.

8-кадам: Комплекстүү мисал-Музыка клавиатурасы

Жаңы түшүнүлгөн окуялар менен биригип, биз программабызга жаңы мамилелерди кошо алабыз. Андан кийин, бир нече мүнөттөн кийин, биз музыкалык клавиатураны оңой эле аналог кыла алабыз.

Видео сайты:

Коддун мисалы (10-6):

[cceN_cpp theme = "таң"] импорттоо иштетүү.соо.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

логикалык key1, key2, key3, key4, key5;

жараксыз орнотуу () {

өлчөмү (640, 360);

Фон (255);

noStroke ();

sound1 = жаңы SoundFile (бул, "do.wav");

sound2 = жаңы SoundFile (бул, "re.wav");

sound3 = жаңы SoundFile (бул, "mi.wav");

sound4 = жаңы SoundFile (бул, "fa.wav");

sound5 = жаңы SoundFile (бул, "so.wav");

}

жараксыз тартуу () {

фон (255, 214, 79);

rectMode (ЦЕНТР);

сүзүү w = туурасы * 0.1;

сүзүү h = бийиктиги * 0,8;

if (key1) {

толтуруу (255);

} башка {

толтуруу (238, 145, 117);

}

түз (туурасы/6, бийиктиги/2, ж, ч);

if (key2) {

толтуруу (255);

} башка {

толтуруу (246, 96, 100);

}

түз (туурасы/6 * 2, бийиктиги/2, ж, ч);

if (key3) {

толтуруу (255);

} башка {

толтуруу (214, 86, 113);

}

түз (туурасы/6 * 3, бийиктиги/2, ж, ч);

if (key4) {

толтуруу (255);

} башка {

толтуруу (124, 60, 131);

}

түз (туурасы/6 * 4, бийиктиги/2, ж, ч);

if (key5) {

толтуруу (255);

} башка {

толтуруу (107, 27, 157);

}

түз (туурасы/6 * 5, бийиктиги/2, ж, ч);

}

void keyPressed () {

if (key == 'a') {

sound1.play ();

key1 = true;

}

if (key == 's') {

sound2.play ();

key2 = true;

}

if (key == 'd') {

sound3.play ();

key3 = true;

}

if (key == 'f') {

sound4.play ();

key4 = true;

}

if (key == 'g') {

sound5.play ();

key5 = true;

}

}

void keyReleased () {

if (key == 'a') {

key1 = false;

}

if (key == 's') {

key2 = false;

}

if (key == 'd') {

key3 = false;

}

if (key == 'f') {

key4 = false;

}

if (key == 'g') {

key5 = false;

}

} [/cceN_cpp]

Кодду түшүндүрүңүз:

Биз ар кандай баскычтар иштетилгенде ар кандай үндөрдү ойнотуу үчүн, салыштырмалуу үн маалыматын окуу үчүн бир нече аудио объекттерди түзүшүбүз керек.

Бул жерде биз жаңы окуя keyReleased () колдонобуз. Бул иш -чаранын функциясы - клавиатуранын түсүн баштапкы түсүнө кайтаруу. Ачкычты коё бергенде, ал иштетилет.

Башында жарыяланган 5 логикалык маанилер ачкычтын абалын аныктоо үчүн колдонулат.

9-кадам: Комплекстүү мисал-Музыка палитрасы 1

Баскычтоп окуясынан тышкары, чычкан окуясы - бул ийкемдүү колдонуубуз керек болгон жакшы нерсе. Төмөнкү мисал - биз музыкалык палитра түзүү үчүн, анын ичинде биз чычканга байланыштуу эки окуяны колдондук.

Видео сайты:

Коддун мисалы (10-7):

[cceN_cpp theme = "таң"] импорттоо иштетүү.соо.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

логикалык isDragging;

жараксыз орнотуу () {

өлчөмү (640, 360);

фон (255, 214, 79);

noStroke ();

sound1 = жаңы SoundFile (бул, "do.wav");

sound2 = жаңы SoundFile (бул, "re.wav");

sound3 = жаңы SoundFile (бул, "mi.wav");

sound4 = жаңы SoundFile (бул, "fa.wav");

sound5 = жаңы SoundFile (бул, "so.wav");

}

жараксыз тартуу () {

if (isDragging) {

толтуруу (107, 27, 157, 100);

эллипс (mouseX, mouseY, 16, 16);

}

}

жараксыз mouseDragged () {

isDragging = true;

эгер (mouseX> 100 && mouseX <105) {

sound1.play ();

}

эгер (mouseX> 200 && mouseX <205) {

sound2.play ();

}

эгер (mouseX> 300 && mouseX <305) {

sound3.play ();

}

эгер (mouseX> 400 && mouseX <405) {

sound4.play ();

}

эгер (mouseX> 500 && mouseX <505) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = false;

} [/cceN_cpp]

Кодду түшүндүрүңүз:

Чычканды басканда жана сүйрөгөндө гана биз сүрөттөрдү тарта алабыз деп үмүттөнөбүз. Ошентип, биз учурдагы статусун алуу үчүн isDragging логикалык өзгөрмөсүн түзүшүбүз керек.

Чычканды сүйрөп баратканда, isDragging чыныгы мааниге айланат, андыктан Draw ичиндеги тартуу функциялары аткарылат. Бул экранда из калтырат. Чычканды кое бергенде, isDragging жалган мааниге айланат. Ошентип, Draw Draw функциясынын аткарылышы токтотулат.

Биз чычканды сүйрөө окуясында бир нече шарттарды иштеп чыктык. Мисалы, чычкандын горизонталдык координаты 100 жана 105 пикселдердин арасында болгондо, музыка автоматтык түрдө ойнотулат. Бул экранды бир нече көрүнбөгөн саптарды жаратат. Чычкан белгилүү жерлерден өткөндө гана, ал салыштырмалуу музыканы иштетет.

10-кадам: Комплекстүү мисал-Музыка палитрасы 2 (Жаңыртылган версия)

Жогорудагы мисалдын таасири жетишерлик жакшы. Бирок, эгерде биз аны кунт коюп байкасак, көптөгөн көйгөйлөргө туш болобуз. Мисалы, чычкан өтө ылдам кыймылдаганда, кыймылдаган сайын экранда тегерек чекит калтырат. Бул ырааттуу түз сызык эмес. Ошол эле учурда, кээ бир музыканын агып кетишине себеп болот. Чычкан өтө жай кыймылдап жатканда, горизонталдык координата 100 менен 105тин ортосунда турганда, музыканы кыска убакыттын ичинде бир нече жолу обого чыгарат, бул сизге тыгылып калуу сезимин берет. Бул көйгөйлөрдүн бардыгын биз төмөнкү мисал аркылуу чече алабыз.

Видеолорду төмөнкү шилтемеден көрө аласыз:

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

Коддун мисалы (10-8):

[cceN_cpp theme = "таң"] импорттоо иштетүү.соо.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

логикалык isDragging;

жараксыз орнотуу () {

өлчөмү (640, 360);

фон (255, 214, 79);

noStroke ();

sound1 = жаңы SoundFile (бул, "do.wav");

sound2 = жаңы SoundFile (бул, "re.wav");

sound3 = жаңы SoundFile (бул, "mi.wav");

sound4 = жаңы SoundFile (бул, "fa.wav");

sound5 = жаңы SoundFile (бул, "so.wav");

}

жараксыз тартуу () {

if (isDragging) {

инсульт (107, 27, 157, 100);

strokeWeight (10);

сап (mouseX, mouseY, pmouseX, pmouseY);

}

}

жараксыз mouseDragged () {

isDragging = true;

if ((mouseX - 100) * (pmouseX - 100) <0) {

sound1.play ();

}

if ((mouseX - 200) * (pmouseX - 200) <0) {

sound2.play ();

}

if ((mouseX - 300) * (pmouseX - 300) <0) {

sound3.play ();

}

if ((mouseX - 400) * (pmouseX - 400) <0) {

sound4.play ();

}

if ((mouseX - 500) * (pmouseX - 500) <0) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = false;

} [/cceN_cpp]

Кодду түшүндүрүңүз:

Бул жерде биз иштетүүчү системанын ичинде жүргүзүлгөн pmouseX жана pmouseY эки өзгөрмөсүн колдондук. Алар mouseX жана mouseYге окшош, бирок алар акыркы кадрдагы чычкандын координаты.

Функция тартууда биз эллипс () функциясын алмаштыруу үчүн функционалдык линияны () колдондук. Бул акыркы кадрдын координатын учурдагы кадрдын координаты менен түз байланыштырат. Ошентип, биз ырааттуу түз сызыктарды же ийри сызыктарды тарта алабыз.

Окуя болгон учурда mouseDragged, биз жаңы триггердик шартты иштеп чыктык. Белгилүү бир координат кайчылаш экенин билүү үчүн, акыркы кадр менен учурдагы фреймдин координаты бир тарапта экендигин аныктоо аркылуу. Мисал катары бул шартты алыңыз: "if ((mouseX - 100) * (pmouseX - 100) <0)". Анын ичинен "mouseX - 100" натыйжасында алынган оң жана терс маанилерден, mouseX горизонталдык координаттын 100 же оң жагында экенин биле алабыз. Окшош эле "pmouseX - 100". Демек, алдыңкы жана арткы эки чекит бир жакта болбогондо, оң терске көбөйөт, ал жаңы терс санга ээ болот. Ошентип, аткаруу шарты канааттандырылат.

Жогоруда белгилүү бир математикалык алгоритмди акылдуулук менен колдонгон жөнөкөйлөтүлгөн сөз-Эки негатив көбөйгөндө оң пайда болот. Аны өзүнчө талкуулоо үчүн эки абалга бөлсөңүз болот. Бирок, соттун шарттарын жазуу алда канча татаал. Соттун шарттары "if ((mouseX = 100) || (mouseX> 100 && pmouseX <= 100))" "баштапкы коддун аныктоочу шарттарына барабар.

11 -кадам: Аудио жана видеону көзөмөлдөө тууралуу салыштырмалуу функциялар

Жогоруда айтылган функциялар жалпы сценарийлер үчүн жетиштүү. Эгерде сиз аны терең казгыңыз келсе, бул жерде мен сизге аудио жана видеого байланыштуу кээ бир жалпы функцияларды чогулттум. Сиз өз талаптарына ылайык анын колдонулушун изилдей аласыз.

Көбүрөөк маалымат алуу үчүн, расмий веб -сайттагы документтерге кайрылсаңыз болот.

Аудио (https://processing.org/reference/libraries/sound/index.html)

Видео (https://processing.org/reference/libraries/video/index.html)

Бул макала дизайнер Вензиден келет.

12 -кадам: Салыштырмалуу окуу:

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-алгачкы тийүүнү иштетүү

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү - Биринчи иштетүү программаңызды түзүңүз

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Биринчи бөлүк)

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Сүрөтүңүздү иштетиңиз (Экинчи бөлүк)

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү- Программанын процессин көзөмөлдөө- Цикл жөнүндө билдирүү

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Программа процессин көзөмөлдөө-Шарттын билдирүүсү (Биринчи бөлүк)

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Программа процессин көзөмөлдөө-Шарттын билдирүүсү (Экинчи бөлүк)

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Ыңгайлаштырылган функциялар жана фракталдык рекурсия

Дизайнер үчүн кызыктуу программалоо көрсөтмөсү-Ыңгайлаштырылган функциялар жана фракталдык рекурсия

Дизайнер үчүн кызыктуу иштетүү программалоо көрсөтмөсү-Түстү көзөмөлдөө

13 -кадам: Булак

Бул макала:

Эгерде сизде кандайдыр бир суроолор болсо, төмөнкү дарекке кайрылсаңыз болот: [email protected].

Сунушталууда: