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

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


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

相关文章推荐

Socket编程——基于TCP实现自己的通信协议

假如我们要做一个C/S型的程序设计,服务端和客户端使用TCP通信,这时就需要在TCP协议之上,选择一个合适的应用层协议,如果不喜欢已有的协议,那就需要自己去实现一个协议规程,现在我们就要去完成一个图1...

基于QT的TCP协议实现的通信小程序(另一种)

服务端://main.cpp#include "dialog.h"#include int main(int argc, char** argv){ QApplication app(argc,arg...
  • intint
  • intint
  • 2009-09-07 13:10
  • 2314

qt在实现tcp通信

#include "clienttest.h" #include "ui_clienttest.h" #include Clienttest::Clienttest(QWidget *pa...

使用QTcpSocket和QTcpServer进行TCP编程

使用QTcpSocket和QTcpServer进行TCP编程        TCP(传输控制协议)是被大多数英特网协议(包括HTTP和FTP)使用的底层网络协议,主要用于数据传输。它是可靠的,面向...

TCP自定义数据包的Socket编程(一)

java在网络方面的出色表现相信大家有目共睹,用java做Socket编程是件有趣的事情,下面是实际项目中的代码,初学者可能觉得不是那么浅显易懂,所以加入了详细注释,废话不多说了服务端代码如下: ...
  • e_wsq
  • e_wsq
  • 2013-10-16 03:11
  • 2054

基于QT的TCP协议实现的通信小程序

//////////////////////////client端/////////////////////////////////////////////////////////////////ma...
  • intint
  • intint
  • 2009-09-07 13:08
  • 6059

基于QT的UDP协议的通信小程序

////////1端/////////////////////////////////////////////////////////////main1.cpp///////////////////#...
  • intint
  • intint
  • 2009-09-07 13:07
  • 7801

Qt tcp/ip 通信

折腾了很久TCP IP通信机制。   以前虽然看过bsd tcp/ip的so called 基础通信代码。什么bind, listen ,accept , receive, write, read...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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