1 00:00:00,000 --> 00:00:00,260 2 00:00:00,260 --> 00:00:02,980 >> 扬声器1:现在,让我们写一个程序 不知怎的,我的鼠标交互。 3 00:00:02,980 --> 00:00:06,150 尤其是,让我们实例化, 或创建一个窗口。 4 00:00:06,150 --> 00:00:09,700 然后让我们来听听,可以这么说, 在该窗口的鼠标点击。 5 00:00:09,700 --> 00:00:12,940 而一旦我们检测到鼠标点击, 让我们用printf的打印 6 00:00:12,940 --> 00:00:17,830 坐标是鼠标x逗号Ÿ 点击,相对于窗口。 7 00:00:17,830 --> 00:00:18,880 >> 在这里,我们走了。 8 00:00:18,880 --> 00:00:24,670 让我们首先包括gevents.h,这是 在斯坦福大学的另一头文件 9 00:00:24,670 --> 00:00:27,670 这涉及便携库 以图形化的事件。 10 00:00:27,670 --> 00:00:33,480 让我们也包括gwindow.h,这 包含与Windows的功能。 11 00:00:33,480 --> 00:00:37,390 现在让我们来宣告主 在通常的方式。 12 00:00:37,390 --> 00:00:39,680 >> 而且,我们现在实例化该窗口。 13 00:00:39,680 --> 00:00:40,830 Gwindow - 14 00:00:40,830 --> 00:00:42,180 我们会打电话给它的窗口 - 15 00:00:42,180 --> 00:00:44,710 等于newGwindow。 16 00:00:44,710 --> 00:00:49,150 我会指定有点任意一个 宽度为320像素和的高度 17 00:00:49,150 --> 00:00:51,460 240像素。 18 00:00:51,460 --> 00:00:54,380 >> 现在,我们需要继续听 对于鼠标事件,所以要 19 00:00:54,380 --> 00:00:56,020 该窗口内的话语,。 20 00:00:56,020 --> 00:00:59,450 现在事件可以包括点击 或拖动或移动。 21 00:00:59,450 --> 00:01:01,400 但现在我们将集中 只有在点击。 22 00:01:01,400 --> 00:01:05,740 我要故意诱导 无限循环用whil​​e结构, 23 00:01:05,740 --> 00:01:08,770 只是让这个程序运行 永远的,或至少直到我点击 24 00:01:08,770 --> 00:01:10,450 中的X右上角的角落。 25 00:01:10,450 --> 00:01:13,670 >> 要做到这一点,让我们做的,而真实的。 26 00:01:13,670 --> 00:01:16,900 然后该循环内, 让首次检查 27 00:01:16,900 --> 00:01:18,430 鼠标事件,如下所示。 28 00:01:18,430 --> 00:01:21,200 我们将宣布GEVENT,可以这么说。 29 00:01:21,200 --> 00:01:22,920 >> 我们会打电话给该变量的事件。 30 00:01:22,920 --> 00:01:27,740 而我们将要存储在该 返回getNextEvent的价值,传递 31 00:01:27,740 --> 00:01:31,970 在一个特殊的恒定的,它通过 惯例是用全部大写, 32 00:01:31,970 --> 00:01:34,060 所谓MOUSE_EVENT。 33 00:01:34,060 --> 00:01:36,800 换句话说,在某处这 斯坦福便携图书馆,有一个 34 00:01:36,800 --> 00:01:39,120 常数,称为MOUSE_CLICED。 35 00:01:39,120 --> 00:01:43,040 并没有定义,这是一个函数 所谓getNextEvent,其目的在 36 00:01:43,040 --> 00:01:44,360 生活就是这样做。 37 00:01:44,360 --> 00:01:48,330 倾听,然后当它听到之一, 返回下一个活动,其 38 00:01:48,330 --> 00:01:50,500 被触发由用户的鼠标。 39 00:01:50,500 --> 00:01:53,710 >> 现在,让我们检查是否 该事件为null。 40 00:01:53,710 --> 00:01:57,400 因为它不是空的,就是我们 从实际听到的东西 41 00:01:57,400 --> 00:02:00,450 用户的鼠标,我们将继续进行 现在检查什么类型 42 00:02:00,450 --> 00:02:03,001 事件是。 43 00:02:03,001 --> 00:02:09,050 如果getEventType,传递一个事件 作为参数,等于等于 44 00:02:09,050 --> 00:02:14,070 MOUSE_CLICKED,这恰好是一个 事件,这仅仅是特定类型的 45 00:02:14,070 --> 00:02:17,110 在声明的另一个常量 斯坦福便携库。 46 00:02:17,110 --> 00:02:21,400 现在,作为承诺的,现在让我们打印出来的 坐标的鼠标点击。 47 00:02:21,400 --> 00:02:26,000 printf的“%.0 f。 48 00:02:26,000 --> 00:02:28,340 >> 换句话说,我要打印 出一个浮点值。 49 00:02:28,340 --> 00:02:30,240 但我不希望看到任何东西 小数点后。 50 00:02:30,240 --> 00:02:32,260 所以我会指定.0。 51 00:02:32,260 --> 00:02:36,380 逗号,%.0 f表示y坐标 为好。 52 00:02:36,380 --> 00:02:38,000 反斜线N分别闭合引号。 53 00:02:38,000 --> 00:02:41,260 >> 现在,让我们的x坐标 该事。 54 00:02:41,260 --> 00:02:43,530 即x坐标 鼠标点击。 55 00:02:43,530 --> 00:02:46,990 然后让我们事件的Y, 这是y坐标 56 00:02:46,990 --> 00:02:48,170 鼠标点击。 57 00:02:48,170 --> 00:02:50,920 >> 现在,让我们保存,编译, 并运行此程序。 58 00:02:50,920 --> 00:02:54,160 当我这样做,它应该是这样的 无论在哪里我点击内 59 00:02:54,160 --> 00:02:58,850 这个320×240像素的范围 窗口,我应该再上看到我 60 00:02:58,850 --> 00:03:03,570 控制台窗口的X逗号y坐标 在那里我点击。 61 00:03:03,570 --> 00:03:05,430 使点击。 62 00:03:05,430 --> 00:03:07,890 。/点击。 63 00:03:07,890 --> 00:03:09,630 还有的,我们预测该窗口。 64 00:03:09,630 --> 00:03:14,300 >> 现在让我一下大致顶部 左手角落的窗口。 65 00:03:14,300 --> 00:03:18,150 在我的控制台屏幕上,我看到我 碰巧点击x坐标7 66 00:03:18,150 --> 00:03:19,700 和y坐标7。 67 00:03:19,700 --> 00:03:22,840 现在,让我们按一下大致的底部 右上角的窗口。 68 00:03:22,840 --> 00:03:27,890 而我似乎已经点击了 像素坐标314,229。 69 00:03:27,890 --> 00:03:30,330 >> 现在,让我们做的左下角。 70 00:03:30,330 --> 00:03:32,430 我看到6,233。 71 00:03:32,430 --> 00:03:35,680 和右上角,305,4。 72 00:03:35,680 --> 00:03:38,810 >> 换句话说,似乎是这种情况 该顶部左上角 73 00:03:38,810 --> 00:03:40,655 我们的窗口是0,0。 74 00:03:40,655 --> 00:03:46,080 和右下角的角落 我的窗户是320,240。 75 00:03:46,080 --> 00:03:48,990 换句话说,我会看到 正是这些价值观,原来我只是 76 00:03:48,990 --> 00:03:52,180 完全对齐我的鼠标光标 在每个那些角落。 77 00:03:52,180 --> 00:03:54,960 这是真实的,一般在图形 编程,是否使用 78 00:03:54,960 --> 00:03:58,860 斯坦福便携库或任何最 其他的,据此,我们所代表的顶级 79 00:03:58,860 --> 00:04:03,050 转角为0,0,并且底 右上角的宽度逗号 80 00:04:03,050 --> 00:04:06,810 高度,用正数,甚至 虽然它的向下和向右移动。 81 00:04:06,810 --> 00:04:08,615