Mundarija:
- 1 -qadam: Rasmni o'qing
- 2 -qadam: Rasm bilan bog'liq funktsiyalar
- 3 -qadam: Musiqani yuklash, ijro etish va to'xtatish
- 4 -qadam: Musiqa tezligini boshqarish
- 5 -qadam: videoni ijro etish va to'xtatish
- 6 -qadam: Video tezligini boshqarish
- 7 -qadam: Umumiy hodisalarni qayta ishlash
- 8-qadam: Keng qamrovli misol-Musiqa klaviaturasi
- 9-qadam: Keng qamrovli misol-Musiqa palitrasi 1
- 10-qadam: Keng qamrovli misol-Musiqa palitrasi 2 (Yangilangan versiya)
- 11 -qadam: Audio va video nazorati haqidagi nisbiy funktsiyalar
- 12 -qadam: Nisbiy o'qishlar:
- 13 -qadam: Manba
Video: Dizayner uchun qiziqarli ishlov berish dasturlash yo'riqnomasi-media yuklanishi va hodisasi: 13 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Qayta ishlash juda ko'p tashqi ma'lumotlarni yuklashi mumkin, ular orasida juda keng tarqalgan uch turi mavjud. Ular alohida tasvir, audio va video.
Bu bobda biz voqealar bilan birgalikda audio va videoni qanday qilib batafsil yuklash haqida gaplashamiz. Oxir -oqibat, siz o'zingiz musiqa klaviaturasini yoki musiqa palitrasini yaratishingiz mumkin.
1 -qadam: Rasmni o'qing
Ishni boshlashdan oldin, tasvirni yuklash usulini ko'rib chiqaylik.
2 -qadam: Rasm bilan bog'liq funktsiyalar
Ushbu funktsiyalarni ishlatishdan oldin biz PImage orqali tasvir ob'ektini yaratishimiz kerak. Keyin biz ushbu funktsiyalar yordamida har xil tasvir xususiyatlarini aniqlashimiz mumkin.
Dasturni ishga tushirishdan oldin rasm manbalarini ma'lumotlar fayliga saqlashni unutmang.
3 -qadam: Musiqani yuklash, ijro etish va to'xtatish
Quyida biz sizga musiqa chaqiruvini rasman tanishtirishni boshlaymiz. Rasm yuklashga juda o'xshash, siz boshida audio ob'ektni e'lon qilishingiz kerak. Siz haqiqiy grammatikani quyidagi misolga murojaat qilishingiz mumkin.
Kod misoli (10-1):
[cceN_cpp theme = "tong"] import ishlov berish.sound.*;
SoundFile ovozi;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (255);
ovoz = yangi SoundFile (bu, "1.mp3");
}
bekor chizish () {
}
void keyPressed () {
// Ovozni tinglash
agar (kalit == 'p') {
sound.play ();
}
// Ovozni to'xtatish
agar (kalit == s)) {
sound.stop ();
}
} [/cceN_cpp]
Tayyorlanishi:
Qayta ishlashning o'zi hech qanday ovozli kutubxonaga ega emas. Siz uni o'zingiz yuklab olishingiz kerak. Shunday qilib, kodingizni yozishdan oldin quyidagi tayyorgarlik ishlarini bajarganingiz ma'qul.
Kutubxonani ishlov berishga qo'shing. Mana, umumiy amaliyot. Menyu satridan "Asbob"- "Asbob qo'shish" -ni tanlang va keyin "Kutubxonalar" ga o'ting. Kutubxonaning kalit so'zlarini qidiruv ustuniga kiriting, shunda siz uni to'g'ridan -to'g'ri yuklab olishingiz va o'rnatishingiz mumkin.
Ammo, agar biz bu funktsiyani o'z mamlakatimizda (Xitoyda) ishlatsak, uni to'g'ridan -to'g'ri tarmoqqa ulab yuklay olmaymiz. Biz VPN -ni ishga tushirishimiz kerak. Biz buni boshlagan bo'lsak ham, beqaror sharoitlar bo'ladi. Shunday qilib, siz bir necha marta sinash uchun sabr -toqatli bo'lishingiz kerak. Bu yuklashning eng qulay usuli. Agar siz o'rnatolmasangiz, uni rasmiy veb -saytdan qo'lda yuklab olishingiz kerak. (https://processing.org/reference/libraries/) Qo'lda o'rnatish usuli juda murakkab bo'lgani uchun biz uni boshqa bobda batafsil muhokama qilamiz.
Kodni tushuntirish:
Ovoz kutubxonasi tayyorgarlik tugagandan so'ng to'g'ri ishlashi mumkin. Yuqoridagi kodni bajaring, RUN tugmasini bosing, keyin u ishlaydi. Musiqani ijro etish uchun "P" tugmachasini, musiqani to'xtatish uchun "S" tugmasini bosing.
Agar u dastur uchun ishlatilgan bo'lsa, avval uni yuklashimiz kerak. Boshida biz "import ishlov berish. Ovoz." Jumlasini qo'shishimiz kerak. "import" - bu kalit so'z bo'lib, tom ma'noda yuklashni bildiradi. "Import" orqasida kutubxona nomini qo'shing, shunda u kutubxonani yuklaydi. Quyruq odatda "*" belgisiga to'g'ri keladi, shuning uchun u kutubxona bilan bog'liq barcha darslarni qo'lda qo'shmasdan qo'shadi.
Ikkinchi jumlada "SoundFile sound;" ovozli ob'ekt deb e'lon qilindi. SoundFile PImage -ga o'xshaydi.
Funktsiyalarni sozlashda "sound = new SoundFile (bu" 1.mp3 ");" ob'ekt yaratish va uning o'qish yo'lini aniqlash uchun ishlatiladi. Bu erda biz allaqachon yangi sinf tushunchasini ishlatishni boshladik. Hozir biz buni chuqur muhokama qilmayapmiz. Biz bilamizki, bu qat'iy yozish usuli va oxirgi parametr musiqa manbasining manzilini to'ldirishdir.
KeyPressed () hodisalari orasida "sound.play ()" va "sound.stop ()" o'yin va to'xtash effekti sifatida nisbatan ishlaydi. "." o'rtada ovozli ob'ektlarga tegishli ijro va to'xtatish funktsiyasi ko'rsatilgan. Biz a'zo funktsiyasini ob'ektga kiritilgan funktsiya deb hisoblashimiz mumkin. Bu oldindan aniqlangan ushbu ob'ektga tegishli. Keyinchalik, biz bir nechta audio moslamalarni ijro etishimiz kerak bo'lganda, nisbiy o'zgaruvchi nomining orqasiga faqat ".play ()" qo'shishimiz kerak bo'ladi.
Ovoz manbalari bir xil eskiz fayllari katalogida (pde qo'shimchasi bilan) ma'lumotlar faylida saqlanishi kerak. Agar yo'q bo'lsa, uni qo'lda yaratishingiz mumkin.
Chizma funksiyasini yozishni unutmang. Siz hech qanday grafik chizmagan bo'lsangiz ham, musiqani muvaffaqiyatli ijro etish kerak.
Yuqoridagi protsedura juda murakkab ko'rinadi, lekin siz faqat bir nechta kodli jumlalarni qo'shishingiz kerak, shunda siz o'yin funktsiyasini amalga oshirishingiz mumkin. Bu juda qulay.
Qayta ishlash mp3, wav, ogg va boshqalar kabi keng tarqalgan audio formatlarni qo'llab -quvvatlaydi.
4 -qadam: Musiqa tezligini boshqarish
Quyidagi misollar juda qiziq bo'la boshlaydi. Qayta ishlash musiqa ijro etish tezligini boshqaradigan ba'zi funktsiyalarni taqdim etdi. Shu bilan birga, ohanglar musiqa ijro etish tezligi bilan o'zgaradi. Agar biz sichqonchani boshqarish uchun ishlatsak, u juda psixologik ta'sir ko'rsatadi.
Video veb -sayti:
Kod misoli (10-2):
[cceN_cpp theme = "tong"] import ishlov berish.sound.*;
SoundFile ovozi;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (255);
ovoz = yangi SoundFile (bu, "1.mp3");
}
bekor chizish () {
float tezligi = mouseX/(float) kengligi * 3;
tovush tezligi (tezlik);
float vol = mouseY/(float) balandligi * 4;
tovush.amp (jild);
}
void keyPressed () {
// Ovozni tinglash
agar (kalit == 'p') {
sound.play ();
}
// Ovozni to'xtatish
agar (kalit == s)) {
sound.stop ();
}
} [/cceN_cpp]
Kodni tushuntiring:
. Rate () funktsiyasi ovozni ijro etish tezligini boshqaradi. Qavs ichidagi qiymat o'yin tezligining tez va sekinligini aniqlaydi. Qiymat 1 bo'lganda, o'yin tezligi normal bo'ladi. Qachonki u 1dan oshsa, tezlashtiring; 1dan past bo'lsa, keyin sekinlashtiring.
. Amp () funktsiyasi ovoz balandligini boshqaradi. Qavs ichidagi qiymat tovush qiymatini aniqlaydi. 1 bo'lganda ovoz balandligi normal bo'ladi. Qachonki u 1dan oshsa, ovoz balandligini oshiring; 1 ostida bo'lsa, ovoz balandligini kamaytiring.
Bu erda biz yuklanishi kerak bo'lgan ikkita mahalliy o'zgaruvchi tezlik va volni yaratdik. Shuning uchun sichqonchaning gorizontal koordinatasi musiqa ohangini, vertikal koordinata esa musiqa tovushini o'zgartiradi.
5 -qadam: videoni ijro etish va to'xtatish
Qayta ishlashda videoni yuklash audio yuklashga o'xshaydi. Avval video kutubxonani yuklab olishingiz kerak. (https://processing.org/reference/libraries/video/index.html)
Kod misoli (10-3):
[cceN_cpp theme = "tong"] import ishlov berish.video.*;
Film filmi;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (0);
mov = yangi film (bu, "1.mov");
}
void movieEvent (Film film) {
mov.read ();
}
bekor chizish () {
tasvir (mov, 0, 0, 640, 360);
}
void keyPressed () {
agar (kalit == 'p') {
mov.play ();
}
agar (kalit == s)) {
mov.stop ();
}
agar (kalit == 'd') {
mov.pause ();
}
} [/cceN_cpp]
Video skrinshot:
Kodni tushuntiring:
Birinchi jumla "import ishlov berish.video.*;" Video kutubxonasini yuklash uchun ishlatiladi.
"Film mov;" ikkinchi jumlasi video ob'ektini e'lon qilish uchun ishlatiladi. Ular orasida "Kino" funksiyasi PImage -ga o'xshaydi.
Funktsiyalarni sozlashda "mov = new Movie (this," 1.mov ");" effekti ob'ektni yaratish va uning o'qish yo'lini aniqlashdir. Oxirgi parametr video manbaning manzili bilan to'ldiriladi.
O'rnatish jarayonida movieEvent video hodisasini aks ettiradi. Bu video ma'lumotlarini yangilash va o'qish uchun ishlatiladi. "mov.read ()" hodisada o'qish degan ma'noni anglatadi.
Tasvirlarni ko'rsatishdan tashqari, funktsional tasvir ham videoni ko'rsatishi mumkin. Biz video ob'ektni dinamik rasm sifatida ko'rishimiz mumkin. Birinchi parametr, biz video ob'ektining o'zgaruvchi nomini to'ldiramiz. Ikkinchi va uchinchi parametrlar - video bilan chizilgan gorizontal va vertikal koordinata. To'rtinchi va beshinchi parametrlar video ko'rsatuvning uzunligi va kengligini belgilaydi.
. Play () funktsiyasi o'ynashni bildiradi.. Stop () funktsiyasi to'xtashni bildiradi va u videoni tiklaydi.. Pause () funktsiyasi pauzani bildiradi. Bu joriy o'yinni to'xtatadi, bu esa.play () funktsiyasi chaqirilmaguncha davom etadi.
6 -qadam: Video tezligini boshqarish
Kod misoli (10-4):
[cceN_cpp theme = "tong"] import ishlov berish.video.*;
Film filmi;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (0);
mov = yangi film (bu, "transit.mov");
}
void movieEvent (Film film) {
mov.read ();
}
bekor chizish () {
tasvir (mov, 0, 0, kenglik, balandlik);
float newSpeed = mouseX/(float) kengligi * 4;
harakat tezligi (newSpeed);
}
void keyPressed () {
agar (kalit == 'p') {
mov.play ();
}
agar (kalit == s)) {
mov.stop ();
}
agar (kalit == 'd') {
mov.pause ();
}
}
[/cceN_cpp]
Kodni tushuntiring:
Videoni ijro etish tezligini boshqarish uchun.speed () funktsiyasidan foydalanish mumkin. Parametr qiymati 1 bo'lsa, o'yin tezligi normal bo'ladi. Qachon qiymat 1dan oshsa, u holda tezlashadi; 1dan past bo'lsa, keyin sekinlashing.
Biz newSpeed mahalliy o'zgaruvchisini qurganimiz va uni setSpeed () funktsiyasiga import qilganimiz uchun sichqonchaning koordinatasi videoni ijro etish tezligiga bevosita ta'sir qiladi.
Video haqida ko'proq misollarga kelsak, kutubxonalar kutubxonasidagi Video -ga murojaat qilishingiz mumkin.
7 -qadam: Umumiy hodisalarni qayta ishlash
Ilgari biz faqat keyPressed () hodisasini joriy qilgan edik. Bu klaviatura bosilgandan keyin ishga tushadi. Quyida biz siz uchun "Processing" bo'limida boshqa keng tarqalgan voqealarni taqdim etamiz.
Yuqoridagi voqealardan foydalanish keyPressedga o'xshaydi. Ularda kod yozishda ketma -ketlik yo'q. Boshqacha qilib aytganda, funktsiyani o'rnatishdan oldin yoki orqasida qaysi hodisani o'tkazganingizdan qat'i nazar, siz bir xil natijaga erishasiz. Ijro tartibi faqat hodisaning tetiklantiruvchi sharti bilan bog'liq. Faqat shart bajarilsa, u bajariladi. Yuqoridagi voqealarni tushunish juda oson. Siz shunchaki kichik tajriba qilishingiz kerak, shunda siz ularning ishlatilishini tezda tushunishingiz mumkin.
Voqealar oqimi
Voqealarning bajarilish tartibini bilish uchun biz misolni ishlatishimiz mumkin.
Kod misoli (10-5):
[cceN_cpp theme = "tong"] sozlamalarni bekor qilish () {
frameRate (2);
println (1);
}
bekor chizish () {
println (2);
}
bo'sh sichqoncha bosilgan () {
println (3);
}
bo'sh mouseMoved () {
println (4);
}
bo'sh sichqonchaReleased () {
println (5);
}
void keyPressed () {
println (6);
}
void keyReleased () {
println (7);
} [/cceN_cpp]
Kodni tushuntiring:
Funktsiyalarni sozlashda, frameRate () funktsiyasi dasturning ishlash tezligini sekundiga 2 kadr qilib o'rnatdi. Kadr tezligini pasaytirish, konsoldagi chiqishni kuzatishimizga yordam beradi, agar tetiklangan hodisalar darhol yangi ma'lumotlarning orqasida bo'lsa.
Sichqonchani harakatlantirishga harakat qiling, sichqonchani bosing, sichqonchani qo'yib yuboring va chiqish natijasini kuzating. Println orqali voqeani bajarish tartibi bilan tanishing.
E'tibor berishga arziydigan narsa shundaki, chizish funktsiyalari funktsiyalarni chizishdan boshqa hodisalarga yozib bo'lmaydi yoki ko'rsatilmaydi. Agar biz keyPressed kabi hodisalar orqali grafik komponentlarning yashirilishini va ko'rsatilishini boshqarishni xohlasak, bool o'zgaruvchisini muhit sifatida yaratishni o'ylab ko'rishimiz mumkin.
Voqealar tartibda amalga oshiriladi. Faqat joriy hodisadagi barcha kodlar bajarilgandan keyingina, u keyingi tadbirda kodni bajaradi.
8-qadam: Keng qamrovli misol-Musiqa klaviaturasi
Yangi tushunilgan voqealar bilan birgalikda biz dasturimizga yangi o'zaro ta'sirlarni qo'shishimiz mumkin. Bir necha daqiqadan so'ng, biz musiqiy klaviaturani osongina taqqoslay olamiz.
Video veb -sayti:
Kod misoli (10-6):
[cceN_cpp theme = "tong"] import ishlov berish.sound.*;
SoundFile tovush1, tovush2, tovush3, ovoz4, ovoz5;
boolean key1, key2, key3, key4, key5;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (255);
noStroke ();
sound1 = yangi SoundFile (bu, "do.wav");
sound2 = yangi SoundFile (bu, "re.wav");
sound3 = yangi SoundFile (bu, "mi.wav");
sound4 = yangi SoundFile (bu, "fa.wav");
sound5 = yangi SoundFile (bu, "so.wav");
}
bekor chizish () {
fon (255, 214, 79);
rectMode (MARKAZI);
suzuvchi w = kenglik * 0,1;
float h = balandlik * 0,8;
agar (kalit 1) {
to'ldirish (255);
} boshqa {
to'ldirish (238, 145, 117);
}
to'g'ri (kenglik/6, balandlik/2, w, h);
agar (key2) {
to'ldirish (255);
} boshqa {
to'ldirish (246, 96, 100);
}
to'g'ri (kenglik/6 * 2, balandlik/2, w, h);
agar (key3) {
to'ldirish (255);
} boshqa {
to'ldirish (214, 86, 113);
}
to'g'ri (kenglik/6 * 3, balandlik/2, w, h);
agar (key4) {
to'ldirish (255);
} boshqa {
to'ldirish (124, 60, 131);
}
to'g'ri (kenglik/6 * 4, balandlik/2, w, h);
agar (kalit 5) {
to'ldirish (255);
} boshqa {
to'ldirish (107, 27, 157);
}
to'g'ri (kenglik/6 * 5, balandlik/2, w, h);
}
void keyPressed () {
agar (kalit == 'a') {
ovoz1.play ();
key1 = rost;
}
agar (kalit == s)) {
sound2.play ();
key2 = rost;
}
agar (kalit == 'd') {
sound3.play ();
key3 = rost;
}
agar (kalit == 'f') {
sound4.play ();
key4 = rost;
}
agar (kalit == 'g') {
sound5.play ();
kalit5 = to'g'ri;
}
}
void keyReleased () {
agar (kalit == 'a') {
key1 = noto'g'ri;
}
agar (kalit == s)) {
key2 = noto'g'ri;
}
agar (kalit == 'd') {
key3 = noto'g'ri;
}
agar (kalit == 'f') {
key4 = noto'g'ri;
}
agar (kalit == 'g') {
kalit5 = noto'g'ri;
}
} [/cceN_cpp]
Kodni tushuntiring:
Nisbatan tovush ma'lumotlarini o'qish uchun biz bir nechta audio moslamalarni yaratishimiz kerak, shunda har xil tugmalar ishga tushganda turli tovushlarni ijro etish mumkin.
Bu erda biz yangi voqea kalitidan foydalanamizReleased (). Ushbu tadbirning vazifasi klaviatura rangini asl rangiga qaytarishdir. Kalit qo'yilganda, u ishga tushadi.
Boshda e'lon qilingan 5 ta mantiqiy qiymat kalit holatini aniqlash uchun ishlatiladi.
9-qadam: Keng qamrovli misol-Musiqa palitrasi 1
Klaviatura hodisasidan tashqari, sichqoncha hodisasi - bu biz uni moslashuvchan ishlatishimiz kerak bo'lgan yaxshi narsa. Quyidagi misol biz uchun musiqa palitrasini yaratishdir, ular orasida sichqoncha bilan bog'liq ikkita hodisadan foydalanganmiz.
Video veb -sayti:
Kod misoli (10-7):
[cceN_cpp theme = "tong"] import ishlov berish.sound.*;
SoundFile tovush1, tovush2, tovush3, ovoz4, ovoz5;
boolean is Dragging;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (255, 214, 79);
noStroke ();
sound1 = yangi SoundFile (bu, "do.wav");
sound2 = yangi SoundFile (bu, "re.wav");
sound3 = yangi SoundFile (bu, "mi.wav");
sound4 = yangi SoundFile (bu, "fa.wav");
sound5 = yangi SoundFile (bu, "so.wav");
}
bekor chizish () {
agar (isDragging) {
to'ldirish (107, 27, 157, 100);
ellips (mouseX, mouseY, 16, 16);
}
}
bo'sh sichqonchaDragged () {
isDragging = rost;
agar (mouseX> 100 && mouseX <105) {
ovoz1.play ();
}
agar (mouseX> 200 && mouseX <205) {
sound2.play ();
}
agar (mouseX> 300 && mouseX <305) {
sound3.play ();
}
agar (mouseX> 400 && mouseX <405) {
sound4.play ();
}
agar (mouseX> 500 && mouseX <505) {
sound5.play ();
}
}
bo'sh sichqonchaReleased () {
isDragging = noto'g'ri;
} [/cceN_cpp]
Kodni tushuntiring:
Umid qilamizki, biz faqat sichqonchani bosib, sudrab borganimizda rasm chizishimiz mumkin. Shunday qilib, biz hozirgi holatni olish uchun isDragging boolean o'zgaruvchisini yaratishimiz kerak.
Sichqonchani sudrab olib borishda isDragging haqiqiy qiymatga aylanadi, shuning uchun Draw ichidagi chizish funktsiyalari bajariladi. Bu ekranda iz qoldiradi. Biz sichqonchani qo'yib yuborganimizda, isDragging noto'g'ri qiymatga aylanadi. Shunday qilib, funktsiya chizishidagi chizish funktsiyalari bajarilishini to'xtatadi.
Biz sichqonchani tortish hodisasida bir nechta tetiklantiruvchi shartlarni ishlab chiqdik. Masalan, sichqonchaning gorizontal koordinatasi 100 va 105 piksel oralig'ida bo'lsa, musiqa avtomatik ravishda ijro etiladi. Shunday qilib, ekran bir nechta ko'rinmas satrlarni yaratadi. Faqat sichqon ma'lum joylardan o'tib ketsa, u nisbiy musiqani ishga soladi.
10-qadam: Keng qamrovli misol-Musiqa palitrasi 2 (Yangilangan versiya)
Yuqoridagi misolning ta'siri allaqachon etarlicha yaxshi. Ammo agar biz diqqat bilan qarasak, ko'p muammolarni topamiz. Masalan, sichqoncha juda tez harakat qilganda, u har harakat qilganda ekranda dumaloq nuqta qoldiradi. Bu izchil to'g'ri chiziq emas. Shu bilan birga, bu musiqa oqimining pasayishiga olib keladi. Sichqoncha juda sekin harakat qilganda, gorizontal koordinata 100 va 105 oralig'ida bo'lsa, u qisqa vaqt ichida musiqani bir necha bor efirga uzatadi. Bu muammolarning hammasini biz quyidagi misol orqali hal qila olamiz.
Videolarni quyidagi havola orqali ko'rishingiz mumkin:
v.qq.com/x/page/w03226o4y4l.html
Kod misoli (10-8):
[cceN_cpp theme = "tong"] import ishlov berish.sound.*;
SoundFile tovush1, tovush2, tovush3, ovoz4, ovoz5;
boolean is Dragging;
bo'sh o'rnatish () {
hajmi (640, 360);
fon (255, 214, 79);
noStroke ();
sound1 = yangi SoundFile (bu, "do.wav");
sound2 = yangi SoundFile (bu, "re.wav");
sound3 = yangi SoundFile (bu, "mi.wav");
sound4 = yangi SoundFile (bu, "fa.wav");
sound5 = yangi SoundFile (bu, "so.wav");
}
bekor chizish () {
agar (isDragging) {
insult (107, 27, 157, 100);
strokeWeight (10);
chiziq (mouseX, mouseY, pmouseX, pmouseY);
}
}
bo'sh sichqonchaDragged () {
isDragging = rost;
agar ((mouseX - 100) * (pmouseX - 100) <0) {
ovoz1.play ();
}
agar ((mouseX - 200) * (pmouseX - 200) <0) {
sound2.play ();
}
agar ((mouseX - 300) * (pmouseX - 300) <0) {
sound3.play ();
}
agar ((mouseX - 400) * (pmouseX - 400) <0) {
sound4.play ();
}
agar ((mouseX - 500) * (pmouseX - 500) <0) {
sound5.play ();
}
}
bo'sh sichqonchaReleased () {
isDragging = noto'g'ri;
} [/cceN_cpp]
Kodni tushuntiring:
Bu erda biz protsessing tizimida o'tkaziladigan pmouseX va pmouseY ikkita o'zgaruvchisini qo'lladik. Ular mouseX va mouseY -ga o'xshaydi, lekin ular oxirgi kadrdagi sichqonchaning koordinatasidir.
Function drawda biz ellipse () funksiyasini almashtirish uchun funktsiya liniyasi () dan foydalanganmiz. Bu oxirgi kadr koordinatasini to'g'ridan -to'g'ri joriy kadr koordinatasi bilan bog'laydi. Shunday qilib, biz izchil to'g'ri chiziqlar yoki egri chiziqlar chizishimiz mumkin.
MausDragged bo'lsa, biz yangi tetiklash shartini ishlab chiqdik. Ma'lum bir koordinataning kesishganligini bilish uchun oxirgi kadr va joriy ramkaning koordinatasi bir tomonda ekanligini aniqlash orqali. Misol sifatida bu shartni oling: "if ((mouseX - 100) * (pmouseX - 100) <0)". "MouseX - 100" natijasida olingan ijobiy va salbiy qiymatdan biz mouseX gorizontal koordinataning 100 o'ng yoki chap tomonida joylashganligini bilishimiz mumkin. Xuddi shunday "pmouseX - 100". Shuning uchun, old va orqa ikkita nuqta bir tomonda bo'lmaganda, ijobiy manfiyni ko'paytiradi, u yangi salbiy sonni oladi. Shunday qilib, ijro sharti bajariladi.
Yuqoridagilar ma'lum bir matematik algoritmdan oqilona foydalangan soddalashtirilgan ibora-Ikkita salbiyni ko'paytirish musbat hosil qiladi. Alohida muhokama qilish uchun siz uni ikkita holatga bo'lishingiz mumkin. Biroq, hukm shartlarini yozish ancha murakkab. "Agar ((mouseX = 100) || (mouseX> 100 && pmouseX <= 100)))" hukm shartlari manba kodini aniqlash shartlariga tengdir.
11 -qadam: Audio va video nazorati haqidagi nisbiy funktsiyalar
Yuqorida aytib o'tilgan funktsiyalar umumiy foydalanish stsenariylari uchun etarli. Agar siz uni chuqur qazishni istasangiz, bu erda men siz uchun audio va videoga tegishli ba'zi umumiy funktsiyalarni to'pladim. Siz o'zingizning talablaringiz bo'yicha uning ishlatilishini o'rganishingiz mumkin.
Qo'shimcha ma'lumot olish uchun siz rasmiy veb -saytdagi hujjatlarga murojaat qilishingiz mumkin.
Ovoz (https://processing.org/reference/libraries/sound/index.html)
Video (https://processing.org/reference/libraries/video/index.html)
Ushbu maqola dizayner Vensidan keladi.
12 -qadam: Nisbiy o'qishlar:
Dizayner uchun qiziqarli dasturiy ko'rsatma-Dastlabki teginishni qayta ishlash
Dizayner uchun qiziqarli dasturiy ko'rsatma - Birinchi ishlov berish dasturini yarating
Dizayner uchun qiziqarli dasturiy ko'rsatma-rasmingizni ishga tushiring (birinchi qism)
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism)
Dizaynerlar uchun qiziqarli dasturlash ko'rsatmalari- dastur jarayonlarini boshqarish- tsikl bayonoti
Dizayner uchun qiziqarli dasturlash ko'rsatmalari-dastur jarayonini boshqarish-shartlar bayonoti (birinchi qism)
Dizayner uchun qiziqarli dasturlash ko'rsatmalari-Dastur jarayonlarini boshqarish-Shartlar bayoni (Ikkinchi qism)
Dizayner uchun qiziqarli dasturiy ko'rsatma-maxsus funktsiyalar va fraktal rekursiya
Dizayner uchun qiziqarli dasturiy ko'rsatma-maxsus funktsiyalar va fraktal rekursiya
Dizayner uchun qiziqarli ishlov berish dasturlash yo'riqnomasi-Rangni boshqarish
13 -qadam: Manba
Bu maqola:
Agar sizda biron bir savol bo'lsa, quyidagi manzilga murojaat qilishingiz mumkin: [email protected].
Tavsiya:
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism): 8 qadam
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Ikkinchi qism): Matematika, ko'pchiligingiz uchun foydasiz bo'lib tuyuladi. Kundalik hayotimizda eng ko'p ishlatiladigan - qo'shish, ayirish, ko'paytirish va bo'lish. Ammo, agar siz dastur yordamida yaratishingiz boshqacha. Qancha ko'p bilsangiz, shunchalik ajoyib natijaga erishasiz
Dizayner uchun qiziqarli ishlov berish dasturlash ko'rsatmasi-Rangni boshqarish: 10 qadam
Dizaynerlar uchun qiziqarli ishlov berish dasturlash yo'riqnomasi-Rangni nazorat qilish: Oldingi boblarda biz rang haqidagi bilimlarni emas, balki shakllantirish uchun kodni qanday ishlatish haqida ko'proq gaplashgan edik. Bu bobda biz bilimning bu tomonini chuqurroq o'rganamiz
Android uchun ishlov berish yordamida virtual virtual haqiqat (TfCD): 7 qadam (rasmlar bilan)
Android uchun protsessor yordamida mobil virtual haqiqat (TfCD): Virtual haqiqat (VR) - bu kelajakdagi mahsulotlar qiziqarli bo'lishi mumkin bo'lgan yangi texnologiyalardan biri. Bu juda ko'p imkoniyatlarga ega va sizga qimmat VR ko'zoynaklari ham kerak emas (Oculus Rift). O'zingizni qilish juda qiyin bo'lib tuyulishi mumkin, lekin asosiysi
Dizayner uchun qiziqarli dasturiy ko'rsatma-Dastur jarayonini boshqarish- Loop bayonoti: 8 qadam
Dizaynerlar uchun qiziqarli dasturlash ko'rsatmalari-Dastur jarayonlarini boshqarish-Loop bayonoti: Dastur jarayonlarini boshqarish-Loop bayonoti Bu bobdan siz muhim va kuchli bilim nuqtasi-Loop bayonoti bilan bog'lanasiz. Ushbu bo'limni o'qishdan oldin, agar siz dasturda 10 000 ta doirani chizmoqchi bo'lsangiz, buni faqat ter yordamida qilishingiz mumkin
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Birinchi qism): 16 qadam
Dizayner uchun qiziqarli dasturiy ko'rsatma-Rasmingizni ishga tushiring (Birinchi qism): Yugur! Yugur! Yugur! Dasturlash unchalik qiyin emas. Asosiy nuqta - ritmingizni topish va uni birma -bir bajarish. Bu bobni o'qishdan oldin, umid qilamanki, siz rasm chizishning asosiy usuli bilan allaqachon tanish bo'lgansiz, yoki boshingiz aylanib, sarosimaga tushib qolasiz