RPG游戏(一)——环境搭建、地图显示

原创 2015年11月17日 16:55:38

RPG游戏与rogue游戏类似,如经典RPG游戏“口袋妖怪”。我们组选择用Qt开发一个类似的游戏,作为“嵌入式linux开发”这门课的大作业。环境搭建:安装Qt、安装Tiledmap(一款地图编辑器)。地图制作与显示:用tiledmap软件生成地图位置信息——编写Qt代码加载素材——分割素材——按地图位置信息贴图。闲话不多说,下面放代码

mainwindow.h

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QImage>
#include <QPainter>

namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();
public:
    void paintEvent(QPaintEvent *e);
private:
    Ui::MainWindow *ui;
    QImage all;
    QImage tiles[256];
};

#endif // MAINWINDOW_H


mainwindow.cpp

<pre name="code" class="cpp">#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
int map_data[] = {71,72,71,72,2,2,202,202,202,0,
                  87,88,87,88,2,2,218,218,218,0,
                  145,146,210,210,71,72,0,0,202,0,
                  161,162,226,226,87,88,0,0,218,0,
                  145,146,210,210,71,72,0,0,0,0,
                  161,162,226,226,87,88,0,0,0,0,
                  0,0,145,146,145,146,0,0,0,0,
                  0,0,161,162,161,162,0,0,0,0,
                  0,0,0,0,0,0,0,0,0,0,
                  0,0,0,0,0,0,0,0,0,0};
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    all.load("C:/Users/jupeizhong/Desktop/Qt/RPG/tiles/TileB.png");
    for (int i = 0;i < 16;++i)
        for (int j = 0;j < 16;++j)
            tiles[i * 16 + j] = all.copy(QRect(j*32, i*32, 32, 32));
}
void MainWindow::paintEvent(QPaintEvent *e)
{
    QPainter *pa;
    pa = new QPainter();
    pa->begin(this);
    for (int i = 0;i < 10;++i)
        for (int j = 0;j < 10;++j)
            if (map_data[i*10+j] != 0)
                pa->drawImage(j * 32, i * 32, tiles[map_data[i*10+j]-1]);
    pa->drawImage(0, 0, tiles[18]);
    pa->end();
    delete pa;
}

MainWindow::~MainWindow()
{
    delete ui;
}


main.cpp

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}
运行效果:

所用素材,即TileB.png

注:本系列博客所包含素材来源于互联网,请勿用于商业用途。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

游戏开发笔记之十 基础动画显示(三) 透明动画的实现

"透明动画”是游戏中一定会用到的基本技巧,它通过图案的连续显示及图案本身背景的透明化处理,在背景图上产生出栩栩如生的动画效果。 看过之前笔记的朋友们应该知道,在笔记六里我们介绍了使位图背景透...

duilib 窗口问题

1.使用UIDesigner设计窗口时,要把随窗口最大化而最大化的布局或控件Pos属性设为0,0,0,0,否则窗口最大化布局或控件不变。 2.拖动窗口的消息在OnNcHitTest中,判断point...
  • mail_cm
  • mail_cm
  • 2012年05月21日 14:47
  • 1709

SpriteBuilder中使用GUI界面快速搭建RPG游戏中的地图名显示动画

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 在RPG游戏中我们在进入一个新的场景时,比如一个房间,一个...
  • mydo
  • mydo
  • 2015年12月24日 07:51
  • 1106

如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现

一,话说天下大事 前不久看到lufy的博客上,有一位朋友想要一个RPG游戏引擎,出于兴趣准备动手做一做。由于我研究lufylegend有一段时间了,对它有一定的依赖性,因此就准备将这个引擎基于luf...

AndroidStudio下加入百度地图的使用(一)——环境搭建

AndroidStudio下加入百度地图的使用(一)——环境搭建   最近有学生要做毕业设计,会使用到定位及地图信息的功能,特此研究了一下,供大家参考,百度定位SDK已经更新到了5.0,地图SDK已经...

如何成为一个游戏制作人——第二章:如何开始你的编程(开发环境搭建、C++语言适应)

 如何成为一个游戏制作人——第二章:如何开始你的编程   小故事:上节说到我六年级打开了那本C语言的书,然后事实上我还是没看懂。好像看懂了一些printf语句。之后遇到了史无前例的困难——怎...

【2】Windows游戏安全之路——Windows核心编程之环境搭建

Windows核心编程【驱动开发环境搭建】 配置环境: Windows 7VS 2013WDK 8.1VirtualBox 5.0 附:WDK 8.1 + VS 2013下载地址 安装步...

模块0——eclipse环境搭建.ppt

  • 2011年09月21日 14:58
  • 1.33MB
  • 下载

HTML5游戏开发/微信游戏开发——Cocos2dx-js开发环境搭建(win32平台)

HTML5游戏开发/微信游戏开发——Cocos2dx-js开发环境搭建(win32平台) 一、须下载的软件/包 开发环境为xp sp3,cocos2d-x 3.0,用到以下软件 1、python2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:RPG游戏(一)——环境搭建、地图显示
举报原因:
原因补充:

(最多只允许输入30个字)