From 18ca65a550c25ed69dcf8b75e7b8862458e11025 Mon Sep 17 00:00:00 2001 From: totycro Date: Sun, 10 Apr 2011 01:00:37 +0200 Subject: Added primitive game logic (make pacman avoid walls) --- pacman-c++/mainwidget.cpp | 1 - pacman-c++/server.cpp | 10 +++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'pacman-c++') diff --git a/pacman-c++/mainwidget.cpp b/pacman-c++/mainwidget.cpp index 25f554a..b140871 100644 --- a/pacman-c++/mainwidget.cpp +++ b/pacman-c++/mainwidget.cpp @@ -165,7 +165,6 @@ void MainWidget::tick() ++i; } } - updateMap(map); } } diff --git a/pacman-c++/server.cpp b/pacman-c++/server.cpp index 422f7e0..7e467e5 100644 --- a/pacman-c++/server.cpp +++ b/pacman-c++/server.cpp @@ -4,6 +4,7 @@ #include #include "util.h" #include "pacman.pb.h" +#include "block.h" Server::Server(QWidget *parent) : SceneHolder(parent) @@ -39,7 +40,6 @@ Transmission::map_t Server::calculateUpdates() Actor *actor = m_actors.value( i.key() ); QPoint mapPosition = CoordToMapPosition(actor->x(), actor->y()); qDebug() << "actor " << i.key() << " is at " << mapPosition; - map[mapPosition.x()][mapPosition.y()] = Transmission::empty; QPoint newMapPosition = mapPosition; switch (i.value()) { @@ -50,6 +50,14 @@ Transmission::map_t Server::calculateUpdates() case Actor::None: break; default: Q_ASSERT(false); } + + // + if(dynamic_cast(visualMap[newMapPosition.x()][newMapPosition.y()]) != 0) { + continue; + } + // + + map[mapPosition.x()][mapPosition.y()] = Transmission::empty; map[newMapPosition.x()][newMapPosition.y()] = Transmission::pacman | i.key() | Util::actorMovementToTransmission(i.value()) ; -- cgit v1.2.3