Mündəricat:

Dizayner üçün maraqlı İşləmə Proqramlaşdırma Təlimatı-Media Yüklənməsi və Hadisə: 13 Addım
Dizayner üçün maraqlı İşləmə Proqramlaşdırma Təlimatı-Media Yüklənməsi və Hadisə: 13 Addım

Video: Dizayner üçün maraqlı İşləmə Proqramlaşdırma Təlimatı-Media Yüklənməsi və Hadisə: 13 Addım

Video: Dizayner üçün maraqlı İşləmə Proqramlaşdırma Təlimatı-Media Yüklənməsi və Hadisə: 13 Addım
Video: Web Dizayner kimdir? Hansı işi görür? 2024, Iyul
Anonim
Dizayner üçün maraqlı İşləmə Proqramlaşdırma Təlimatı-Media Yüklənməsi və Hadisə
Dizayner üçün maraqlı İşləmə Proqramlaşdırma Təlimatı-Media Yüklənməsi və Hadisə

Emal çoxlu xarici məlumat yükləyə bilər, bunların arasında çox yayılmış üç növ var. Bunlar ayrıca görüntü, audio və videodur.

Bu fəsildə, hadisələrlə birlikdə audio və videonun necə ətraflı yüklənəcəyindən bəhs edəcəyik. Sonda öz musiqi klaviaturanızı və ya musiqi palitrasını yarada bilərsiniz.

Addım 1: Şəkli oxuyun

Başlamazdan əvvəl, görüntü yükləmə üsuluna yenidən baxaq.

Addım 2: Şəkil ilə əlaqəli funksiyalar

Bu funksiyaları istifadə etməzdən əvvəl PImage vasitəsilə bir görüntü obyekti yaratmalıyıq. Sonra hər cür görüntü xüsusiyyətlərini təyin etmək üçün bu funksiyalardan istifadə edə bilərik.

Proqramı işə salmadan əvvəl şəkil mənbələrinizi məlumat faylına saxlamağı unutmayın.

Addım 3: Musiqi Yüklənir, Çal & Dur

Aşağıda sizə rəsmi olaraq musiqi çağırışını təqdim etməyə başlayırıq. Şəkil yükləməyə çox bənzəyir, əvvəlində bir səs obyekti elan etməlisiniz. Aşağıdakı nümunəyə həqiqi qrammatikadan baxa bilərsiniz.

Kod Nümunəsi (10-1):

[cceN_cpp theme = "şəfəq"] idxal emalı.sound.*;

SoundFile səsi;

boş quraşdırma () {

ölçü (640, 360);

fon (255);

səs = yeni SoundFile (bu, "1.mp3");

}

boş çəkmə () {

}

void keyPressed () {

// Səs çalın

əgər (açar == 'p') {

sound.play ();

}

// Səsi dayandır

əgər (açar == 's) {

sound.stop ();

}

} [/cceN_cpp]

Hazırlanması:

İşlənmənin özü heç bir səs kitabxanası daşımır. Bunu özünüz yükləməlisiniz. Kodunuzu yazmadan əvvəl aşağıdakı hazırlıqları etməlisiniz.

Kitabxananı İşlənməyə əlavə edin. Budur ümumi tətbiq. Menyu çubuğundan "Alət"- "Alət əlavə et" seçin və sonra "Kitabxanalar" a keçin. Kitabxananın açar sözlərini axtarış sütununa daxil edin ki, birbaşa yükləyə və quraşdıra biləsiniz.

Bununla birlikdə, bu funksiyanı yerli ölkəmizdə (Çində) istifadə etsək, vebi birbaşa bağlayaraq yükləyə bilmərik. VPN işə salmalıyıq. Başlasaq da, qeyri -sabit şərtlər olacaq. Buna görə bir neçə dəfə sınamaq üçün səbirli olmalısınız. Yükləmə üçün ən əlverişli üsuldur. Quraşdıra bilmirsinizsə, rəsmi saytdan əl ilə yükləməlisiniz. (https://processing.org/reference/libraries/) Manual quraşdırma üsulu çox mürəkkəb olduğu üçün digər fəsildə daha ətraflı müzakirə edəcəyik.

Kod izahı:

Hazırlıq tamamlandıqdan sonra səs kitabxanası düzgün işləyə bilər. Yuxarıdakı kodu başa vurun, RUN düyməsini basın, sonra işləyəcək. Musiqini çalmaq üçün "P" düyməsini, musiqini dayandırmaq üçün "S" düyməsini basın.

Proqram üçün istifadə olunursa, əvvəlcə onu yükləməliyik. Başlanğıcda "import processing.sound.*" Cümləsi əlavə etməliyik. "idxal" sözün əsl mənasında yükləmə mənasını verən açar sözdür. Kitabxananın adını "idxal" ın arxasına əlavə edin, sonra kitabxananı yükləyəcək. Quyruq ümumiyyətlə "*" işarəsini izləyir, buna görə kitabxana ilə əlaqəli bütün dərsləri əl ilə əlavə etmədən proqrama yükləyəcək.

İkinci cümlədə "SoundFile sound;" bir audio obyekt elan etdi. SoundFile PImage -ə bənzəyir.

Funksiya quruluşunda "səs = yeni SoundFile (bu" 1.mp3 ");" bir obyekt yaratmaq və onun oxunma yolunu təyin etmək üçün istifadə olunur. Burada əslində artıq yeni bir anlayış Class istifadə etməyə başlamışıq. Hazırda bunu dərindən müzakirə etmirik. Bunun yalnız sabit bir yazı üsulu olduğunu bilməmiz lazımdır və son parametr musiqi mənbəyinin ünvanını doldurmaq üçündür.

KeyPressed () hadisələri arasında "sound.play ()" və "sound.stop ()" oynatma və dayandırmanın təsiri olaraq nisbətən işləyir. "." ortada səsləndirmə obyektlərinə aid olan oynayan və dayandıran üzv funksiyasını göstərir. Üzv funksiyasını obyektə daxil olan funksiya hesab edə bilərik. Əvvəlcədən təyin olunan bu obyektə aiddir. Daha sonra, birdən çox audio obyekti oynamağımız lazım olduqda, nisbi dəyişən adın arxasına yalnız ".play ()" əlavə etməliyik.

Səs mənbələri eyni eskiz fayl kataloqu altında (pde şəkilçisi ilə) məlumat faylında saxlanılmalıdır. Heç biri yoxdursa, əl ilə yarada bilərsiniz.

Funksiya çəkməyi yazmağı unutmayın. Heç bir qrafik çəkməməyinizə baxmayaraq, uğurla musiqi çalmaq lazımdır.

Yuxarıda göstərilən prosedur olduqca mürəkkəb görünür, ancaq bir neçə cümlə cümlə əlavə etməlisiniz, sonra oyun funksiyasını həyata keçirə bilərsiniz. Çox rahatdır.

Emal mp3, wav, ogg və s. Kimi ümumi səs formatlarını dəstəkləyir.

Addım 4: Musiqi Sürətinə Nəzarət

Aşağıdakı nümunələr çox maraqlı olmağa başlayacaq. İşləmə, musiqi çalma sürətini idarə edə biləcək bəzi funksiyalar təmin etdi. Eyni zamanda, musiqi çalma sürəti ilə tonlar dəyişəcək. Nəzarət etmək üçün siçandan istifadə etdiyimiz zaman çox psixoloji təsir yaradacaq.

Video veb saytı:

Kod Nümunəsi (10-2):

[cceN_cpp theme = "şəfəq"] idxal emalı.sound.*;

SoundFile səsi;

boş quraşdırma () {

ölçü (640, 360);

fon (255);

səs = yeni SoundFile (bu, "1.mp3");

}

boş çəkmə () {

float sürəti = mouseX/(float) eni * 3;

səs sürəti (sürət);

float vol = mouseY/(float) hündürlük * 4;

səs.amp (cild);

}

void keyPressed () {

// Səs çalın

əgər (açar == 'p') {

sound.play ();

}

// Səsi dayandır

if (key == 's) {

sound.stop ();

}

} [/cceN_cpp]

Kod izah edin:

. Rate () funksiyası səs çalma sürətini idarə edir. Mötərizədə olan dəyər, oyun sürətinin sürətli və yavaş olduğunu təyin edir. Dəyər 1 olduqda, oyun sürəti normaldır. 1 -dən yuxarı olduqda sürətləndirin; 1 -dən aşağı olduqda, sonra yavaşlayın.

. Amp () funksiyası səsin həcmini idarə edir. Parantezdəki dəyər həcm dəyərini təyin edir. 1 olduqda səs həcmi normaldır. 1 -dən yuxarı olduqda, həcmi artırın; 1 -dən aşağı olduqda, həcmi azaldın.

Burada yükləniləcək parametrlər olaraq iki yerli dəyişən sürət və vol qurduq. Buna görə siçanın üfüqi koordinatı musiqi tonunu, şaquli koordinat isə musiqi səsini dəyişəcək.

Addım 5: Video Çal və Dur

Qenerasiya zamanı video yükləmə audio yükləməyə bənzəyir. Əvvəlcə video kitabxananı yükləməlisiniz. (https://processing.org/reference/libraries/video/index.html)

Kod Nümunəsi (10-3):

[cceN_cpp theme = "şəfəq"] idxal emalı.video.*;

Film mov;

boş quraşdırma () {

ölçü (640, 360);

fon (0);

mov = yeni Film (bu, "1.mov");

}

void movieEvent (Film filmi) {

mov.read ();

}

boş çəkmə () {

görüntü (mov, 0, 0, 640, 360);

}

void keyPressed () {

əgər (açar == 'p') {

mov.play ();

}

əgər (açar == 's) {

mov.stop ();

}

əgər (açar == 'd') {

mov.pause ();

}

} [/cceN_cpp]

Video ekran görüntüsü:

Kod izah edin:

İlk cümlə "import processing.video.*;" Video kitabxanasını yükləmək üçün istifadə olunur.

İkinci cümlə "Film mov;" video obyektini elan etmək üçün istifadə olunur. Bunların arasında "Film" in funksiyası PImage -ə bənzəyir.

Funksiya quruluşunda "mov = new Movie (this," 1.mov ");" təsiri obyekt yaratmaq və onun oxunma yolunu təyin etməkdir. Son parametr video mənbənin ünvanı ilə doldurulmalıdır.

Quraşdırmanın ardından movieEvent video hadisəni təmsil edir. Video məlumatlarını yeniləmək və oxumaq üçün istifadə olunur. Hadisədəki "mov.read ()" oxumaq deməkdir.

Şəkilləri göstərmək istisna olmaqla, funksiya görüntüsü videonu da göstərə bilər. Video obyektinə dinamik bir şəkil kimi baxa bilərik. Birinci parametr, video obyektinin dəyişən adını doldururuq. İkinci və üçüncü parametrlər, video ilə çəkilmiş üfüqi və şaquli koordinatlardır. Dördüncü və beşinci parametrlər video görüntünün uzunluğunu və genişliyini təyin edir.

. Play () funksiyası oynamaq deməkdir.. Stop () funksiyası dayandırmaq deməkdir və videonu sıfırlayacaq.. Pause () funksiyası fasilə deməkdir.. Play () funksiyası çağrılana qədər davam edəcək cari oyunu dayandıracaq.

Addım 6: Video Sürətinə Nəzarət

Kod Nümunəsi (10-4):

[cceN_cpp theme = "şəfəq"] idxal emalı.video.*;

Film mov;

boş quraşdırma () {

ölçü (640, 360);

fon (0);

mov = yeni Film (bu, "transit.mov");

}

void movieEvent (Film filmi) {

mov.read ();

}

boş çəkmə () {

görüntü (mov, 0, 0, en, hündürlük);

float newSpeed = mouseX/(float) eni * 4;

mov.speed (newSpeed);

}

void keyPressed () {

əgər (açar == 'p') {

mov.play ();

}

əgər (açar == 's) {

mov.stop ();

}

əgər (açar == 'd') {

mov.pause ();

}

}

[/cceN_cpp]

Kod izah edin:

. Speed () funksiyası videonun oxuma sürətini idarə etmək üçün istifadə edilə bilər. Parametr dəyəri 1 olduqda, oyun sürəti normaldır. Dəyər 1 -dən yuxarı olduqda, sürətləndirin; 1 -dən aşağı olduqda, sonra yavaşlayın.

NewSpeed yerli dəyişənini qurduğumuzdan və setSpeed () funksiyasına daxil etdiyimiz üçün siçanın koordinatı videonun oynatma sürətinə birbaşa təsir edəcək.

Video ilə bağlı daha çox nümunəyə gəlincə, kitabxana kitabxanasındakı Kitabxanalara - Videoya müraciət edə bilərsiniz.

Addım 7: Ümumi Hadisələrin İşlənməsi

Əvvəllər yalnız keyPressed () hadisəsini təqdim etmişdik. Klaviatura basıldıqdan sonra işə salınacaq. Aşağıda, sizin üçün İşlənmədə digər ümumi hadisələri təqdim edəcəyik.

Yuxarıdakı hadisələrin istifadəsi keyPressedə bənzəyir. Kod yazmada ardıcıllıqları yoxdur. Başqa sözlə, funksiya quruluşundan əvvəl və ya arxasında hansı hadisəni yerləşdirməyinizdən asılı olmayaraq eyni nəticəni əldə edirsiniz. İcra qaydası yalnız hadisənin tetikleyici vəziyyəti ilə əlaqədardır. Yalnız şərt yerinə yetirildiyi təqdirdə yerinə yetiriləcəkdir. Yuxarıdakı hadisələri başa düşmək çox asandır. Kiçik bir təcrübə etməlisiniz, sonra istifadələrini tez başa düşə bilərsiniz.

Hadisə axını

Hadisələrin icra qaydasını bilmək üçün bir nümunə istifadə edə bilərik.

Kod Nümunəsi (10-5):

[cceN_cpp theme = "şəfəq"] boş quraşdırma () {

frameRate (2);

println (1);

}

boş çəkmə () {

println (2);

}

boş siçan Pressed () {

println (3);

}

boş mouseMoved () {

println (4);

}

void mouseReleased () {

println (5);

}

void keyPressed () {

println (6);

}

void keyReleased () {

println (7);

} [/cceN_cpp]

Kod izah edin:

Funksiya quruluşunda, frameRate () funksiyası proqramın işləmə sürətini saniyədə 2 kadr olaraq təyin etmişdir. Çərçivə sürətinin aşağı salınması, tetiklenen hadisələrin dərhal arxa tərəfə yeni məlumatlar ilə fırçalanması halında konsoldakı çıxışı müşahidə etməyə kömək edə bilər.

Siçanızı hərəkət etdirməyə çalışın, siçanı vurun, siçanı buraxın və çıxış nəticəsini müşahidə edin. Println vasitəsilə hadisənin icra qaydası ilə tanış olun.

Diqqət yetirməyə dəyər olan şey, rəsm çəkmə funksiyalarının çəkilməsi istisna olmaqla digər hadisələrə yazıla bilməz və ya göstərilə bilməz. KeyPressed kimi hadisələr vasitəsilə qrafik komponentlərin gizlənməsini və görüntüsünü idarə etmək istəyiriksə, bool dəyişənini orta olaraq qurmağı düşünə bilərik.

Hadisələr sırayla icra olunacaq. Yalnız cari hadisədəki bütün kodlar tətbiq edildikdən sonra kodu növbəti tədbirdə icra edəcək.

Addım 8: Hərtərəfli bir nümunə-Musiqi Klaviaturası

Yeni başa düşülən hadisələrlə birlikdə proqramımıza yeni qarşılıqlı təsirlər əlavə edə bilərik. Sonra, yalnız bir neçə dəqiqədən sonra asanlıqla musiqi klaviaturasını analoqlaşdıra bilərik.

Video veb saytı:

Kod Nümunəsi (10-6):

[cceN_cpp theme = "şəfəq"] idxal emalı.sound.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

boolean key1, key2, key3, key4, key5;

boş quraşdırma () {

ölçü (640, 360);

fon (255);

noStroke ();

sound1 = yeni SoundFile (bu, "do.wav");

sound2 = yeni SoundFile (bu, "re.wav");

sound3 = yeni SoundFile (bu, "mi.wav");

sound4 = yeni SoundFile (bu, "fa.wav");

sound5 = yeni SoundFile (bu, "so.wav");

}

boş çəkmə () {

fon (255, 214, 79);

rectMode (MƏRKƏZ);

float w = eni * 0.1;

şamandıra h = boy * 0.8;

əgər (açar 1) {

doldurun (255);

} başqa {

doldurun (238, 145, 117);

}

düz (eni/6, hündürlüyü/2, g, saatı);

əgər (açar2) {

doldurun (255);

} başqa {

doldurun (246, 96, 100);

}

düz (eni/6 * 2, hündürlüyü/2, g, h);

əgər (açar3) {

doldurun (255);

} başqa {

doldurun (214, 86, 113);

}

düz (eni/6 * 3, hündürlüyü/2, g, h);

əgər (key4) {

doldurun (255);

} başqa {

doldurun (124, 60, 131);

}

düz (eni/6 * 4, hündürlüyü/2, g, h);

əgər (açar 5) {

doldurun (255);

} başqa {

doldurun (107, 27, 157);

}

düz (eni/6 * 5, hündürlüyü/2, g, h);

}

void keyPressed () {

əgər (açar == 'a') {

sound1.play ();

key1 = doğru;

}

əgər (açar == 's) {

sound2.play ();

key2 = doğru;

}

əgər (açar == 'd') {

sound3.play ();

key3 = doğru;

}

əgər (açar == 'f') {

sound4.play ();

key4 = doğru;

}

əgər (açar == 'g') {

sound5.play ();

key5 = doğru;

}

}

void keyReleased () {

əgər (açar == 'a') {

key1 = yalan;

}

əgər (açar == 's) {

key2 = yalan;

}

əgər (açar == 'd') {

key3 = yalan;

}

əgər (açar == 'f') {

key4 = yalan;

}

əgər (açar == 'g') {

key5 = yalan;

}

} [/cceN_cpp]

Kod izah edin:

Fərqli düymələr işə salındıqda fərqli səsləri səsləndirmək üçün nisbi səs məlumatlarını oxumaq üçün birdən çox səs obyekti yaratmalıyıq.

Burada yeni bir hadisə açarından istifadə edirikReleased (). Bu tədbirin vəzifəsi klaviatura rəngini orijinal rənginə qaytarmaqdır. Açarı buraxdığınız zaman açılacaq.

Başda elan edilən 5 boolean dəyər açarın vəziyyətini aşkar etmək üçün istifadə olunur.

Addım 9: Hərtərəfli bir nümunə-Musiqi Palitrası 1

Klaviatura hadisəsindən başqa, siçan hadisəsi onu çevik şəkildə istifadə etməyimiz yaxşı bir şeydir. Aşağıdakı nümunə, siçanla əlaqəli iki hadisəni istifadə etdiyimiz bir musiqi palitrası yaratmağımız üçündür.

Video veb saytı:

Kod Nümunəsi (10-7):

[cceN_cpp theme = "şəfəq"] idxal emalı.sound.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

boolean süründürməçilik;

boş quraşdırma () {

ölçü (640, 360);

fon (255, 214, 79);

noStroke ();

sound1 = yeni SoundFile (bu, "do.wav");

sound2 = yeni SoundFile (bu, "re.wav");

sound3 = yeni SoundFile (bu, "mi.wav");

sound4 = yeni SoundFile (bu, "fa.wav");

sound5 = yeni SoundFile (bu, "so.wav");

}

boş çəkmə () {

if (isDragging) {

doldurun (107, 27, 157, 100);

ellips (mouseX, mouseY, 16, 16);

}

}

boş siçanDragged () {

isDragging = doğru;

əgər (mouseX> 100 && mouseX <105) {

sound1.play ();

}

əgər (mouseX> 200 && mouseX <205) {

sound2.play ();

}

əgər (mouseX> 300 && mouseX <305) {

sound3.play ();

}

əgər (mouseX> 400 && mouseX <405) {

sound4.play ();

}

əgər (mouseX> 500 && mouseX <505) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = yalan;

} [/cceN_cpp]

Kod izah edin:

Ümid edirik ki, yalnız siçanı basıb sürüklədikdə şəkillər çəkə bilərik. Beləliklə, mövcud vəziyyəti əldə etmək üçün isDragging adlı bir boolean dəyişən qurmalıyıq.

Siçanı sürükləyərkən, isDragging əsl dəyərə çevrilir ki, Draw -da rəsm funksiyaları yerinə yetirilsin. Ekranda izlər buraxacaq. Siçanı buraxdığımızda isDragging yanlış dəyərə çevrilir. Beləliklə, funksiya çəkilişindəki rəsm funksiyaları icra edilməsini dayandıracaq.

Siçan sürükləmə hadisəsində bir neçə tetikleyici şərt hazırladıq. Məsələn, siçanın üfüqi koordinatı 100 və 105 piksel arasında olduqda, musiqi avtomatik olaraq çalınacaq. Bu, ekranın bir neçə görünməz sətir yaratmasını təmin edir. Yalnız siçan müəyyən sahələrdən keçərsə, nisbi musiqini işə salacaq.

Addım 10: Hərtərəfli Nümunə-Musiqi Paleti 2 (Yenilənmiş Versiya)

Yuxarıdakı nümunənin təsiri artıq kifayət qədər yaxşıdır. Ancaq diqqətlə izləsək, bir çox problem tapa bilərik. Məsələn, siçan çox sürətlə hərəkət edərkən, hər dəfə hərəkət edərkən ekranda yuvarlaq bir nöqtə buraxacaq. Uyğun bir düz xətt deyil. Eyni zamanda, bəzi musiqi sızmalarına da səbəb olur. Siçan çox yavaş hərəkət edərkən, üfüqi koordinat 100 və 105 arasında olduqda, çox qısa müddət ərzində bir neçə dəfə musiqi yayımlayacaq ki, bu da ilişib qalmaq hissi verir. Bütün bu problemləri aşağıdakı nümunə ilə həll edə bilərik.

Videoları aşağıdakı linkdən izləyə bilərsiniz:

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

Kod Nümunəsi (10-8):

[cceN_cpp theme = "şəfəq"] idxal emal.sound.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

boolean süründürməçilik;

boş quraşdırma () {

ölçü (640, 360);

fon (255, 214, 79);

noStroke ();

sound1 = yeni SoundFile (bu, "do.wav");

sound2 = yeni SoundFile (bu, "re.wav");

sound3 = yeni SoundFile (bu, "mi.wav");

sound4 = yeni SoundFile (bu, "fa.wav");

sound5 = yeni SoundFile (bu, "so.wav");

}

boş çəkmə () {

if (isDragging) {

vuruş (107, 27, 157, 100);

strokeWeight (10);

xətt (mouseX, mouseY, pmouseX, pmouseY);

}

}

boş siçanDragged () {

isDragging = doğru;

əgər ((mouseX - 100) * (pmouseX - 100) <0) {

sound1.play ();

}

əgər ((mouseX - 200) * (pmouseX - 200) <0) {

sound2.play ();

}

əgər ((mouseX - 300) * (pmouseX - 300) <0) {

sound3.play ();

}

əgər ((mouseX - 400) * (pmouseX - 400) <0) {

sound4.play ();

}

əgər ((mouseX - 500) * (pmouseX - 500) <0) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = yalan;

} [/cceN_cpp]

Kod izah edin:

Burada emal sisteminin özündə daşıyan pmouseX və pmouseY iki dəyişəndən istifadə etdik. Onlar mouseX və mouseY -ə bənzəyirlər, lakin əldə etdikləri son çərçivədəki siçanın koordinatlarıdır.

Funksiya çəkilişində, orijinal ellipse () funksiyasını əvəz etmək üçün funksiya xəttindən () istifadə etdik. Bu, son çərçivənin koordinatını cari çərçivənin koordinatı ilə birbaşa əlaqələndirir. Beləliklə, tutarlı düz xətlər və ya əyrilər çəkə bilərik.

MouseDragged vəziyyətində, yeni bir tetikleyici vəziyyət hazırladıq. Müəyyən bir koordinatın keçib -keçmədiyini bilmək üçün son çərçivənin və cari çərçivənin koordinatlarının eyni tərəfdə olub olmadığını mühakimə etməklə. Nümunə olaraq bu şərti götürün: "if ((mouseX - 100) * (pmouseX - 100) <0)". Bunların arasında, "mouseX - 100" nəticəsində əldə edilən müsbət və mənfi dəyərdən, mouseX -in üfüqi koordinat 100 -ün sağında və ya solunda olub -olmadığını öyrənə bilərik. Eyni şəkildə "pmouseX - 100". Buna görə də, ön və arxadakı iki nöqtə eyni tərəfdə olmadıqda, müsbət bir mənfi ilə çoxalır, yeni bir mənfi ədəd alacaq. Beləliklə, icra şərti təmin edilir.

Yuxarıdakılar müəyyən bir riyazi alqoritmdən ağıllı şəkildə istifadə etmiş sadələşdirilmiş bir ifadədir-İki mənfi çoxalma müsbət yaradacaq. Ayrı -ayrılıqda müzakirə etmək üçün onu iki vəziyyətə bölmək olar. Ancaq mühakimə şərtlərini yazmaq daha çətindir. "Əgər ((mouseX = 100) || (mouseX> 100 && pmouseX <= 100)))" mühakimə şərtləri mənbə kodunun təyin şərtlərinə bərabərdir.

Addım 11: Səs və Video Nəzarəti haqqında Nisbi Funksiyalar

Yuxarıda göstərilən funksiyalar ümumi istifadə ssenariləri üçün kifayətdir. Bunu dərindən öyrənmək istəyirsinizsə, burada sizin üçün audio və video ilə əlaqəli bəzi ümumi funksiyaları topladım. İstifadənizi öz tələblərinizə uyğun olaraq araşdıra bilərsiniz.

Əlavə məlumat üçün rəsmi saytdakı sənədlərə müraciət edə bilərsiniz.

Səs (https://processing.org/reference/libraries/sound/index.html)

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

Bu məqalə dizayner Wenzy -dən gəlir.

Addım 12: Nisbi oxunuşlar:

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-İlkin Toxunuşun İşlənməsi

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı - İlk İşləmə Proqramınızı yaradın

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (Birinci hissə)

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Şəkilinizi Çalışdırın (İkinci hissə)

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı- Proqram Prosesinə Nəzarət- Döngə Bəyanatı

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Proqram Prosesinə Nəzarət-Şərt Bildirişi (Birinci hissə)

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Proqram Prosesinə Nəzarət-Şərt Bildirişi (İkinci hissə)

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Xüsusi Funksiyalar və Fraktal Rekursiya

Dizayner üçün Maraqlı Proqramlaşdırma Təlimatı-Xüsusi Funksiyalar və Fraktal Rekursiya

Dizayner üçün Maraqlı Qenerasiya Proqramlaşdırma Təlimatı-Rəngə Nəzarət

Addım 13: Mənbə

Bu məqalə:

Hər hansı bir sualınız varsa, əlaqə saxlaya bilərsiniz: [email protected].

Tövsiyə: