Дејвид MALAN: Да се ​​напише програма вклучувајќи прозорецот и круг со кругот отскокнувајќи се враќа назад и назад надвор од левата и десната рабовите на прозорецот. Да го стори тоа, ајде да го користат Стенфорд Преносни библиотека, и ајде прво вклучуваат gevents.h така што можеме да слуша за движење на глувчето. Ајде тогаш вклучуваат gobjects.h така што ние да се прогласиме за нешта како ovals или кругови, навистина. А потоа нека вклучуваат gwindow.h така што имаме графички прозорец за сè. Ајде да се изјасни главните на вообичаениот начин. И ајде сега се изјасни и показ или создадете прозорецот, GWindow - и ние ќе го наречеме променлива прозорец - добива newGWindow. И ние произволно ќе го направат 320 пиксели од 240 пиксели. Ајде следната показ круг. Но да се показ овој круг, ние треба да се направи малку повеќе работа. Особено, да се пополни во овој круг така што целата работа е црна, а не само на преглед од него. GOval - ние ќе го наречеме круг - добива newGOval. Ќе се стави ова овална на 0, 110, и ние ќе направи овална 20 пиксели широк од 20 пиксели висока - со други зборови, дијаметар од 20 или радиус од 10. Ајде сега поставите бојата на тој круг да биде понуда, unquote "црни". Ајде да сега го поставите тоа да се полнат со впишување вистина. И сега на крај, да додадете кругот да се на прозорецот како што следува, при што вториот се додава на претходното. Ајде сега прогласи двојно. Ние ќе го наречеме брзина. И на некој начин произволно, да речеме на брзината на овој круг ќе биде 2,0, со други зборови, 2 пиксели за секоја единица на време. И сега, ајде намерно предизвикаат бесконечна јамка. Па, како да се направи овој круг отскокнување и назад? Добро, ајде да се претпостави во рамките на овој циклус, кој за секоја единица на време, ние сме случува да се движат во кругот само малку малку врз основа на брзината на 2 пиксели по единица време. Но постојано, ние ќе треба да провери дали кружницата е допирање на десниот раб на екранот или на левата страна раб на екранот, бидејќи ако е така, ние треба да отскокнување, така да се каже. Како да се спроведе Поимот на бие? Па ако одиме на 2 пиксели на право по единица време, да се преувеличува десниот раб, ние едноставно може да се јават дека за да биде негативен 2 пиксели по единица на време, а со тоа негирањето брзината. Така, всушност, потскокнувајќи е релативно јасна. Ајде прво да се преселат на кругот со оваа многу пиксели по x-оската, со овој многу пиксели на y-оската. Со други зборови, ние не сакаме тоа да се се движат по y-оската на сите. Ние само сакаме да отскокнување и назад лево и десно. И ајде сега провериш во рамките на овој циклус, ако x-координатата на кругот плус ширината на кругот е поголема од или еднаква на ширина на прозорецот - со други зборови, ако локацијата кругот на плус ширина на кругот сам по себе е сега минато на работ на прозорецот, ние би подобро обратна нашата брзина - брзина добива негативни брзина, а со тоа нервира позитивен на негативен или негативен на позитивен. Но, што ако кругот се движи од десно кон лево и, според тоа, хитови левиот раб? Со други зборови, ако x-координатата на кругот е сега помалку од или еднакво до 0, ајде да одиме напред и повторно инвертен нашата брзина. Па зошто да не додаде во ширина на кругот овој време, како што го направив пред тоа? Па, имајте на ум дека координатите на објект се дефинирани од страна на неговиот горниот лев агол, не од средината. И така, кога кругот се движи од лево кон десно, ние треба да се провери дали десниот раб на круг има положено десниот раб на прозорецот. Така да дознаам што е тоа, имаме да се добие x-координатата на кругот плус ширина на круг да се движат се од горниот лев агол, ефикасно, до горниот десен агол. Кога кругот се движи од десно кон левата, пак, ние не треба да се мачам со такви Покрај тоа, бидејќи горниот лев агол на кругот е веќе вредноста сите ние ќе добиете од добие Х. Ајде сега да ја движи топката. Ајде сега спаси, состави, и извршите оваа програма, осигурајте се отскокнување,. / отскокнување. И таму имаме програма. Но кругот се движи толку ебам брзо, тоа е речиси невозможно да се види она што е всушност се случува. Значи, ајде доста програмата насилно од кликнување на X во горниот десен агол тука. Ајде сега да се вратиме во изворниот код и бавно работи надолу малку. Со други зборови, во рамките на овој бескраен јамка, а не само и движење и се движат и повторно, реклама nauseum, ајде да лебдеат за само неколку милисекунди пред да продолжите да се движи повторно. Особено, ајде да одиме на дното на бесконечна јамка тука и едноставно пауза за, да речеме, 10 милисекунди на секоја итерација. Ајде сега повторно компајлирајте и прегласување отскокнување. И сега гледаме многу повеќе разумна имплементација, каде што може да се види кругот навистина бие на лево и десно раб.