Pygame第5章 让画面动起来
这一章描述如何以一种可以预测的方式在屏幕上移动对象,和如何使运动在其他人电脑里面一致。
理解帧率
我们需要知道计算机游戏中关于运动的第一件事情就是没有什么东西真正在移动。电脑屏幕或电视机展示给我们一系列图片,当两张图片间隔时间够短时,我们的大脑将这些图片混合在一起从而制造了流畅运动的假象。一张图片称为一帧,FPS(Frame Per Second)是每秒的帧数,也就是帧率。产生流畅运动需要的帧数,因人而异。
这一章描述如何以一种可以预测的方式在屏幕上移动对象,和如何使运动在其他人电脑里面一致。
我们需要知道计算机游戏中关于运动的第一件事情就是没有什么东西真正在移动。电脑屏幕或电视机展示给我们一系列图片,当两张图片间隔时间够短时,我们的大脑将这些图片混合在一起从而制造了流畅运动的假象。一张图片称为一帧,FPS(Frame Per Second)是每秒的帧数,也就是帧率。产生流畅运动需要的帧数,因人而异。
void get_process_name_by_pid(int pid, char *name)
{
char buf[256] = {0};
char path[256] = {0};
sprintf(buf, "/proc/%d/exe", pid);
readlink(buf, path, sizeof(path));
char *filename = basename(path);
strcpy(name, filename);
}C99标准才有的特性
void test_vla(const char *str)
{
int len = strlen(str);
char a[len + 1];
memset(a, 0, sizeof(a));
strcpy(a, str);
printf("%s\n", a);
}bool besure_path(const char *pathname) {
int len = strlen(pathname);
char buffer[len + 1];
memset(buffer, 0, sizeof(buffer));
strcpy(buffer, pathname);
for (int i = 0; i < len; ++i) {
if (buffer[i] == '/') {
buffer[i] = 0;
if (access(buffer, F_OK) < 0) {
if (mkdir(buffer, 0755) < 0) {
return false;
}
}
buffer[i] = '/';
}
}
return true;
}int count_bit(int n) {
int count = 0;
while (n != 0) {
++count;
n &= n - 1;
}
return count;
}电脑游戏倾向于视觉上很自然,游戏开发者花费很多精力在处理图像和提升视觉效果来创建最令人愉快的体验上。
显示器里的一个独立的点称为一个图像单元或像素。如果一个显示器分辨率为1280x1024,则像素总数为1310720。一个屏幕上像素越多,则图片的质量越好。典型的家用电脑可以显示的颜色数量最高为16.7百万个。如果你想显示每一种颜色,你需要一个分辨率4096x4096的显示器。
Ubuntu下安装Pygame:
sudo apt-get install python-pygame装好后,查看Pygame版本:
>>> import pygame
>>> print pygame.verPygame有很多模块。每一个设备都有一个对应的模块。Pygame模块一览:
主窗口的职责通常是为用户提供高级文件处理动作和展示程序数据。