白块c语言编译
只是禅模式的,如果是学习用的,知道一个模式的应该其他也会了,如果是想玩的话下正版吧= =
#include "SDL2/SDL.h"
#include "SDL2/SDL_ttf.h"
#include<string.h>
// 使用的头文件
int W; // 窗口宽
int H; // 窗口高
int PH; // 游戏区的高
int i, df = 0; // 定义的变量
char sorry[] = "游戏不适合你的手机", win[9] = "You win!", lose[10] =
"You lose", str[19] = "得分:";
Uint32 began = 0;
float time = 0.0; // 定义的计时变量
bool quit = false; // 退出标志
float X = 0, Y = 0; // 用于获取触控位置的坐标
SDL_Event event;
// 定义一个事件
SDL_Window *w = NULL; // 创建一个窗口指针
SDL_Renderer *ren = NULL; // 创建一个渲染器指针
SDL_Surface *sur = NULL; // 表面
SDL_Surface *sur1 = NULL; // 得分表面
SDL_Surface *text = NULL; // 标题文本区表面
SDL_Texture *tex = NULL; // 画刷
SDL_Texture *tex1 = NULL; // 画刷
SDL_Texture *tex2 = NULL; // 画刷
TTF_Font *font = NULL; // 定义一个字体
SDL_Color color, fontcolor; // 定义字体颜色
SDL_Rect rect[4]; // 屏幕出现的四个黑块
SDL_Rect title; // 标题区
SDL_Rect pp, over;
void change(); // 使方块动起来
void init(); // 启动sdl及相关
void draw(); // 画图
void start(); // 初始化相关数据
void end(); // 游戏结尾
int main(int argc, char **argv)
{ // 主函数
init();
start();
began = SDL_GetTicks(); // 得到开始时间
while (quit == false)
{
draw(); // 画图
while (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_FINGERDOWN:
X = event.tfinger.x * W;
Y = event.tfinger.y * H;
// 获取x,y的坐标
if (Y > rect[0].y)
if ((X > rect[0].x) && (X < (W / 4 + rect[0].x))) // 判断坐标
{
change();
df = df + 1;
}
else // 如果触屏位置不对
{
quit = true;
if (df < 3)
sur1 = TTF_RenderUTF8_Blended(font, sorry, color);
else
sur1 = TTF_RenderUTF8_Blended(font, lose, color);
}
break;
case SDL_FINGERUP:
break;
default:;
}
if (df > 100) // 如果在30秒内得分超过100
{
quit = true;
sur1 = TTF_RenderUTF8_Blended(font, win, color);
}
}
time = 30 - ((SDL_GetTicks() - began) / 1000); // 计算剩余时间
if (time == 0.0) // 当时间结束
{
quit = true;
sprintf(str, "时间到,得分:%d", df);
sur1 = TTF_RenderUTF8_Blended(font, str, color);
}
}
tex1 = SDL_CreateTextureFromSurface(ren, sur1); // 把表面转换成画刷
SDL_RenderCopy(ren, tex1, NULL, &over);
SDL_RenderPresent(ren);
SDL_Delay(3000); // 暂停3秒
end();
return 0;
}
void change()
{
for (int i = 0; i < 3; i++)
rect[i].x = rect[i + 1].x;
rect[3].x = (random() % 4) * W / 4; // 最上层产生随机的黑块
}
void init()
{
SDL_Init(SDL_INIT_EVERYTHING);
w = SDL_CreateWindow("别踩白块儿", 0, 0, W, H, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_BORDERLESS); // 配置窗口参数并创建
//
//
ren = SDL_CreateRenderer(w, -1, SDL_RENDERER_PRESENTVSYNC); // 为创建的窗口配置渲染器
TTF_Init(); // 启动font
font = TTF_OpenFont("/system/fonts/DroidSansFallback.ttf", 60); // 打开系统自带字体并设置大小为60
}
void draw()
{
sur = SDL_CreateRGBSurface(0, W, H, 32, 0, 0, 0, 0); // 先把表面刷白
SDL_FillRect(sur, NULL, 0xffffff);
for (int i = 0; i < 4; i++)
SDL_FillRect(sur, &rect[i], 0x00000); // 再把黑块逐个贴上表面
tex = SDL_CreateTextureFromSurface(ren, sur); // 把表面转换成画刷*/
sprintf(str, "得分:%d", df);
sur1 = TTF_RenderUTF8_Blended(font, str, color);
tex1 = SDL_CreateTextureFromSurface(ren, sur1); // 把表面转换成画刷
sprintf(str, "时间:%.2f\"", time);
text = TTF_RenderUTF8_Blended(font, str, fontcolor);
tex2 = SDL_CreateTextureFromSurface(ren, text); // 把表面转换成画刷
SDL_RenderCopy(ren, tex, NULL, NULL);
SDL_RenderCopy(ren, tex2, NULL, &title);
SDL_RenderCopy(ren, tex1, NULL, &pp);
SDL_RenderPresent(ren);
SDL_FreeSurface(sur);
SDL_DestroyTexture(tex);
SDL_FreeSurface(sur1);
SDL_FreeSurface(text);
SDL_DestroyTexture(tex1);
SDL_DestroyTexture(tex2);
}
void start()
{
SDL_GetWindowSize(w, &W, &H); // 得到屏幕分辨率
PH = H * 7 / 8;
color =
{
255, 215, 0};
fontcolor =
{
0, 0, 0}; // 字体颜色赋值
float a = PH * 3 / 4 + H / 8;
float wight = W / 4;
float hight = PH / 4;
rect[0].x = 0;
rect[0].y = a;
rect[1].x = wight;
rect[1].y = a - hight;
rect[2].x = wight * 2;
rect[2].y = a - 2 * hight;
rect[3].x = 3 * wight;
rect[3].y = a - 3 * hight;
for (int i = 0; i < 4; i++)
{ // 为黑块的高和宽赋值
rect[i].h = hight;
rect[i].w = wight;
}
title =
{
1.10, 0, W / 2, W / 8};
pp =
{
W / 2, 0, W / 2, W / 8};
over =
{
0, H / 4, W, H / 4};
}
void end()
{
TTF_CloseFont(font);
TTF_Quit();
② 如何编译C语言源代码
下载一个VC2005软件,把代码复制到里面,设置好C运行环境,点击编译,OK,然后点击那个感叹号,直接链接运行,就OK了。
③ C语言编写好代码后,怎么编译,最后生成可执行文件
材料/工具:vc6.0
1、打开c语言编辑工具,在工具中写入程序的源代码。
④ 怎样用vc编译C语言文件,请详细说明步骤
如果只是想简单用VC编译c语言文件,可以不用那么复杂,你可以这样做:
在你想保存的文件夹下,新建一个.txt的文本文件,名字就取你要新建立的c文件的名字,但是注意后缀名改为.c;
让后右键(如果只装了vc的话,也可以直接双击打开)选择vc方式打开;
在打开的窗口中编写你的代码,写完后保存,点击!符号(也可以找菜单项中的build下的build all或execute都可以),进行编译和链接,弹出对话框就选择是,如果没有错误就可以通过编译,程序就直接运行
如果是按步骤来会稍微麻烦点,如下:
(1)打开vc环境
(2)选择“File”—“New”
在弹出的对话框中选择"projects"项,先建立工程文件:
i:对话框的左边选择Win32 console Application项
ii:在对话框的右边可以选择路径Location和输入工程名Project name,下边的单选一般默认为Create new workspace即可(因为是新建)
iii:以上设置好后,单击ok,下面的对话框按默认即可,点击finish,然后在下一个对话框中点击ok,工程建所在文件夹就建好了。此时如果按你刚才设定的路径去查看,就可以找到建立的工程文件夹。
(3)建立文件
让后同样在“File”—“New”下,本次选择Files项,在左边选择c++source file项,右边file下可以输入文件名,上边的为指定该文件所在的工程,一般默认即可建立在你刚刚建立的工程文件中,下边的Location为该源文件的路径,都按要求填写好后,点击ok即可进行文件的代码的编写了
(4)代码写好后,如上一部分简单操作时所说的进行编译和链接,让后运行就可以查看结果了。
至于工程是做什么用的,就好比是一个“单位或者说工厂”一样,而源文件好比是单位中的“车间”,这样理解简单点,具体的过程你按我所说的试试吧
附:如果你的英文好的话,很容易理解和看懂出现的各种提示的意思,如果你装的是汉化版的vc,那就更好办了,很容易就看懂的,试试看,祝你成功!
刚开始学习c语言,用的也是vc环境,更本不知道从哪里进入,哪里写代码,所以想了上面的简单的办法,后来看书就慢慢的会用了,相信你很快就会很熟练了,呵呵
⑤ 在Ubuntu上写C语言通常用什么编译器
ubuntu是linux系统的桌面版,自带了c语言编译器(gcc),编译c语言步骤如下:
1、写好一个c文件
2、打开终端(Ctrl+Alt+T)
3、进入c文件所在目录
4、输入:gcc xx.c -o xx
5、编译成功生成执行文件xx,运行输入: ./xx 即可看到结果
⑥ C语言文件的编译与执行的四个阶段并分别描述
开发C程序有四个步骤:编辑、编译、连接和运行。
任何一个体系结构处理器上都可以使用C语言程序,只要该体系结构处理器有相应的C语言编译器和库,那么C源代码就可以编译并连接到目标二进制文件上运行。
1、预处理:导入源程序并保存(C文件)。
2、编译:将源程序转换为目标文件(Obj文件)。
3、链接:将目标文件生成为可执行文件(EXE文件)。
4、运行:执行,获取运行结果的EXE文件。
(6)白块c语言编译扩展阅读:
将C语言代码分为程序的几个阶段:
1、首先,源代码文件测试。以及相关的头文件,比如stdio。H、由预处理器CPP预处理为.I文件。预编译的。文件不包含任何宏定义,因为所有宏都已展开,并且包含的文件已插入。我归档。
2、编译过程是对预处理文件进行词法分析、语法分析、语义分析和优化,生成相应的汇编代码文件。这个过程往往是整个程序的核心部分,也是最复杂的部分之一。
3、汇编程序不直接输出可执行文件,而是输出目标文件。汇编程序可以调用LD来生成可以运行的可执行程序。也就是说,您需要链接大量的文件才能获得“a.out”,即最终的可执行文件。
4、在链接过程中,需要重新调整其他目标文件中定义的函数调用指令,而其他目标文件中定义的变量也存在同样的问题。
⑦ c语言如何编程
C语言编程如何快速实现
在我们初次学习C语言的时候,总想着快速的实现编译过程。那么C语言编程究竟是如何实现的呢,当然是要通过自己喜欢的编译器来编译完成,那么今天就为大家介绍C语言编程是如何快速的实现。
1. 首先我们下载一款适合C语言的编译器,今天为大家讲解的C语言编译器为CodeBlocks,该编译器没有太过复杂,很符合初学者,简单上手快。
⑧ 如何使用CodeBlocks编译c++和c语言
打开CodeBlocks之后,直接在起始页选择:新建工程(create a new project),或者在文件菜单里面选择 新建 工程
这时会出现新建对话框,选择“控制台应用程序”项,按确定(go)
需要选择“添加到活动工程”,然后点完成即可编码
写完编码后,在 生成(Build) 菜单中选择 生成 即可开始编译,或者点击工具栏上面那个略带黄色的齿轮,编译通过后要运行,请选择 生成 菜单 下的 运行(Run) 菜单项,或者点击工具栏上那个绿色的三角
这个图是编译和运行这两功能在工具栏上对应的按钮位置。这两个图标后面还有一个把齿轮和三角结合在一起的图标,这表示一次性完成编译和运行(如果是用菜单栏的话就是生成菜单中的“生成并运行(Build and run)”项
⑨ c语言程序编译过程包括哪四个
C语言编译过程分成四个步骤:
1,由.c文件到.i文件,这个过程叫预处理
2,由.i文件到.s文件,这个过程叫编译
3,由.s文件到.o文件,这个过程叫汇编
4,由.o文件到可执行文件,这个过程叫链接
用gcc查看预处理过程(假设源文件叫hello.c)
gcc -o hello.i hello.c -E
然后用 vi hello.i 即可查看生成的预处理文件
按ESC 输入:$ 跳到预处理文件 可看到hello.c源码
宏的本质:预处理阶段的单纯的字符串替换
预处理阶段,不考虑C语法
⑩ ubuntu下如何编译C语言
1、首先打开ubnutu开发环境,直接输入组合键ctrl+alt+t调出命令行界面。