Агуулгын хүснэгт:

Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Хэвлэл мэдээллийн хэрэгслийг ачаалах ба арга хэмжээ: 13 алхам
Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Хэвлэл мэдээллийн хэрэгслийг ачаалах ба арга хэмжээ: 13 алхам

Видео: Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Хэвлэл мэдээллийн хэрэгслийг ачаалах ба арга хэмжээ: 13 алхам

Видео: Зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Хэвлэл мэдээллийн хэрэгслийг ачаалах ба арга хэмжээ: 13 алхам
Видео: Lotus-Born Master: The Algorithm of Karma 2024, Долдугаар сарын
Anonim
Загвар зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Хэвлэл мэдээллийн ачаалал ба үйл явдал
Загвар зохион бүтээгчийн боловсруулж буй програмчлалын сонирхолтой заавар-Хэвлэл мэдээллийн ачаалал ба үйл явдал

Боловсруулалтыг маш олон гадаад өгөгдлийг ачаалах боломжтой бөгөөд үүнд ихэвчлэн ашигладаг гурван төрөл байдаг. Эдгээр нь дүрс, аудио, видео тус тусад нь байдаг.

Энэ бүлэгт бид үйл явдалтай хослуулан аудио болон видеог хэрхэн нарийвчлан ачаалах талаар ярих болно. Эцэст нь та өөрөө хөгжмийн гар эсвэл хөгжмийн палитр үүсгэж болно.

Алхам 1: Зургийг уншина уу

Эхлэхээсээ өмнө зураг ачаалах аргыг эргэн харцгаая.

Алхам 2: Зурагтай холбоотой функцууд

Эдгээр функцийг ашиглахын өмнө бид PImage -ээр дамжуулан зургийн объект үүсгэх хэрэгтэй. Дараа нь бид эдгээр функцийг ашиглан бүх төрлийн зургийн шинж чанарыг тодорхойлох боломжтой болно.

Програмаа ажиллуулахын өмнө зургийн эх сурвалжаа өгөгдлийн файлд хадгалахаа бүү мартаарай.

Алхам 3: Хөгжим ачаалах, тоглуулах, зогсоох

Дараагийн хэсэгт бид хөгжмийн уриалгыг албан ёсоор танилцуулж эхэллээ. Зураг ачаалахтай маш төстэй, та эхлээд аудио объектыг зарлах ёстой. Та бодит дүрмийн талаар доорх жишээнээс лавлаж болно.

Кодын жишээ (10-1):

[cceN_cpp theme = "үүр цайх"] импорт боловсруулах. дуу.*;

SoundFile дуу;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (255);

дуу = шинэ SoundFile (энэ, "1.mp3");

}

хүчингүй сугалаа () {

}

void keyPressed () {

// Дуу тоглуулах

хэрэв (түлхүүр == 'p') {

sound.play ();

}

// Дууг зогсоох

if (key == 's)) {

sound.stop ();

}

} [/cceN_cpp]

Бэлтгэл:

Боловсруулалт нь ямар ч дууны сантай байдаггүй. Та үүнийг өөрөө татаж авах хэрэгтэй. Тиймээс кодоо бичихээсээ өмнө дараах бэлтгэл ажлыг хийсэн нь дээр.

Боловсруулах хэсэгт номын сан нэмэх. Энд нийтлэг практик байдаг. Цэсийн мөрөөс "Хэрэгсэл"- "Хэрэгсэл нэмэх" -ийг сонгоод "Номын сан" руу шилжинэ үү. Номын сангийн түлхүүр үгийг хайлтын баганад оруулаад шууд татаж аваад суулгаарай.

Гэсэн хэдий ч хэрэв бид энэ функцийг дотооддоо (Хятадад) ашигладаг бол вэбийг шууд холбож татаж авах боломжгүй. Бид VPN эхлүүлэх ёстой. Хэдийгээр бид үүнийг эхлүүлсэн ч тогтворгүй нөхцөл байдал бий болно. Тиймээс та хэд хэдэн удаа оролдохын тулд тэвчээртэй байх хэрэгтэй. Энэ бол ачаалах хамгийн тохиромжтой арга юм. Хэрэв та суулгах боломжгүй бол албан ёсны вэбсайтаас гараар татаж авах хэрэгтэй. (https://processing.org/reference/libraries/) Гарын авлагын суурилуулах арга нь маш төвөгтэй тул бид үүнийг бусад бүлэгт цаашид авч үзэх болно.

Код тайлах:

Бэлтгэл ажил дууссаны дараа дууны номын сан зөв ажиллах боломжтой. Дээрх кодыг давж, RUN дээр дарна уу, тэгвэл энэ нь ажиллах болно. Хөгжим тоглохын тулд "P" товчлуурыг дарж, хөгжмийг зогсоохын тулд "S" товчийг дарна уу.

Хэрэв энэ програмд ашиглагдсан бол бид эхлээд үүнийг ачаалах хэрэгтэй. Эхэндээ бид "импортын боловсруулалт. Дуу.*" Гэсэн өгүүлбэр нэмэх ёстой. "Импорт" гэдэг нь түлхүүр үг бөгөөд шууд утгаар нь ачаалах гэсэн утгатай. Номын сангийн нэрийг "импорт" -ын ард нэмбэл номын санг ачаалах болно. Сүүл нь ихэвчлэн "*" гэсэн тэмдэгтэй байдаг тул номын сантай холбоотой бүх ангиудыг гараар нэг нэгээр нь оруулахгүйгээр програмд ачаалах болно.

Хоёрдахь өгүүлбэрт "SoundFile sound;" нь аудио объектыг зарласан. SoundFile нь PImage -тэй төстэй.

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

KeyPressed () үйл явдлуудын дунд "sound.play ()" ба "sound.stop ()" нь тоглох, зогсоох нөлөөтэй харьцангуй ажилладаг. "." Дунд хэсэгт аудио объектод хамаарах тоглуулах, зогсоох функцийг харуулдаг. Гишүүнчлэлийн функцийг объектод багтсан функц гэж үзэж болно. Энэ нь өмнө нь тодорхойлсон энэ объектод хамаарна. Хожим нь бид олон аудио объектыг тоглуулах шаардлагатай бол харьцангуй хувьсагчийн нэрний ард зөвхөн ".play ()" нэмэх шаардлагатай болдог.

Аудио эх сурвалжийг мэдээллийн файлд ижил ноорог файлын каталогийн дор хадгална (pde дагавартай). Хэрэв байхгүй бол та үүнийг гараар үүсгэж болно.

Функцийн сугалаа бичихээ бүү мартаарай. Хэдийгээр та ямар ч график зураагүй байсан ч хөгжим амжилттай тоглох шаардлагатай байна.

Дээрх процедур нь нэлээд төвөгтэй мэт санагдаж байгаа боловч та хэд хэдэн өгүүлбэр нэмэх хэрэгтэй бөгөөд ингэснээр та тоглох функцийг хэрэгжүүлж чадна. Энэ нь маш тохиромжтой.

Боловсруулалт нь mp3, wav, ogg гэх мэт нийтлэг аудио форматыг дэмждэг.

Алхам 4: Хөгжмийн хурдыг хянах

Дараах жишээнүүд маш сонирхолтой болж эхэлнэ. Боловсруулалт нь хөгжим тоглох хурдыг хянах зарим функцээр хангагдсан болно. Үүний зэрэгцээ хөгжим тоглуулах хурдаар аялгуу өөрчлөгдөх болно. Бид хулганыг удирдахдаа энэ нь сэтгэцэд нөлөөлөх болно.

Видео вэбсайт:

Кодын жишээ (10-2):

[cceN_cpp theme = "үүр цайх"] импорт боловсруулах. дуу.*;

SoundFile дуу;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (255);

дуу = шинэ SoundFile (энэ, "1.mp3");

}

хүчингүй сугалаа () {

хөвөх хурд = mouseX/(хөвөх) өргөн * 3;

дууны хурд (хурд);

float vol = mouseY/(хөвөх) өндөр * 4;

дуу.амп (боть);

}

void keyPressed () {

// Дуу тоглуулах

хэрэв (түлхүүр == '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 = "үүр цайх"] импортлох боловсруулалт.видео.*;

Кино кино;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (0);

mov = шинэ кино (энэ, "1.mov");

}

void movieEvent (Кино кино) {

mov.read ();

}

хүчингүй сугалаа () {

зураг (mov, 0, 0, 640, 360);

}

void keyPressed () {

хэрэв (түлхүүр == 'p') {

mov.play ();

}

if (key == 's)) {

mov.stop ();

}

хэрэв (түлхүүр == '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 = "үүр цайх"] импортлох боловсруулалт.видео.*;

Кино кино;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (0);

mov = шинэ кино (энэ, "transit.mov");

}

void movieEvent (Кино кино) {

mov.read ();

}

хүчингүй сугалаа () {

зураг (mov, 0, 0, өргөн, өндөр);

float newSpeed = mouseX/(float) өргөн * 4;

хөдөлгөөний хурд (шинэ хурд);

}

void keyPressed () {

хэрэв (түлхүүр == 'p') {

mov.play ();

}

if (key == 's)) {

mov.stop ();

}

хэрэв (түлхүүр == '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;

boolean key1, key2, key3, key4, key5;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (255);

цус харвалтгүй ();

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;

хэрэв (түлхүүр1) {

дүүргэх (255);

} өөр {

бөглөх (238, 145, 117);

}

шулуун (өргөн/6, өндөр/2, х, цаг);

хэрэв (түлхүүр2) {

дүүргэх (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 () {

хэрэв (түлхүүр == 'a') {

sound1.play ();

түлхүүр1 = үнэн;

}

if (key == 's)) {

sound2.play ();

түлхүүр2 = үнэн;

}

хэрэв (түлхүүр == 'd') {

sound3.play ();

түлхүүр3 = үнэн;

}

хэрэв (түлхүүр == 'f') {

sound4.play ();

key4 = үнэн;

}

хэрэв (түлхүүр == 'g') {

sound5.play ();

key5 = үнэн;

}

}

void keyReleased () {

хэрэв (түлхүүр == 'a') {

key1 = худал;

}

if (key == 's)) {

түлхүүр2 = худал;

}

хэрэв (түлхүүр == 'd') {

түлхүүр3 = худал;

}

хэрэв (түлхүүр == 'f') {

key4 = худал;

}

хэрэв (түлхүүр == 'g') {

key5 = худал;

}

} [/cceN_cpp]

Код тайлбарлах:

Харьцангуй дууны мэдээллийг уншихын тулд бид олон аудио объект үүсгэх хэрэгтэй бөгөөд ингэснээр өөр өөр товчлуурууд асахад өөр өөр дуу авиа тоглуулах болно.

Энд бид шинэ үйл явдлын түлхүүрийг ашигладагReleased (). Энэхүү арга хэмжээний гол үүрэг бол гарны өнгийг анхны өнгө болгон сэргээх явдал юм. Түлхүүрийг суллахад энэ нь идэвхжих болно.

Толгой дээр зарласан 5 логик утгыг түлхүүрийн статусыг илрүүлэхэд ашигладаг.

Алхам 9: Цогц жишээ-Хөгжмийн палитр 1

Гарны үйл явдлаас гадна хулганы үйл явдал бол үүнийг уян хатан ашиглах ёстой сайн зүйл юм. Дараах жишээ бол хөгжмийн палитр үүсгэх явдал бөгөөд үүнд хулганатай холбоотой хоёр үйл явдлыг ашигласан болно.

Видео вэбсайт:

Кодын жишээ (10-7):

[cceN_cpp theme = "үүр цайх"] импорт боловсруулах. дуу.*;

SoundFile sound1, sound2, sound3, sound4, sound5;

boolean isDragging;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (255, 214, 79);

цус харвалтгүй ();

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

}

}

void mouseDragged () {

isDragging = үнэн;

хэрэв (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 = худал;

} [/cceN_cpp]

Код тайлбарлах:

Хулганаа дараад чирж байж л зураг зурна гэж найдаж байна. Тиймээс одоогийн статусыг олж авахын тулд isDragging логик хувьсагчийг бий болгох шаардлагатай байна.

Хулгана чирэх үед isDragging нь жинхэнэ утга болж, Draw дотор зурах функцүүдийг гүйцэтгэх болно. Энэ нь дэлгэц дээр ул мөр үлдээх болно. Бид хулганыг суллахад isDragging нь хуурамч утга болно. Тиймээс функцийн 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;

boolean isDragging;

хүчингүй тохиргоо () {

хэмжээ (640, 360);

дэвсгэр (255, 214, 79);

цус харвалтгүй ();

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

цус харвалт (10);

мөр (mouseX, mouseY, pmouseX, pmouseY);

}

}

void mouseDragged () {

isDragging = үнэн;

хэрэв ((mouseX - 100) * (pmouseX - 100) <0) {

sound1.play ();

}

хэрэв ((mouseX - 200) * (pmouseX - 200) <0) {

sound2.play ();

}

хэрэв ((mouseX - 300) * (pmouseX - 300) <0) {

sound3.play ();

}

хэрэв ((mouseX - 400) * (pmouseX - 400) <0) {

sound4.play ();

}

хэрэв ((mouseX - 500) * (pmouseX - 500) <0) {

sound5.play ();

}

}

void mouseReleased () {

isDragging = худал;

} [/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] хаягаар холбоо барьж болно.

Зөвлөмж болгож буй: