C语言游戏开发——反弹球
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语言游戏开发——反弹球相关推荐
- easyx游戏编程:五子棋(C语言游戏开发)
easyx游戏编程:五子棋(C语言游戏开发) 五子棋: 本游戏用到了图形界面库graphics.h,图形界面库下载安装: 下载链接: https://easyx.cn/downloads/. 下方有源 ...
- C语言游戏开发——打飞机游戏2.0
C语言游戏开发--打飞机游戏2.0 本次打飞机游戏对上次的打飞机游戏2.0做了代码重构和升级 通过定义函数来实现多个功能 以下为代码主体 通过w a s d来控制飞机的移动 通过空格来发射子弹 #in ...
- C语言游戏开发第一课:数字华容道
项目背景 1. 手游改写而成. 2. 游戏引擎开发的技术价值 小龙的游戏引擎开发之路:从游戏引擎的设计到京东搜索引擎开发工程师 项目准备 任意版本的VS 或者 VC++ 安装easyx图形库 项目演示 ...
- C语言游戏开发SDL篇
在 CSDN 博客发现一些分享的好文章,但暂时不懂如何收藏,先写文章将这些网址收录,目后随时方便自己翻阅 2018年10月26日 =================================== ...
- Squirrel脚本语言..游戏开发.
Squirrel是一种较新的程序设计语言,它从著名的LUA语言继承了很多特性,适用的范围也与LUA语言相似. Squirrel是个人的作品,作者是意大利小伙AlbertoDemichelis,SQUI ...
- 100代码搞定C语言游戏开发,编程原来如此简单
序言 虽然说学完了C语言入门,但是实际能力还是停留在一个很低的水平,基本上就是套几个for循环,暴力解一下排列组合问题的水平.这次的编写控制台贪吃蛇程序对我来说是一个不小的挑战. 文本版的贪吃蛇用的东 ...
- windows游戏编程:球球大作战吃鸡版(C语言游戏开发)
球球大作战: 前言: 本游戏用到了图形界面库graphics.h,图形界面库下载安装:https://blog.csdn.net/alzzw/article/details/100043681 下方有 ...
- C语言游戏开发丨源代码丨开发教程
编译环境 系 统:Windows11 编译器:Visual Studio 2022 图形库:EasyX 源代码 #include<easyx.h> #include<stdio.h& ...
- c语言游戏开发之贪吃蛇
一.建立背景 这里可以运用界面函数initgraph(a,b)来建立,其头文件为<grapgics.h>. 注意:为了防止卡退需要使用while(1){ }来一直循坏. #include& ...
- 做游戏,学编程(C语言)教材《C语言课程设计与游戏开发实践教程》出版了...
经过半年多的写作.修改.校样.印制,我们的实践教材<C语言课程设计与游戏开发实践教程>终于出版了.这本书可以看成是"做游戏,学编程(C语言)专栏"的详细版本,以下为书中 ...
最新文章
- 小乌龟 拉取项目_从有个叫“乌龟石”的地方讲起
- python字典中append_零基础入手!Python中字典与集合的使用指南
- x86、amd64、x86-64、x64以及ia64的基本概念
- spring事务管理-Transaction模板(了解)
- 使用hotnode自动更新脚本(热发布)
- 细说ASP.NET Core静态文件的缓存方式
- 【英语学习】【WOTD】sleuth 释义/词源/示例
- android 拖拽gridview,Android 可拖拽的GridView效果实现, 长按可拖拽和item实时交换
- MySQL 的 Web 界面、前端或 GUI 工具
- Java多线程详解(深究Thread类)
- FFA 2021 专场解读 - Flink 核心技术
- PMP考试通关宝典,考生必看
- 那些好用的firefox扩展插件分享
- 迈达斯GTS-NX网格模型(FPN)导入Flac3D 6.0
- Linux du命令和df命令
- MySQL系列之STRAIGHT JOIN用法简介
- 基于Unity的2D像素风闯关游戏Demo——SunnyLand
- 日常生活-不帮人投资理财
- 文件缓冲区和inode详解
- OneNav一为主题魔改教程(二):使用纯css增加网站Logo扫光效果--洞五洞洞幺
热门文章
- Qt-高分辨率drawImage模糊问题
- html自动浮动div广告,div+css下js浮动对联广告不随屏幕滚动的解决方法
- HALCON 18.11 Progress 发布说明
- 基于Unity3D实现的HitUFO鼠标打飞碟游戏
- SIM-MICRO-SIM- NANO SIM 区别
- iPad mini Retina越狱小结【2014年02月06日 - 初稿】
- matlab NORM函数
- 3GPP LTE/NR信道模型
- ArcGIS生态敏感性分析制作(附练习数据下载)
- java计算机毕业设计家教管理系统源码+mysql数据库+系统+lw文档+部署