8000 GitHub - seimeicyx/noting
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

seimeicyx/noting

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 

Repository files navigation

作业内容

本游戏是一款三维解谜游戏,基于opengl,glut,以日本神话传说、能剧、浮世绘的文化标志为表现形式,通过碰撞检测、贴图等一系列方法,完成了三个解谜关卡的设立与最后的场景漫游。

游戏视频

点击查看发布在bilibili上的程序视频❤️

内含文件

  • 《大作业报告.pdf》
  • 《游戏攻略.pdf》
  • 代码
  • 可执行文件

游戏核心内容

日式场景的搭建

本游戏基于的是glut框架,利用贴图搭建了整个游戏场景,整个游戏场景为两室一厅一庭院,在纸张上设计之后按照比例计算了各个点的坐标,铺设石子日式庭院地板、木地板、小提灯、天空盒等等。

关卡设计

本游戏设计了四个关卡,玩家需要通过游戏中 748D 提示进行解谜才能开启下一关卡,具体流程见下图。 image

鼠标cast射线与射线碰撞检测

鼠标点击之后从相机与前剪裁面发出一条射线,检测射线是否与场景中的物体进行相交。在本游戏中被运用在开门、收集物品、查看提示、放下提示上。

类似unity的玩家碰撞体效果

玩家无法越过边界穿越墙壁到另一个房间,并且在关卡一中的第一个机关是利用检测玩家是否与指定墙壁进行碰撞来计数触发下一场景的。实现的原理是先计算玩家移动位置,将位置与边界进行对比,如果越界则撤回移动操作。

程序化生成植物

分形树与分形竹子都是利用递归程序化生成,竹子的绘制只使用了线条,但效果不错。

尽量做到严谨的游戏机制

  • 玩家在查看提示时就无法进行走动,只有将提示放下之后才能走动。
  • 在第二关翻翻乐时,玩家只能翻开两个面具,想翻开第三个面具就必须将前面的面具取消翻开,这是利用多个布尔变量实现的
  • 玩家无法穿墙、无法越界走动等

悬浮查看提示板的效果

用户可以靠近游戏中提示的纸条并右键点击,通过坐标的平移变换实现无论用户如何用鼠标改变视角,始终都能在画面中看到提示而背后场景移动,模拟现实中将提示纸条拿起来看的效果。

尽量做到美观的游戏场景

  • 利用天空盒实现了山水背景.
  • 贴图实现了日式房屋的构建与装饰以及家具的呈现.
  • L系统与材质实现庭院中的竹子和分形树
  • 绘制墙壁时并没有整面墙直接绘制,而是镶嵌了浮世绘的贴图
  • 虽然只有两室一厅一庭院,但是每一关的场景都在发生变化以此达到更好的游戏效果

游戏音效

  • 触发机关会有游戏提示音效
  • 不同场景选取了不同基调的背景乐

游戏氛围

  • 天黑之后使用黄色的聚光灯来模拟手电筒效果增添解密游戏的神秘性。

全屏模式选择

采用win32编程框架,注册显示不同的窗口。

游戏表达

将文化元素与游戏融合并利用精选的背景乐达到良好的沉浸效果。系统中既有日本神话中的三大宝物、神秘的能剧面具,又有浓墨重彩的浮世绘,选用日本作曲家梅林茂所作的《阴阳师》和《日美子须佐》的曲子对应解密时的诡异与找寻到宝物时的神秘感,而在解密成功之后选用《春夜喜雨》的曲子表达恐怖紧张感驱散之后的轻松美好。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0