1 00:00:00,000 --> 00:00:00,320 2 00:00:00,320 --> 00:00:02,520 >> ALTAVEU 1: Ara anem a escriure un programa que implica una finestra, una 3 00:00:02,520 --> 00:00:04,070 cercle, i la meva cursor. 4 00:00:04,070 --> 00:00:07,890 En particular, anem a crear instàncies d'un negre cercle a la pantalla i, a continuació, 5 00:00:07,890 --> 00:00:10,180 anem a entrenar seguir el meu cursor. 6 00:00:10,180 --> 00:00:14,650 Així que si moc el ratolí cap amunt, avall, esquerra o cap a la dreta, el cercle segueix al llarg. 7 00:00:14,650 --> 00:00:20,630 >> Primer anem a incloure gevents.h, de manera que tenim accés als esdeveniments gràfics. 8 00:00:20,630 --> 00:00:25,060 Anem proper inclouen GObjects, perquè tinguem accés a 9 00:00:25,060 --> 00:00:26,480 objectes com cercles - 10 00:00:26,480 --> 00:00:28,890 o més precisament, ovals, com ja veurem. 11 00:00:28,890 --> 00:00:32,560 I després anem a incloure gwindow.h, pel que tenim accés 12 00:00:32,560 --> 00:00:34,090 a una finestra gràfica. 13 00:00:34,090 --> 00:00:36,860 A continuació, anem a declarar principal en la forma habitual. 14 00:00:36,860 --> 00:00:39,460 Void main int. 15 00:00:39,460 --> 00:00:43,090 Ara anem a crear instàncies o crear, una finestra amb GWindow. 16 00:00:43,090 --> 00:00:45,390 I anem a trucar a la finestra variable. 17 00:00:45,390 --> 00:00:47,890 Obté newGWindow. 18 00:00:47,890 --> 00:00:53,380 I vaig a fer alguna cosa arbitràriament la finestra de 320 píxels per 240 píxels. 19 00:00:53,380 --> 00:00:55,280 >> Ara hem de crear una instància aquest cercle. 20 00:00:55,280 --> 00:00:58,160 Bé, resulta que un cercle és un cas especial d'un oval. 21 00:00:58,160 --> 00:01:01,780 El que passa és que l'amplada i l'alçada d'un cercle són iguals. 22 00:01:01,780 --> 00:01:04,599 Així que anem a instanciar un oval com segueix. 23 00:01:04,599 --> 00:01:05,770 GOVAL. 24 00:01:05,770 --> 00:01:07,950 L'anomenarem cercle, però. 25 00:01:07,950 --> 00:01:11,160 I això aconseguirà newGOval. 26 00:01:11,160 --> 00:01:14,340 I anem a especificar que s'iniciarà a la part superior esquerra 27 00:01:14,340 --> 00:01:17,050 cantonada, les coordenades són 0 0 coma. 28 00:01:17,050 --> 00:01:21,360 I l'amplada d'aquest mundial seran de 50 per 50 - 29 00:01:21,360 --> 00:01:23,700 En altres paraules, un cercle. 30 00:01:23,700 --> 00:01:26,090 >> Ara tenim una finestra, tenim un cercle. 31 00:01:26,090 --> 00:01:28,950 Però encara no hem agregat que cercle a la finestra. 32 00:01:28,950 --> 00:01:32,000 Així que hem de fer-ho de manera explícita. 33 00:01:32,000 --> 00:01:34,760 Afegir finestra, cercle. 34 00:01:34,760 --> 00:01:37,540 D'aquesta manera l'addició d'aquest últim a la primera. 35 00:01:37,540 --> 00:01:39,080 >> Ara farem alguna cosa per sempre. 36 00:01:39,080 --> 00:01:42,520 Anem a seure en un bucle infinit, l'escolta d'esdeveniments de ratolí. 37 00:01:42,520 --> 00:01:45,270 Específicament no fa clic, però moviments del ratolí. 38 00:01:45,270 --> 00:01:48,450 I respondre a aquests moviments movent el cercle. 39 00:01:48,450 --> 00:01:49,630 Aquí anem. 40 00:01:49,630 --> 00:01:52,820 Mentre que és cert. 41 00:01:52,820 --> 00:01:56,710 Anem a veure un esdeveniment amb GEvent, cridant esdeveniment. 42 00:01:56,710 --> 00:01:59,580 Obté GetNextEvent. 43 00:01:59,580 --> 00:02:03,460 I anem a tractar específicament per obtenir un esdeveniment de ratolí d'algun tipus. 44 00:02:03,460 --> 00:02:07,250 Anem a continuació, assegureu-vos que l'esdeveniment no és igual a null, pel que hi ha 45 00:02:07,250 --> 00:02:08,650 en realitat una cosa que respondre. 46 00:02:08,650 --> 00:02:11,890 47 00:02:11,890 --> 00:02:19,990 >> I anem a la propera verificació si getEventType, que passa en l'esdeveniment, és igual MOUSE_MOVED, 48 00:02:19,990 --> 00:02:23,180 que és una constant especial, declarat en la Biblioteca portàtil de Stanford, que 49 00:02:23,180 --> 00:02:25,540 significa que el ratolí de fet s'ha mogut. 50 00:02:25,540 --> 00:02:28,830 >> A continuació procedirem a feu el següent. 51 00:02:28,830 --> 00:02:29,580 Declarar una doble. 52 00:02:29,580 --> 00:02:31,050 I ho diré x. 53 00:02:31,050 --> 00:02:35,470 Emmagatzemar Específicament en què el retorn valor getX l'esdeveniment. 54 00:02:35,470 --> 00:02:37,710 En altres paraules, em aconseguir l' coordenada x on el 55 00:02:37,710 --> 00:02:39,320 ratolí es va traslladar a. 56 00:02:39,320 --> 00:02:44,480 Però només per fer la línia del cercle fins exactament part de dalt del cursor, deixa ara 57 00:02:44,480 --> 00:02:49,600 restar de l'amplada de la propi cercle dividit per 2. 58 00:02:49,600 --> 00:02:52,160 En altres paraules, anem a restar fora del seu radi. 59 00:02:52,160 --> 00:02:54,180 >> Anem a fer alguna cosa semblant ara per i. 60 00:02:54,180 --> 00:02:57,840 I aconsegueix obtenir la coordenada d'aquest esdeveniment - 61 00:02:57,840 --> 00:02:59,930 és a dir, el ratolí mogut - 62 00:02:59,930 --> 00:03:03,320 menys getWidth del cercle. 63 00:03:03,320 --> 00:03:06,810 I aquesta vegada ho farem el ple de diàmetre, no el radi. 64 00:03:06,810 --> 00:03:13,650 Finalment, anem a establir la ubicació de la cercle per ser la nova x coma i. 65 00:03:13,650 --> 00:03:17,670 Ara anem a guardar, compilar, i executar aquest programa. 66 00:03:17,670 --> 00:03:19,710 >> Fer cursor. 67 00:03:19,710 --> 00:03:22,550 . / Cursor. 68 00:03:22,550 --> 00:03:25,410 Aquí hi ha el cercle en el part superior esquerra cantonada. 69 00:03:25,410 --> 00:03:29,530 Ara, anem a moure el ratolí sobre aquesta finestra i veure si els pestells cercle 70 00:03:29,530 --> 00:03:32,200 en ell com s'esperava. 71 00:03:32,200 --> 00:03:33,490 I de fet ho fa. 72 00:03:33,490 --> 00:03:38,380 Observi que específicament, el cercle que està a la part superior del meu cursor, 73 00:03:38,380 --> 00:03:42,580 perfectament centrat, a causa de l'matemàtiques vam tenir la participació del seu diàmetre i 74 00:03:42,580 --> 00:03:43,830 el seu radi. 75 00:03:43,830 --> 00:03:45,395