ich arbeite gerade an einen Projekt eines Point and Click adventure.
Ich habe vorgestellt ein Rechteck zu benutzen als Spielfigur und später dann eine Textur drüber zu legen.
ich kann die figur mit dem Pfeiltasten auch schon bewegen nur mit der maus hapert es, ich weiß nicht
wie ich ein MouseMoveEvent bei einen Rectangle anwenden.
Ich hoffe jemand versteht mein problem und kann mir dabei helfen.
den Code habe ich angehangen und ich habe die Speicherverwaltung noch nicht gemacht,
weil ich zuerst die Funktionalität haben möchte wird später mit SharedPointer gemacht.
Hier der Code:
Code: Alles auswählen
MyRect.h
#ifndef MYRECT_H
#define MYRECT_H
#include <QGraphicsRectItem>
#include <QKeyEvent>
#include <QMouseEvent>
#include <QGraphicsScene>
#include <QGraphicsView>
class MyRect: public QGraphicsRectItem{
public:
void keyPressEvent(QKeyEvent *event);
};
#endif // MYRECT_H
MyRect.cpp
#include "MyRect.h"
void MyRect::keyPressEvent(QKeyEvent *event)
{
if(event->key() == Qt::Key_Left){
setPos(x()-10,y());
}
else if(event->key() == Qt::Key_Right){
setPos(x()+10,y());
}
else if(event->key() == Qt::Key_Up){
setPos(x(),y()-10);
}
else if(event->key() == Qt::Key_Down){
setPos(x(),y()+10);
}
}
main.cpp
#include <QApplication>
#include "MyRect.h"
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QGraphicsScene *scene = new QGraphicsScene();
MyRect *rect = new MyRect();
rect->setRect(0,0,100,100);
scene->addItem(rect);
rect->setFlag(QGraphicsItem::ItemIsFocusable);
rect->setFocus();
QGraphicsView *view = new QGraphicsView(scene);
view->show();
view->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
view->setVerticalScrollBarPolicy (Qt::ScrollBarAlwaysOff);
return a.exec();
}
Basti1990