C语言基于EasyX库实现有颜色弹跳小球

本文实例为大家分享了基于EasyX库实现有颜色弹跳小球的具体代码,供大家参考,具体内容如下

1.目标要求

1.实现一个有颜色小球在窗口中弹跳
2.遇到边界弹跳

2.C语言代码

#include<graphics.h> 
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<conio.h>

#define High 480
#define Width 640//画布尺寸

/*
刷屏问题

  移动的间距小、延时短,动画就会越细腻。但当画面较复杂时,会带来画面的闪烁。

  1.BeginBatchDraw这个函数用于开始批量绘图。执行后,任何绘图操作都将暂时不输出到屏幕上,直到执行
FlushBatchDraw或EndBatchDraw才将之前的绘图输出
  2.FlushBatchDraw这个函数用于执行未完成的绘制任务。
  3.EndBatchDraw这个函数用于结束批量绘制,并执行未完成的绘制任务。
*/

void HideCursor(){    //隐藏光标位置 ,这个函数复制代码就行 
    CONSOLE_CURSOR_INFO cursor_info={1,0}; 
    SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_info);
}
void gotoxy(int x,int y){    //把光标放在(0,0)位置 ,这个函数复制代码就行
    HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);
    COORD pos;
    pos.X = x;
    pos.Y = y;
    SetConsoleCursorPosition(handle,pos);
} 

int IsEnd;//是否结束 
int scores;//分数 
int slow_v,slow_v_num;//移动变慢的值(越大速度越慢),移动变慢的变量
int ball_x,ball_y;//小球坐标
int ball_r;//小球半径
int ballv_x,ballv_y;//小球速度

void startup(){    //【数据初始化】 
    
    HideCursor();//不显示光标 
    IsEnd = 0;
    scores=0;    
    slow_v=1;
    slow_v_num=1; 
    initgraph(Width,High);//展示画布
    ball_x=Width/2;
    ball_y=High/2;
    ballv_x=1;
    ballv_y=1;
    ball_r=20;

    
}
void show_begin(){//【初始页面展示】 
    BeginBatchDraw();
} 
void show(){    //【显示画面】 
    setcolor(YELLOW);//设置颜色
    setfillcolor(GREEN);//设置填充颜色
    fillcircle(ball_x,ball_y,ball_r);//填充圆
    FlushBatchDraw();//更新一次画面,解决画面闪的问题,需要配合BeginBatchDraw函数使用
    Sleep(10);//延时
    cleardevice();//清除之前的画迹
    ball_x += ballv_x;
    ball_y += ballv_y;
    
    
}
void update_outinput(){    //【与输入无关的更新】 
    if(ball_x+ball_r>=Width||ball_x-ball_r<=0){
        ballv_x *= -1;
    }
    if(ball_y+ball_r>=High||ball_y-ball_r<=0){
        ballv_y *= -1;
    }
    
    
}
void update_input(){//【与输入有关的更新】 
    char input;
    if(kbhit()){
        input = getch();
                
    }
}
void show_end(){//【显示失败界面】 
    EndBatchDraw();
}

int main(){
    startup();    //数据初始化
    show_begin();//初始页面 
    while(!IsEnd){    //游戏循环执行 
        show();    // 显示画面 
        update_outinput();    //与输入无关的更新 
        update_input();    //与输入有关的更新 
    }
    show_end(); //显示失败界面 
    return 0;
}

3.运行结果

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • c语言小游戏程序之弹跳小球的实现代码

    现在说一下其中一个最简单的小程序:弹跳小球 ---------------LINE---------------- 首先我们知道,在窗口的坐标系原点是在窗口左上角的,如图所示 然后我们如果想在这个坐标系里面的某个点上画出一个小球,那么它的坐标系应该就是这样的 转换到c语言的思维的话:X0既是打印出X0个"\n",Y0既是打印出Y0个空格!!!! SO 代码如下 #include <stdio.h> #include <stdlib.h> int main() {

  • C语言练习题:自由落体的小球简单实例

    一球从100米高度自由落下,每次落地后反跳回原高度的一半:再落下,求它在第10次落地时,共经过多少米?第10次反弹多高? 以上这篇C语言练习题:自由落体的小球简单实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • C语言实现弹跳小球

    这是一个简单的c语言源代码,C语言实现弹跳小球,设置了小球的分数及过关的难度. #include "graphics.h" #include "math.h" #define LEFT 0x4b00 #define RIGHT 0x4d00 #define ESC 0x011b int x,y,x1,y1,key,t1,t2,keyx,keylong,keymove,over=0,i,tt=0,fast; int ballx[9]={53,103,263,120,2

  • C语言基于EasyX库实现有颜色弹跳小球

    本文实例为大家分享了基于EasyX库实现有颜色弹跳小球的具体代码,供大家参考,具体内容如下 1.目标要求 1.实现一个有颜色小球在窗口中弹跳2.遇到边界弹跳 2.C语言代码 #include<graphics.h>  #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h> #define High 480 #define Width 640//画布尺寸

  • C语言基于EasyX库实现有图形界面钟表

    本文实例为大家分享了C语言基于EasyX库实现有图形界面钟表的具体代码,供大家参考,具体内容如下 1.目标要求: 实现一个显示图像的时钟 2.C语言代码: #include<graphics.h> //需要提前下载EasyX库哦 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h> #include<math.h> #define High

  • C语言基于EasyX库实现有图形界面时钟

    本文实例为大家分享了C语言基于EasyX库实现有图形界面时钟的具体代码,供大家参考,具体内容如下 1.目标要求: 1.实现一个显示图像的时钟2.时间与本地时间一致 2.C语言代码: #include<graphics.h> //需要提前安装库函数EasyX,网上官网下载 #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<conio.h> #include<ma

  • C++实现基于EASYX库扫描线算法

    本文实例为大家分享了C++实现基于EASYX库扫描线算法的具体代码,供大家参考,具体内容如下 扫描线算法的基本原理 * 作者在扫描线算法的基础上自己设计的更易于理解的地物填充绘制算法 流程图 代码 #include<graphics.h> //#include<conio.h> #include<iostream> using namespace std; //-----------------------------草图形-----------------------

  • C语言基于EasyX实现贪吃蛇

    本文实例为大家分享了C语言基于EasyX实现贪吃蛇的具体代码,供大家参考,具体内容如下 成品展示: 实现思路: 贪吃蛇的实现思路并不复杂,由于我们需要将数据展示在图形窗口上,因此就不需要之前那种用数组表示整个游戏地图的方法. 贪吃蛇的蛇有X坐标和Y坐标,而且不止一节,因此需要一个坐标结构体数组来保存,蛇的移动思路是除了第一节以外,后面每一节都是前面一节的坐标,然后通过键盘的输入输出使蛇的X或Y坐标加或者减来起到上下左右移动的作用.通过判断蛇与食物的坐标是否重合绝对是否吃到食物,吃到食物以后,蛇的

  • C语言基于EasyX绘制时钟

    本文实例为大家分享了C语言基于EasyX绘制时钟的具体代码,供大家参考,具体内容如下 函数说明: void line(     int x1,     int y1,     int x2,     int y2 ); 参数 x1直线的起始点的 x 坐标. y1直线的起始点的 y 坐标. x2直线的终止点的 x 坐标. y2直线的终止点的 y 坐标. 文件素材 源代码 #include <graphics.h> #include <conio.h> #include <mat

  • C++基于EasyX库实现拼图小游戏

    用C++的EasyX库做的拼图小游戏,供大家参考,具体内容如下   记录一下自己做的第一个项目,还有一些改进空间QWQ,可以支持难度升级,但是通关判断似乎有点小问题肯定不是我菜通不了关 . #pragma once #include <iostream> #include <graphics.h> #include <Windows.h> #include <algorithm> #include <easyx.h> #include <c

  • C++使用easyX库实现三星环绕效果流程详解

    目录 1,项目描述 2,解决思路 3,关键代码 4,项目运行截图 5,具体代码实现 1,项目描述 功能1:使用图形化的方式描述地球围绕着太阳转动,月球围绕着地球转动 功能2:在转动的过程中当用户按下1,2,3,4,5,6,7时它可以变换出7种不同的颜色,当用户按下8时它可以变换从1-7的颜色依次变换当用户再次按下8键时停止变换颜色 功能3:当用户按下上键时,地球会围绕太阳反转,当再次按下上键时地球会恢复到正转 功能4:当用户按下空格键的时候,所有动画暂停,当再次按下空格键的时候所有动画继续进行.

  • php基于GD库画五星红旗的方法

    本文实例讲述了php基于GD库画五星红旗的方法.分享给大家供大家参考.具体分析如下: 这里实例分析php画的五星红旗(GD库),代码如下: 复制代码 代码如下: <?php header("Content-Type:image/jpeg"); $ing = imagecreatetruecolor(700,410); //新建一个真彩色图像,返回值为一个图像标识符,背景默认为黑色,参数(x_size*y_size) $red = imagecolorallocate($ing,2

  • PHP基于GD库的图像处理方法小结

    本文实例讲述了PHP基于GD库的图像处理方法.分享给大家供大家参考,具体如下: gd图像处理技术 extension=php_gd2.dll 创建画布 画布,一种资源型数据,可操作的图像资源 创建画布(新建) imageCreate(width,height) //创建基于调色板的画布 imageCreateTrueColor(width,height) //创建真彩色的画布 基于图片创建画布(打开) imageCreateFromJPEG( url) imageCreateFromPNG(ur

随机推荐