C++ 从零打造《超级马里奥》:会漂移掉头,还带刹车音效 | 您所在的位置:网站首页 › 超级马里奥jar › C++ 从零打造《超级马里奥》:会漂移掉头,还带刹车音效 |
你见过这样的超级马里奥吗? 跑着跑着突然停下来个帅气掉头,“踩”扁“板栗仔”(goomba)时直接“变酷”(得到一副墨镜): 这,就是一位油管博主用 C++ 和 SFML 自己从头制作的红白机版超级马里奥。 C++ 不用介绍,SFML 想必有很多人也熟悉,就是一个用来简化写小游戏或者多媒体应用程序的 API,包括系统,窗口,图形,音频和网络五大模块。 除了常规的功能和操作,你可以加入任何自己喜欢的元素。 由于画面看起来实在太逼真,有人甚至提醒博主:小心“版权狂魔”任天堂来找你哦! 心动么? 你也可以自己做一个~ 话不多说,来看教程。 手把手教你用 C++ 打造超级马里奥一共分为 4 大块。 1、基本控制 设置游戏窗口大小为 256x240。 我们先自己绘制一个留胡子的小伙子 —— 马里奥。 通过函数将它载入程序。 Mario::Mario() : x(0.5f * SCREEN_WIDTH), y(0.5f * SCREEN_HEIGHT) { texture.loadFromFile("Resources/Images/Mario.png"); sprite.setTexture(texture); } void Mario::draw(sf: :RenderWindow& i_window) { sprite.setPosition(round(x), round(y)); i_window.draw(sprite); }得到这样的界面: 然后处理地图,由于地图的宽度不同,将它存储为数组向量。 typedef std::vector Map;sf::Texture map_texture; map_texture.1oadFromFile("Resources/Images/Map.png"); Map map(SCREEN_WIDTH/CELL_SIZE); Mario mario; for(unsigned short a = θ; a |
CopyRight 2018-2019 实验室设备网 版权所有 |