C语言程序设计实习项目

闲来无事做做总结~感叹自己年少无知,当初设计的界面真的是毫无美感啊。。。但一番心血,留下自己成长的痕迹。

  • 灵感来源:以宫崎骏经典动漫《龙猫》中的龙猫和煤球为原型,设计的一款线上闯关小游戏。
  • 开发工具:Funcod平台,CodeBlocks,PhotoShop。
  • 项目名称:多多洛之迷失森林

目录

一、作品概述
1.1 背景故事
1.2 作品创意
1.3 主要功能
1.4 创新点
二、功能设计
三、功能实现
3.1 数据结构
3.2 算法描述
3.2.1 精灵的初始化
3.2.2 游戏开始和控制按钮
3.3 关键问题
3.3.1 人物二连跳系列问题
3.3.2 游戏中途难度加大
3.3.3 人物动画制作
四、系统界面
五、小组分工
六、总结

一、作品概述

1.1 背景故事
居住在森林深处的龙猫(又名多多洛)一族,数千年来很少在人前露面,但都是由于近些年来大自然受到破坏,越来越多的灰尘精灵入侵,打破了原本宁静的森林环境。于是多多洛一行决定召唤猫车巴士,走出森林,向外界寻求帮助。
但是邪恶的灰尘精灵在森林中设置了重重关卡,多多洛一不小心就会迷失在森林中。它们为找到通关大门,一路上躲避灰尘精灵的袭击,并收集能召唤出猫车巴士的能量球。
勇敢的三只龙猫日夜兼程,终于突破重围乘坐猫车巴士找到了它们的好朋友小月和小梅,消灭了灰尘精灵。他们又可以在森林中享受风吹虫鸣,自由地玩耍了。
1.2作品创意
1.素材选取:取材于宫崎骏动漫《龙猫》,勾起人们的童年回忆,使用PS等软件进行处理后,重新设计组合成游戏画面。
2.人物弹跳:龙猫可以通过上下左右键实现连跳和游动。
3.精灵之间碰撞:龙猫与台阶、龙猫与彩球、龙猫与煤球的碰撞效果不同。
4.路的拼接:每一关台阶的数量和效果不同,随着难度增加,数量会减少,宽度变小(使难以停留),通关门的虚实和出现也不同。
5.背景音乐:主旋律《我的邻居龙猫》,贴合故事背景和人物设计。
6.背景滚动:采用3层以上图片实现基本3D效果;同时每一层图片的速度不同,从而给玩家一种视觉上的冲击;多次场景调换,没有重复感。
1.3 主要功能
1.通过上、下、左、右键来控制龙猫的弹跳行动,实现碰撞积分,操作简单,但要求用键的灵活性。
2.龙猫需要躲避煤球,利用人物的连跳,考验玩家的反应能力和灵活性。
3.煤球从上边界随机出现,彩球在第二、三关从左右边界随机出现,同时改变X和Y方向的速度。并且在第三关会有煤球和彩球的碰撞,增加游戏的难度和不确定性。
4.通关门设置真假、隐藏功能;台阶的用以支撑龙猫不能掉下来,同时每一关的数量、位置不同,增加游戏难度。
5.每一关必须在一定时间内,把所有的彩球(10个)吃完,然后找到门,才能进入下一关。
1.4 创新点
1.每一关选用不同年龄阶段的龙猫(幼年、少年、成年),增强画面和故事性。
2.第三关煤球和煤球,彩球和彩球,煤球和彩球之间会发生碰撞而拥堵,造成道路堵塞,所以龙猫需要及时躲避煤球,吃掉彩球才可以。

二、功能设计

1.游戏运行,初始界面会出现**‘play’**的提示,并且游戏的主要人物龙猫和煤球会出现在界面,并设有眨眼的特效,鼠标变为煤球的样子。
2.玩家鼠标左键单击开始游戏,进入选关界面,鼠标左键单击相应的关卡开始游戏。
3.游戏开始后,玩家每按一次上键和右键或上键和左键,龙猫会向右上或左上方向移动相应距离,当松开按键龙猫会自动落下,从而产生跳的效果。当玩家每按一次键盘,龙猫会在当前的位置向相应的方向移动一段距离,从而产生连跳的特效。
4.游戏中,玩家控制的龙猫如果碰到彩球,则会增加一定分数。
5.每过一关游戏设置都不相同,龙猫从小到大,且每一关都是不同的样子,彩球从静到动,通关门从一个到三个再到消失,从而增加游戏难度。
6.当玩家失误,龙猫碰到煤球或下边界,或生命时间减到0,就会出现游戏失败结束界面,单击鼠标左键再次进行选关。
7.玩家成功通关以后,会出现胜利的通关界面。单击鼠标左键可重新挑战游戏。

三、功能实现

3.1 数据结构

3.2 算法描述
游戏状态g_iGameState分为三种状态0,1,2 ,其中0表示游戏结束状态,1表示游戏初始化,2则表示游戏运行状态。
0 1的转换为点击相应的按键。
1 2的转换自然发生,即游戏初始化函数后会自动将游戏状态从1置为2。
2 表示游戏运行状态,在该状态,敲击上、下、左、右键可以使人物运动。
2 0的转换为当前局结束,转换新的场景。
3.2.1 精灵的初始化
1.创建煤球、彩球的模板,并保存。
2.创建龙猫和台阶,放于游戏界面内。
3.根据怪物、彩球模板复制相应的精灵,初始化速度。
4.初始人物和障碍物的位置以及开始游戏。
3.2.2 游戏开始和控制按钮
1.游戏还未开始,即游戏状态为0,如果点击开始按钮,则将游戏状态改为1,此时对程序的数据进行初始化。循环一次之后,游戏的状态变为2,此时游戏开始运行。
2.如果按上键时,“人物”会向Y轴负方向移动相应距离,再次按上后,”人物“会在当前位置上移动相应距离。并且动作连贯,形成跳跃的效果。
3.每个关卡会实时显示时间和所得分数。每一关卡结束后会出现过关界面,点击鼠标左键开始下一关。若游戏失败,会出现游戏结束界面,点击鼠标左键重新选择关卡进行游戏。
3.3 关键问题
3.3.1 龙猫连续跳系列问题
答:给龙猫设置一个向下的常力,龙猫不踩台阶时会自动落下,按住上键可使龙猫上升,由于动作连续,可形成连续跳跃的效果。
3.3.2 道路拼接设置
答:第一关相对简单,彩球静止不动,龙猫吃掉所有彩球到达通关门即可过关。第二关彩球从左右屏幕随机出现,并且三个门之中只有一个门是真的,且当龙猫碰到某个假门时台阶会消失。第三关彩球从左右屏幕随机出现,通关门消失,只有完成指定任务后门才会出现。
3.3.3 人物动画制作
答:我们的动画先用photoshop裁剪,然后根据标尺,精确定位。然后计算图片制作时所需要减去的宽度,制作一张包含各帧的图片,最后进行制作动画。

四、系统界面


图4-1 开始游戏界面


图4-2 第一关界面


图4-3 选关界面


图4-4 第二关界面


图4-5 第三关界面


图4-6 失败界面


图4-7 通关界面


图4-8 成功界面

五、小组分工

六、总结

C语言程序设计实习项目相关推荐

  1. 学号程序编辑 c语言,C语言程序设计实习报告 行编辑器 学生管理系统

    <C语言程序设计实习报告 行编辑器 学生管理系统>由会员分享,可在线阅读,更多相关<C语言程序设计实习报告 行编辑器 学生管理系统(47页珍藏版)>请在人人文库网上搜索. 1. ...

  2. python语言程序设计项目_《Python语言程序设计》项目报告书Word版

    <<Python语言程序设计>项目报告书Word版>由会员分享,可在线阅读,更多相关<<Python语言程序设计>项目报告书Word版(8页珍藏版)>请 ...

  3. c语言程序设计作业心得,C语言程序设计实习心得体会

    C 语言程序设计实习心得体会 在这个星期里,我们的学生在老师的带领下进行了 c 语言程序实习学习.在这之前,我们已经对 c 语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围 ...

  4. 大学生c语言程序设计具体干什么,大学生c语言程序设计实习报告.doc

    大学生c语言程序设计实习报告 实习是我们的必经之路,很多时候我们都不知道自己为什么要去实习,但就是遵从我们心里的想法-去实习.实习给予我们的不仅仅是专业上的技巧,还有社会的经验,也许这个对我们才是最重 ...

  5. c语言程序实习报告,c语言程序设计实习报告程序

    <c语言程序设计实习报告程序>由会员分享,可在线阅读,更多相关<c语言程序设计实习报告程序(12页珍藏版)>请在人人文库网上搜索. 1.include stdio.h/* 定义 ...

  6. c语言程序设计添加修改删除,C语言程序设计实习报告,DOC

    <C语言程序设计实习报告,DOC>由会员分享,可在线阅读,更多相关<C语言程序设计实习报告,DOC(15页珍藏版)>请在人人文库网上搜索. 1.手机通讯录管理系统一.设计题目的 ...

  7. c语言程序设计实践指导,C语言程序设计实习指导及报告.docx

    C语言程序设计实习指导 C语言课组编写 西北农林科技大学信息工程学院 2010年2月 程序设讣是实践性很强的课程,实习的目的是为了巩固所学知识,培养.提高实际动手能 力和严肃认真的科学工作态度,而程序 ...

  8. c语言实战项目ppt,c语言程序设计与项目实践第5章.ppt

    <c语言程序设计与项目实践第5章.ppt>由会员分享,可在线阅读,更多相关<c语言程序设计与项目实践第5章.ppt(28页珍藏版)>请在装配图网上搜索. 1.第5章 分支结构程 ...

  9. C语言循环语句实训项目,C语言程序设计与项目实训

    C语言程序设计与项目实训 编辑 锁定 讨论 上传视频 <C语言程序设计与项目实训>是2013年清华大学出版社出版的图书,作者是吴艳平.徐海燕. 书    名 C语言程序设计与项目实训 作  ...

最新文章

  1. zbb20180827 java获取字符串中所有汉字
  2. SEO和Social工具.doc
  3. CTFshow 反序列化 web266
  4. 针对多类型数据库,集群数据库的有序GUID
  5. 编译实验(三)目标代码生成
  6. python入门教程基础语法_python入门教程13-02 (python语法入门之库相关操作)
  7. 【Android应用】 九宫格日志
  8. PHP利用JWT实现token和refresh_token
  9. 最短路:dijkstra算法
  10. 如何采用SQL Server身份验证登录
  11. MAC安装chromedriver碰到的问题
  12. spring-retry
  13. 【LeetCode】1427、字符串的左右移
  14. cocos creator经典游戏英文版《俄罗斯方块》源码H5+安卓+IOS三端源码
  15. Keil(MDK-ARM)的安装与注册【MDK和C51共存】
  16. 如何实现水泥窑分散点信号集中控制?
  17. 解读《领域驱动设计 软件核心复杂性应对之道》(一)
  18. Understanding OpenStack Authentication: Keyston...
  19. 独家采访 | 苹果首篇AI论文获奖遭质疑,是价值有限还是实至名归?
  20. LintCode 算法部分入门题目 【C++】

热门文章

  1. hibernate电子书免费下载
  2. mysql 左对齐_CSS:左对齐标签,右对齐(CSS : Align label left, text right)
  3. js对象继承的方式-三种 +三种
  4. 荣誉丨国辰机器人荣获维科杯•OFweek 2021中国机器人行业年度优秀应用案例奖
  5. C# 微信公众号导出历史文章
  6. One Piece!
  7. linux配置微信支付的api证书,API证书及密钥
  8. ROS 教育越野机器人TRANSBOT 新品发布
  9. SPARK+LIVY
  10. CTF工具下载(上)