有趣小游戏之俄罗斯方块
手动摆放七巧板
构建迷宫游戏(多种迷宫生成算法、支持倒计时与闯关功能)
探索之路
一个群里的大佬做的 DOS 版我的世界让我想到了这个游戏,后面去看了看 Terraria 的视频,学习了下,做了个极其简陋的沙盒游戏
开发环境:VS2019 + EasyX_20210730
游戏说明:
一个类似于二维版我的世界和泰拉瑞亚的沙盒游戏,你可以建造属于你的一片天地
(但因为目前方块过少,效果极其单调。。)
WASD 键:移动
Q 键:打开制作页面,再次按下返回
E 键:打开背包页面,再次按下返回
R 键:查看角色属性
ESC:设置页面(可调整为观察模式、普通模式,查看当前坐标)
大键盘1键:保存!!
制作页面:鼠标滚轮选择目标制作物品(部分物品需在工作台或熔炉旁才能制作)
背包页面:鼠标选中背包物品后拖动至使用栏便可更换使用栏物品
目前版本
...合成立方体 (模仿)
游戏介绍
在 4399 上面看到一个很有趣的小游戏:合成立方体(游戏原地址)。
游戏中,玩家需要通过所给的形状去尽可能拼凑出完整的一行一列,然后完整的行列会增加分数,一旦所给的形状无法被塞下,游戏结束。非常简单的游戏,我用了 EasyX 去复原了一下。
游戏运行截图如下:
游戏源码下载
点击这里下载游戏完整源代码
井字棋(release)
七巧板Plus
游戏介绍
鼠标左键拖动图形移动,松开时自动吸附,按下 ctrl 键的同时拖动则不进行吸附,右键单击图形顺时针旋转 45°,ESC 结束游戏。
新增内容
增加了点吸附效果,拖动图形松开后,触发边吸附的同时也会触发点吸附。
拖动图形的同时,若按下 ctrl 键,则不会进行吸附。
不定期更新,力求完善。。。
程序说明
简要介绍程序中的一些点。
属性
使用模板类和 lambda 表达式实现了属性,用于对外暴露字段,详见 C# 属性。
使用属性可以简化程序,减少繁琐的 get 函数和 set 函数,提高了程序的可读性。
因为是自行封装的属性,所以存在很大的缺陷,很大程度上增加了类的大小(因为把函数成员变成了数据成员),属性的重写以及访问控制的不完善等。
对象管理机制
使用 Tangram 类来管理程序中所有的图形。
...简单的音乐游戏
介绍
这是一款十分简单的音乐游戏。
编译环境:Visual Studio 2019,EasyX_20210730
游戏说明
- 介绍:玩家需根据音乐节奏,控制方向块,接住不断靠近的 note。
- 控制:Q 逆时针旋转,W 后移,E 顺时针旋转,ESC 暂停游戏,具体可于游戏中进行设置。
- 若想游玩其他谱面可以访问 osu 或镜像站 v mirror (推荐 使用时可以下载其中的MINI谱面,减少不必要的空间占用)下载谱面 并将下载的 .osz 文件以 zip 格式打开并解压到 obm 文件夹中。
- 对于任何音乐游戏,包括该游戏都建议从最低难度开始。
项目共包含以下文件
源程序文件:
- main.cpp 主程序。
- Control.h/cpp 游戏控制部分 包含类 keycheck 单独按键控制,timer 计时器,FPSCounter 帧数计算。
- EasyG
Logic Pic(模仿)
程序介绍
模仿手游 Logic Pic 做的游戏。
游戏介绍
玩法
根据数字的提示,左键点击白色方格,将其变为黑色,使每一行(列)的黑色方格,满足这一行(列)的数字,右键白色方格将此方格变为禁止状态,意为不涂,便于解题。左键(右键)黑色(灰色)方格,可取消其状态,变为白色普通方格。
当所有行(列)的黑色方格都满足该行(列)的数字时,解密成功。
例:3 :该行(列)三个黑色方格在一起,如上图第二列。
例:2 1:该行(列)一共有黑色方格,但是 2 和 1 需要分隔开,如上图第五列。
功能按钮
提示按钮,游戏界面下方第一个。随机获得一行(列)的正确答案,可能会出现在已经被填涂的行(列)。每局游戏只能使用一次,请谨慎使用。
记录按钮,游戏界面下方第二个。记录当前所有方格的状态。不限使用次数,但会覆盖原来的数据。
回退按钮,游戏界面下方第三个。配合记录功能使用,回退到记录时的状态。
重
...贪吃蛇(纯C++)
游戏说明
这是一个传统的贪吃蛇游戏,基于链表实现
界面设计参考了 https://codebus.cn/aknoi/a/snake
按键说明
- 方向控制:↑↓←→ 或者 Q(逆时针),R(顺时针)
- 速度:按下 space 加速,‘[’ 减速,‘]’ 加速
- 食物:小键盘 + 增加食物,小键盘 - 减少食物
- 其他:非小键盘数字键 9、0 可以调整帧率,小键盘 * 可以切换贪吃蛇模式,F1 帮助,F11 截屏
状态栏说明
- 生命状态:贪吃蛇是否存活,由于没有设置死亡,所以只有存活和濒死两种状态
- 等级:每吃 10 个食物升一级
- 分数:每个食物 10 分
- 速度:默认速度 0 ,可以调节,最快 10,最慢 -10
- 长度:贪吃蛇的节数(包括头)
- 食物数量:界面中的食物个数,最大 99 ,可以手动调整
- 蛇
双人击球游戏
游戏说明
Player1 玩家通过 W、S 按键控制左板上下移动,Player2 玩家通过 O、L 按键控制右板上下移动。在游戏过程中,小球的速度会随着接触木板的次数增加而加快,增加游戏难度。当小球没有碰到木板时游戏结束。
效果图
完整代码
///////////////////////////////////////////////////
// 程序名称:双人击球游戏
// 编译环境:VS2010,EasyX_20200902
// 作 者:温良
// 最后修改:2021-1-31
//
#include <graphics.h>
#include <conio.h>
int main()
{
initgraph(640, 480);
srand(GetTickCount());
setbkcolor(WHITE);
cleardevice();
setfillcolor(BLACK);
se
...
自制小游戏 《逆行》
A,D键躲避迎面而来的车辆。
所需图片资源:
#include <graphics.h>
#include <time.h>
#include <stdio.h>
#include <string>
#include <tchar.h>
#include <iostream>
#include <conio.h>
using namespace std;
IMAGE Texture_BK; //背景图
IMAGE Texture_Car; //车
IMAGE Texture_Car2; //车2
IMAGE Texture_BCar; //车掩码
IMAGE Texture_BCar2;//车掩码2
struct player
{
int x;
int road_type;
int time;
bool Ctrl;
void init() {
Ctrl = f
...
2048 游戏
见缝插针
游戏说明
使用鼠标左键点击发射针,当两个针的夹角小于一定限制时,游戏结束。
亮点
这个游戏比较创新的地方就是可以用鼠标控制一个动态的过程,在循环中使用鼠标点击,并且鼠标消息不受延时函数的影响。以前写代码的时候,由于鼠标消息的原因,所以会选择多线程,但是参考了正确处理鼠标消息这篇文章,了解了鼠标消息的正确用法后,觉得有必要试试,就写了一个见缝插针游戏。我觉得学习不仅就是把别人的东西学会,而且需要在学习之后实践。
期待
见缝插针游戏我只是写了一个大致的框架,重点是为了实践鼠标消息的处理,如果需要将这个游戏进一步开发,可以在针的转速,长短,以及在插在球上面针的数量上进行设置不同的关卡。
效果图
代码
///////////////////////////////////////////////////
// 程序名称:见缝插针
// 编译环境:Mictosoft Visual Stu
...