消消乐android 源代码,【消消乐】源代码
友情提示:vc++6.0需要加装easyx库,这是一个图形库(个人认为这个库不错,太适合新手做一些有意思的效果),具体教程见前文,如果没有添加的话,是不能编译运行通过的,也就见不到效果。
#include
#include
#include
#include
#define KEY_DOWN(vk_c)(GetAsyncKeyState(vk_c)&0x8000)
typedef struct position{
int x;
int y;
}posType;
int index;//同色小球的个数
void init();//初始化游戏窗口
void gamebegin();//游戏开始界面
void gameplay();//玩游戏的具体过程
void close();//结束游戏,释放资源
void drawcursor(posType cur,COLORREF c1);//绘制光标
void drawtime(int sec);//绘制时间
void drawscore(int score);//绘制分数
void getsamecolorballs(posType cur,COLORREF c1);//获得光标所在位置周围的同色小球,计算同色小球的个数,并存入数组
int isValid(posType cur,COLORREF c1);//判断同色小球是否合法
void ballsfall();//小球下落
COLORREF colorArr[6]={RGB(200,0,0),RGB(0,200,0),RGB(0,0,200),RGB(200,200,0),RGB(200,0,200),RGB(0,200,200)};
posType cur;//定义当前光标位置
posType ballsArr[180];//同色小球坐标
void main()
{
init();//初始化游戏窗口
gamebegin();//游戏开始界面
gameplay();//玩游戏的具体过程
close();//结束游戏,释放资源
}
void init()
{
initgraph(1000,700);
}
void close()
{
getch();
closegraph();
}
void gamebegin()
{
//绘制游戏边框
setlinecolor(RGB(50,50,50));
setlinestyle(PS_SOLID,10);
rectangle(255,45,745,655);
//绘制小球
srand((unsigned)time(NULL));
setlinestyle(PS_SOLID,1);
for(int x=280;x<740;x+=40)
{
for(int y=70;y<650;y+=40)
{
COLORREF c1=colorArr[rand()%6];
setfillcolor(c1);
setlinecolor(c1);
fillcircle(x,y,18);
}
}
//绘制移动光标
cur.x=480;
cur.y=390;
drawcursor(cur,RGB(255,255,255));
//绘制时间drawtime(30);
//绘制分数drawscore(0);
}
void gameplay()
{
int score=0;
for(int i=300;i>0;i--)
{
if(i%10==0)
{
drawtime(i/10);
}
if(KEY_DOWN(VK_UP)&&cur.y>70)
{
drawcursor(cur,BLACK);//绘制黑光标
cur.y-=40;//移动当前光标位置
drawcursor(cur,WHITE);//绘制白光标
}
else if(KEY_DOWN(VK_DOWN)
&&cur.y<630)
{
drawcursor(cur,BLACK);//绘制黑光标
cur.y+=40;//移动当前光标位置
drawcursor(cur,WHITE);//绘制白光标
}
else if(KEY_DOWN(VK_LEFT)
&&cur.x>280)
{
drawcursor(cur,BLACK);//绘制黑光标
cur.x-=40;//移动当前光标位置
drawcursor(cur,WHITE);//绘制白光标
}
else if(KEY_DOWN(VK_RIGHT)
&&cur.x<720)
{
drawcursor(cur,BLACK);//绘制黑光标
cur.x+=40;//移动当前光标位置
drawcursor(cur,WHITE);//绘制白光标
}
else if(KEY_DOWN(VK_RETURN)
||KEY_DOWN(VK_SPACE))
{
//获得光标所在位置周围的同色小球,计算同色小球的个数,并存入数组
getsamecolorballs
(cur,getpixel(cur.x,cur.y));
//同色小球消失一段时间(将数组中元素置黑)
if(index>1)
{
for(int k=0;k
{
setfillcolor(BLACK);
setlinecolor(BLACK);
fillcircle(ballsArr[k].x,ballsArr[k].y,18);
}
//小球下落
Sleep(500);
ballsfall();
score+=index;
drawscore(score);
}
index=0;
}
Sleep(100);
}
cleardevice();
settextcolor(RGB(255,0,0));
settextstyle(80, 0, _T("黑体"));
char s[] = "Game over";
outtextxy(300, 300, s);
drawscore(score);
Sleep(500);
}
void drawcursor(posType cur,COLORREF c1)
{
setlinecolor(c1);
rectangle(cur.x-20,cur.y-
20,cur.x+20,cur.y+20);
}
void drawtime(int sec)
{
char str[30];
settextcolor(RGB(255,255,0));
settextstyle(25, 0, _T("黑体"));
sprintf(str,"剩余时间: %2d s",sec);
outtextxy(20, 50, str);
}
void drawscore(int score)
{
char str[30];
settextcolor(RGB(255,0,0));
settextstyle(25, 0, _T("黑体"));
sprintf(str,"分数: %d",score);
outtextxy(20, 550, str);
}
void getsamecolorballs(posType cur,COLORREF c1)
{
ballsArr[index].x=cur.x;
ballsArr[index].y=cur.y;
index++;
posType tempos;
for(int k=0;k<4;k++)
{
switch(k){
case 0:
tempos.x=cur.x;
tempos.y=cur.y-40;
break;//上
case 1:
tempos.x=cur.x;
tempos.y=cur.y+40;
break;//下
case 2:
tempos.x=cur.x-40;
tempos.y=cur.y;
break;//左
case 3:
tempos.x=cur.x+40;
tempos.y=cur.y;
break;//右
}
if(isValid(tempos,c1))
{
getsamecolorballs(tempos,c1);
}
}
}
int isValid(posType cur,COLORREF c1)
{
if(getpixel(cur.x,cur.y)!=c1)
{
return 0;
}
else
{
for(int k=0;k
{
if(ballsArr[k].x==cur.x
&&ballsArr[k].y==cur.y)
{
return 0;
}
}
return 1;
}
}
void rank()
{
int i,j;
posType temp;
for(i=0;i
{
for(j=0;j
{
if(ballsArr[j].y>ballsArr[j+1].y)
{
temp=ballsArr[j];
ballsArr[j]=ballsArr[j+1];
ballsArr[j+1]=temp;
}
}
}
}
void ballsfall()
{
rank();
for(int i=0;i
{
for(int k=ballsArr[i].y;k>70;k-=40)
{
setfillcolor(getpixel(ballsArr[i].x,k-40)); setlinecolor(getpixel(ballsArr[i].x,k-40)); fillcircle(ballsArr[i].x,k,18);
}
COLORREF c1=colorArr[rand()%6];
setfillcolor(c1);
setlinecolor(c1);
fillcircle(ballsArr[i].x,70,18);
}
}
消消乐android 源代码,【消消乐】源代码相关推荐
- win7 android双系统,联想乐Pad平板电脑发布:Win7/Android双系统
Win7之家( www.win7china.com):联想乐Pad平板电脑发布:Win7/Android双系统 在众多Sandy Bridge处理器平台新本发布之后,联想也在今天正式发布了旗下首款平板 ...
- Unity 游戏皇家消消乐Android版
下载地址工程 先来看一下运行之后的效果图 素材包大家可以下载工程,工程里面都有!会需要导入一个iTween的插件 场景的搭建我就不做过多的介绍了,每个人有自己喜欢的场景! 看一下!CameContro ...
- android 星星流逝动画,Android仿开心消消乐大树星星无限循环效果
啥都不说先上效果图,这个是我项目里的效果: 下面的是我抽取出来的 demo 适配啥的我基本上都做好了没做其他的 ok 下面 说一下思路把 首先 说一下原理 我是使用bitmap 创建两张图 一开始的时 ...
- 乐视2支不支持html,乐2有NFC吗 乐视手机2支持NFC功能吗?
虽然绝大多数消费者在购机的时候不会考虑一款智能手机是否支持NFC功能,但是依旧有不少搞机者对乐2是否支持NFC产生了一定的兴趣.我们知道上一代乐1和乐1s均不支持这一功能,那么全新一代乐2会支持这一功 ...
- Canvas 实现刮刮乐 js实现刮刮乐
Canvas 实现刮刮乐 js实现刮刮乐 **思路: (1)首先需要一个盒子定位,确定刮刮乐区域想要放在哪里 (2)定位盒子里有个放内容的盒子,也就是放奖品的 (3)用一个画布(canvas)把上面的 ...
- ANDROID PAD版本号 PHONE版本号 源代码有什么 差别?
ANDROID PAD版本号 PHONE版本号 源代码有什么 差别? 直接把frameworks/base/core/res/res/values/config.xml里面的<bool name ...
- 知足而乐,不知足亦乐
知足而乐,不知足亦乐 前几天晚上,有一个佛教的朋友与我聊天时,在帮我解读人生真谛时,偶然谈到了知足而乐这个词语.我望着这个词语沉思了一会儿,突然有许多感悟.我在思考,知足可以得到快乐,不知足也能得到快 ...
- 华容道源代码android,基于Android的华容道游戏的源代码
基于Android的华容道游戏的源代码: 相关文件下载在Linux公社的1号FTP服务器里,下载地址: 用户名:www.linuxidc.com 密码:www.muu.cc 在 2011年LinuxI ...
- 乐视账号服务器关闭,乐视手机重置后无法登录账号 官方给出解决方案
[TechWeb报道]1月31日消息,近日有不少使用乐视手机的用户一直反馈"重置手机"之后无法登陆乐视手机账号,并且无法进入系统,引发了众多用户疯狂在微博吐槽.现在最新消息,乐视手 ...
- 开心消消乐java下载_开心消消乐下载_开心消消乐下载最新iPhone版-太平洋下载中心...
<开心消消乐>,以三消游戏的方式,让国民连接在一起!2021年,8亿玩家的共同选择! [App Store下载量榜首,多次精选推荐] 全民级三消游戏<开心消消乐>不仅是中国区A ...
最新文章
- SAP物料类型与物料库存信息在哪个表中
- java filereader类_Java FileReader类
- Java领域的对象如何传输-基于 socket 进行对象传输
- python入门学习的第三天
- 将一个list转化成一颗树的输出方法
- 计算机基础类报刊,全国“xx杯”计算机应用基础类说课大赛优秀作品:图文表混排-制作感恩报刊说课课件...
- 金电联行程小龙:企业数字化转型的目标、决策与实践
- 计算机网络原基站,一种计算机网络工程用移动基站的制作方法
- 分量入度hdu 3836 Equivalent Sets
- windows server 2003 IIS6.0下session问题
- 西藏拉姆拉错:蓝蓝的湖水
- Machine learning system design - Data for machine learning
- 15.7 项目:多线程 XKCD 下载程序
- 一元函数积分学2_不定积分的分部积分法
- python+appium自动化测试-获取短信+图片验证码
- java hid 协议,USB HID协议问题
- linux输入命令直接跳转到指定目录
- abb机器人指令手册_ABB机器人实战技巧超强合集
- Windows系统常用后缀名大全
- 2022 IDC报告出炉 思腾合力一举拿下全国服务器市场双项榜单