Tip:
Highlight text to annotate it
X
>> ДАВИД Малан: Хајде да напишете програм укључује прозор и круг са
поскакивање круг и назад искључите лево и десно
Ивице тог прозора.
Да бисте то урадили, хајде да користимо Станфорд Преносни библиотека, а да прво пустите
укључују гевентс.х тако да можемо слушајте покретима миша.
Хајде да онда укључују гобјецтс.х тако да можемо прогласити ствари попут овала или
кругови, стварно.
А онда ћемо укључити гвиндов.х тако да имамо графички прозор за
све.
>> Хајде да прогласи главни на уобичајен начин.
И хајде сада прогласити и инстанцирању или створити тај прозор, ГВиндов -
и ми ћемо позвати променљиву прозор -
добија невГВиндов.
И ми ћемо то учинити произвољно 320 пиксела по 240 пиксела.
>> Хајде да следећи инстанцирању круг.
Али да инстанцирању овај круг, морамо да урадимо нешто више посла.
Конкретно, хајде да попуните овај круг тако да цела ствар је
црна и не само скицира његов.
ГОвал -
ми ћемо га назвати круг -
добија невГОвал.
Ставићемо ово овал на 0, 110, и ми ћемо направити овалне 20 пиксела ширине
20 пиксела висока - другим речима, пречник од 20 или радијус од 10.
>> Хајде да сада подесите боју тог круга да буде цитат, завршен цитат, "црно." Хајде да
сада је постављен да буде испуњен наводећи тачно.
И сада на крају, додајмо круг у прозор као што следи, при чему
касније се додаје бившег.
>> Хајде да сада прогласити двоструки.
Ми ћемо га звати брзина.
И нешто произвољно, рецимо брзина овог круга биће
2.0, другим речима, 2 пиксела за сваку јединицу времена.
И сад је нека намерно индукују бесконачну петљу.
>> Дакле, како да овај круг одскок напред и назад?
Па хајде да претпоставимо да у оквиру ове петље за сваку јединицу времена, ми смо
прећи у круг само мало бит на основу његове брзине од 2 пиксела
по јединици времена.
Али стално, ми ћемо морати да проверите да ли је круг додирује
десна ивица екрана или лево ивице екрана, јер ако је тако, ми
треба га на одскок, да тако кажем.
>> Како да спроведе појам поскакивање?
Па ако идемо на 2 пиксела на Право по јединици времена, да одбијају
десна ивица, можемо једноставно да преокрене да је то негативна 2 пиксела по јединици
времена, чиме негира брзина.
Дакле, у ствари, Боунцинг је релативно једноставно.
>> Хајде да прво померите круг од оволико пиксела по к-оси, по овом
многи пиксела дуж и-осе.
Другим речима, ми не желимо да се крећу дуж и-осе уопште.
Ми само желимо да се опораве и даље лево и десно.
>> И хајде да сада проверим у овој петљи, ако к координата круга плус
ширина круга је већа од или једнака
ширина прозора -
Другим речима, ако је локација у кругу плус ширина круга
Сама сада је прошлост ивици прозора, бисмо
боље реверсе нашу брзину -
брзина добија негативан брзину, чиме превртања позитиван на
негативан или негативан на позитиван.
Али шта ако круг креће од десна на лево, а то због тога удари
лева ивица?
Другим речима, ако к координата круг је сада мања или једнака
на 0, идемо напред и поново Обратно нашу брзину.
>> Па зашто сам није додао у ширина круга ове
време, као што сам раније урадио?
Па, имајте на уму да су координате неког објекта дефинисани
по његовом горњем левом углу, не по својој средини.
И тако, када круг креће од лева на десно, морамо да проверите
да ли право ивица круг је прошло
десна ивица прозора.
Дакле, да схватим шта је то, имамо да се к координата круга
плус ширина круга да се креће сами од горњем левом
угао, ефикасно, да горњи десни угао.
Када круг се креће од права на лево, у међувремену, ми не треба да се
гњавити са таквим тога, јер горњем левом углу круга је
Већ вредност ми ћемо добити од гет к.
>> Идемо сада померите лопту.
Хајде да сада спасити, компајлирати, и покренути овај Програм, направите одскок, одскок. /.
И ту имамо програм.
>> Али круг се креће тако проклето брзо, то је скоро немогуће видети шта је
заправо дешава.
Па нека је сасвим програм насилно по кликом на Кс у горњем десном руке
угао овде.
Хајде сада да се вратимо у изворном коду и успоримо мало.
>> Другим речима, у овом бескрајном петља, него само и потез и
потез и опет, оглас наусеум, хајде да развлачити за само неколико милисекунди
пре него што наставите да се поново креће.
Конкретно, идемо до дна бесконачне петље овде и једноставно
пауза за, рецимо, 10 милисекунди на свакој итерацији.
Хајде да сада компајлирате и поново покренути одскок.
А сада видимо много више разуман имплементација, где можемо видети
круг заиста поскакивање на лево и десно ивица.