1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:02,980 >> ALTAVOZ 1: Ahora vamos a escribir un programa que interactúa de alguna manera con el ratón. 3 00:00:02,980 --> 00:00:06,150 En particular, vamos a crear instancias o crear una ventana. 4 00:00:06,150 --> 00:00:09,700 Y luego vamos a escuchar, por así decirlo, dentro de esa ventana de clics del ratón. 5 00:00:09,700 --> 00:00:12,940 Y tan pronto como se detecta un clic del ratón, vamos a imprimir con el printf 6 00:00:12,940 --> 00:00:17,830 coordenadas x coma y de ese ratón haga clic, con relación a la ventana. 7 00:00:17,830 --> 00:00:18,880 >> Aquí vamos. 8 00:00:18,880 --> 00:00:24,670 Primero vamos a incluir gevents.h, que es otro archivo de cabecera en el Stanford 9 00:00:24,670 --> 00:00:27,670 biblioteca portátil que se refiere a eventos gráficos. 10 00:00:27,670 --> 00:00:33,480 Supongamos también incluyen gwindow.h, que contiene funciones relacionadas a Windows. 11 00:00:33,480 --> 00:00:37,390 Ahora vamos a declarar principal en la forma habitual. 12 00:00:37,390 --> 00:00:39,680 >> Y ahora vamos a instanciar esa ventana. 13 00:00:39,680 --> 00:00:40,830 Gwindow - 14 00:00:40,830 --> 00:00:42,180 lo llamaremos ventana - 15 00:00:42,180 --> 00:00:44,710 iguales newGwindow. 16 00:00:44,710 --> 00:00:49,150 Y voy a especificar un tanto arbitrariamente un ancho de 320 píxeles y una altura de 17 00:00:49,150 --> 00:00:51,460 240 píxeles. 18 00:00:51,460 --> 00:00:54,380 >> Ahora tenemos que proceder a escuchar para eventos de ratón, por lo que 19 00:00:54,380 --> 00:00:56,020 hablar, dentro de esa ventana. 20 00:00:56,020 --> 00:00:59,450 Ahora, los eventos pueden incluir clics o arrastra o movimientos. 21 00:00:59,450 --> 00:01:01,400 Pero por ahora nos centraremos sólo en los clics. 22 00:01:01,400 --> 00:01:05,740 Voy a inducir intencionalmente un bucle infinito con una construcción, mientras que, 23 00:01:05,740 --> 00:01:08,770 simplemente para que este programa se ejecuta para siempre, o al menos hasta que haga clic en el 24 00:01:08,770 --> 00:01:10,450 X en la esquina superior derecha. 25 00:01:10,450 --> 00:01:13,670 >> Para ello, vamos a hacer mientras que la verdadera. 26 00:01:13,670 --> 00:01:16,900 Y a continuación, en el interior de dicho bucle, lets primer cheque para el 27 00:01:16,900 --> 00:01:18,430 ratón evento de la siguiente manera. 28 00:01:18,430 --> 00:01:21,200 Nos declararemos un GEvent, por así decirlo. 29 00:01:21,200 --> 00:01:22,920 >> Llamaremos al evento variable. 30 00:01:22,920 --> 00:01:27,740 Y vamos a almacenar en la que el valor de GetNextEvent regresar, pasando 31 00:01:27,740 --> 00:01:31,970 en una constante especial, que por convención se escribe en mayúsculas, 32 00:01:31,970 --> 00:01:34,060 llamado mouse_event. 33 00:01:34,060 --> 00:01:36,800 En otras palabras, en algún lugar en este Stanford biblioteca portátil, hay un 34 00:01:36,800 --> 00:01:39,120 constante llamada MOUSE_CLICED. 35 00:01:39,120 --> 00:01:43,040 Y hay una función definida que es llamado GetNextEvent, cuyo propósito en la 36 00:01:43,040 --> 00:01:44,360 la vida es hacer exactamente eso. 37 00:01:44,360 --> 00:01:48,330 Escuche, y luego, cuando se oye uno, devuelve el siguiente evento que es 38 00:01:48,330 --> 00:01:50,500 sido provocada por el ratón del usuario. 39 00:01:50,500 --> 00:01:53,710 >> Ahora vamos a ver si ese evento es nulo. 40 00:01:53,710 --> 00:01:57,400 Porque no es nulo, y que somos nosotros algo realmente oído desde el 41 00:01:57,400 --> 00:02:00,450 el ratón del usuario, vamos a proceder para comprobar ahora qué tipo 42 00:02:00,450 --> 00:02:03,001 de evento que era. 43 00:02:03,001 --> 00:02:09,050 Si getEventType, que pasa un evento como argumento, es igual a los iguales 44 00:02:09,050 --> 00:02:14,070 MOUSE_CLICKED, que pasa a ser un tipo específico de eventos, lo que es justo 45 00:02:14,070 --> 00:02:17,110 otra constante declarada en la Biblioteca portátil de Stanford. 46 00:02:17,110 --> 00:02:21,400 Ahora, como prometió, ahora vamos a imprimir el coordenadas de ese clic del ratón. 47 00:02:21,400 --> 00:02:26,000 Printf "% .0 f. 48 00:02:26,000 --> 00:02:28,340 >> En otras palabras, voy a imprimir un valor de punto flotante. 49 00:02:28,340 --> 00:02:30,240 Pero yo no quiero ver nada después del punto decimal. 50 00:02:30,240 --> 00:02:32,260 Así que voy a especificar 0.0. 51 00:02:32,260 --> 00:02:36,380 Coma, 0,0% f para la coordenada así. 52 00:02:36,380 --> 00:02:38,000 Backslash n Cierre de comillas. 53 00:02:38,000 --> 00:02:41,260 >> Y ahora vamos a la coordenada x de ese evento. 54 00:02:41,260 --> 00:02:43,530 Esa es la coordenada x del clic del ratón. 55 00:02:43,530 --> 00:02:46,990 Y luego vamos a obtener y del evento, que es la coordenada 56 00:02:46,990 --> 00:02:48,170 del clic del ratón. 57 00:02:48,170 --> 00:02:50,920 >> Ahora vamos a guardar, compilar, y ejecutar este programa. 58 00:02:50,920 --> 00:02:54,160 Y cuando lo haga, debe ser el caso que no importa dónde hago clic en 59 00:02:54,160 --> 00:02:58,850 los confines de este 320 por 240 píxeles ventana, debo entonces ver en mi 60 00:02:58,850 --> 00:03:03,570 ventana de la consola los x comas coordenadas de donde hice clic. 61 00:03:03,570 --> 00:03:05,430 Haga clic. 62 00:03:05,430 --> 00:03:07,890 . / Clic. 63 00:03:07,890 --> 00:03:09,630 Y ahí está esa ventana predijimos. 64 00:03:09,630 --> 00:03:14,300 >> Ahora déjame clic aproximadamente en la parte superior esquina a mano izquierda de la ventana. 65 00:03:14,300 --> 00:03:18,150 En mi pantalla de la consola, veo que suceder que hacer clic en la coordenada x de siete 66 00:03:18,150 --> 00:03:19,700 y coordenada y siete. 67 00:03:19,700 --> 00:03:22,840 Ahora vamos a hacer clic más o menos en la parte inferior esquina derecha de la ventana. 68 00:03:22,840 --> 00:03:27,890 Y me parece que han hecho clic en pixel de coordenadas 314, 229. 69 00:03:27,890 --> 00:03:30,330 >> Ahora vamos a hacer la esquina inferior izquierda. 70 00:03:30,330 --> 00:03:32,430 Y veo a 6, 233. 71 00:03:32,430 --> 00:03:35,680 Y la esquina superior derecha, 305, 4. 72 00:03:35,680 --> 00:03:38,810 >> En otras palabras, parece ser el caso que la esquina superior izquierda de 73 00:03:38,810 --> 00:03:40,655 nuestra ventana es 0, 0. 74 00:03:40,655 --> 00:03:46,080 Y de la esquina inferior derecha de mi ventana es de 320, 240. 75 00:03:46,080 --> 00:03:48,990 En otras palabras, yo he visto precisamente esos valores, tuvieron que acabo de 76 00:03:48,990 --> 00:03:52,180 perfectamente alineados mi cursor del ratón en cada una de esas esquinas. 77 00:03:52,180 --> 00:03:54,960 Esto es cierto en general en gráfica de programación, si el uso de la 78 00:03:54,960 --> 00:03:58,860 Biblioteca portátil de Stanford o la mayoría de cualquier sí, por lo que representamos la parte superior 79 00:03:58,860 --> 00:04:03,050 esquina como 0, 0, y la parte inferior esquina derecha como la coma ancho 80 00:04:03,050 --> 00:04:06,810 de altura, con números positivos, incluso aunque es abajo ya la derecha. 81 00:04:06,810 --> 00:04:08,615