C语言游戏开发——反弹球

1.划定一块区域,小球在其中运动,碰到边框会反弹,通过判断是否触底来决定是否结束游戏,玩家通过w,a,s,d来控制反弹板的运动,来反弹小球避免游戏失败。

2.在startup()函数中来改变游戏区域的大小以及反弹板的大小等参数

3.在Sleep(50);这个语句中更改游戏速度

4.以下为游戏主体代码。

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <Windows.h>int high, width;
int ball_x, ball_y;
int vx, vy;
int px, py;
int r;
int left, right;
int number;
int block_x, block_y;
int score;void gotoxy(int x, int y)     //移动光标到x,y位置
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(handle, pos);
}void startup()
{high = 15;width = 20;ball_x = 0;ball_y = width / 2;vx = 1;vy = 1;r = 4;px = high;py = width / 2;left = py - r;right = py + r;number = 0;
}void show()
{gotoxy(0,0);int i, j;for (i = 0; i <= high+1; i++){for (j = 0; j <= width; j++){if ((i == ball_x) && (j == ball_y))printf("o");else if (j == width)printf("|");else if (i == high+1)printf("-");else if ((i == high    ) && (j>=left)&&(j <=right))printf("*");else printf(" ");}printf("\n");}printf("反弹小球数:%d", number);
}void inputwithout()
{if (ball_x==high-1){if ((ball_y >= left) && (ball_y <= right)){number++;   }else{printf("游戏失败");system("pause");exit(0);}}ball_x = ball_x + vx;ball_y = ball_y + vy;if ((ball_x == 0) || (ball_x == high - 1)){vx = -vx;}if ((ball_y == 0) || (ball_y == width - 1)){vy = -vy;}Sleep(50);}void inputwith()
{char input;if (_kbhit()){input = _getch();if (input=='a'){py--;left = py - r;right = py + r;}if (input=='d'){py++;left = py - r;right = py + r;}}
}int main()
{startup();while (1){show();inputwithout();inputwith();}return 0;
}

代码通过几个函数来实现游戏的主体功能。

C语言游戏开发——反弹球相关推荐

  1. easyx游戏编程:五子棋(C语言游戏开发)

    easyx游戏编程:五子棋(C语言游戏开发) 五子棋: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源 ...

  2. C语言游戏开发——打飞机游戏2.0

    C语言游戏开发--打飞机游戏2.0 本次打飞机游戏对上次的打飞机游戏2.0做了代码重构和升级 通过定义函数来实现多个功能 以下为代码主体 通过w a s d来控制飞机的移动 通过空格来发射子弹 #in ...

  3. C语言游戏开发第一课:数字华容道

    项目背景 1. 手游改写而成. 2. 游戏引擎开发的技术价值 小龙的游戏引擎开发之路:从游戏引擎的设计到京东搜索引擎开发工程师 项目准备 任意版本的VS 或者 VC++ 安装easyx图形库 项目演示 ...

  4. C语言游戏开发SDL篇

    在 CSDN 博客发现一些分享的好文章,但暂时不懂如何收藏,先写文章将这些网址收录,目后随时方便自己翻阅 2018年10月26日 =================================== ...

  5. Squirrel脚本语言..游戏开发.

    Squirrel是一种较新的程序设计语言,它从著名的LUA语言继承了很多特性,适用的范围也与LUA语言相似. Squirrel是个人的作品,作者是意大利小伙AlbertoDemichelis,SQUI ...

  6. 100代码搞定C语言游戏开发,编程原来如此简单

    序言 虽然说学完了C语言入门,但是实际能力还是停留在一个很低的水平,基本上就是套几个for循环,暴力解一下排列组合问题的水平.这次的编写控制台贪吃蛇程序对我来说是一个不小的挑战. 文本版的贪吃蛇用的东 ...

  7. windows游戏编程:球球大作战吃鸡版(C语言游戏开发)

    球球大作战: 前言: 本游戏用到了图形界面库graphics.h,图形界面库下载安装:https://blog.csdn.net/alzzw/article/details/100043681 下方有 ...

  8. C语言游戏开发丨源代码丨开发教程

    编译环境 系 统:Windows11 编译器:Visual Studio 2022 图形库:EasyX 源代码 #include<easyx.h> #include<stdio.h& ...

  9. c语言游戏开发之贪吃蛇

    一.建立背景 这里可以运用界面函数initgraph(a,b)来建立,其头文件为<grapgics.h>. 注意:为了防止卡退需要使用while(1){ }来一直循坏. #include& ...

  10. 做游戏,学编程(C语言)教材《C语言课程设计与游戏开发实践教程》出版了...

    经过半年多的写作.修改.校样.印制,我们的实践教材<C语言课程设计与游戏开发实践教程>终于出版了.这本书可以看成是"做游戏,学编程(C语言)专栏"的详细版本,以下为书中 ...

最新文章

  1. 小乌龟 拉取项目_从有个叫“乌龟石”的地方讲起
  2. python字典中append_零基础入手!Python中字典与集合的使用指南
  3. x86、amd64、x86-64、x64以及ia64的基本概念
  4. spring事务管理-Transaction模板(了解)
  5. 使用hotnode自动更新脚本(热发布)
  6. 细说ASP.NET Core静态文件的缓存方式
  7. 【英语学习】【WOTD】sleuth 释义/词源/示例
  8. android 拖拽gridview,Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
  9. MySQL 的 Web 界面、前端或 GUI 工具
  10. Java多线程详解(深究Thread类)
  11. FFA 2021 专场解读 - Flink 核心技术
  12. PMP考试通关宝典,考生必看
  13. 那些好用的firefox扩展插件分享
  14. 迈达斯GTS-NX网格模型(FPN)导入Flac3D 6.0
  15. Linux du命令和df命令
  16. MySQL系列之STRAIGHT JOIN用法简介
  17. 基于Unity的2D像素风闯关游戏Demo——SunnyLand
  18. 日常生活-不帮人投资理财
  19. 文件缓冲区和inode详解
  20. OneNav一为主题魔改教程(二):使用纯css增加网站Logo扫光效果--洞五洞洞幺

热门文章

  1. Qt-高分辨率drawImage模糊问题
  2. html自动浮动div广告,div+css下js浮动对联广告不随屏幕滚动的解决方法
  3. HALCON 18.11 Progress 发布说明
  4. 基于Unity3D实现的HitUFO鼠标打飞碟游戏
  5. SIM-MICRO-SIM- NANO SIM 区别
  6. iPad mini Retina越狱小结【2014年02月06日 - 初稿】
  7. matlab NORM函数
  8. 3GPP LTE/NR信道模型
  9. ArcGIS生态敏感性分析制作(附练习数据下载)
  10. java计算机毕业设计家教管理系统源码+mysql数据库+系统+lw文档+部署