diff --git a/frontend/core/src/com/game/tankwars/controller/GameController.java b/frontend/core/src/com/game/tankwars/controller/GameController.java
index 78b7051e1c2ca304cc7b27635e5571f066b24672..0d5660915c4d08e575cb32885de869f7974b01f9 100644
--- a/frontend/core/src/com/game/tankwars/controller/GameController.java
+++ b/frontend/core/src/com/game/tankwars/controller/GameController.java
@@ -2,6 +2,8 @@ package com.game.tankwars.controller;
 
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.Input;
+import com.badlogic.gdx.graphics.OrthographicCamera;
+import com.badlogic.gdx.math.Vector3;
 import com.badlogic.gdx.scenes.scene2d.Actor;
 import com.badlogic.gdx.scenes.scene2d.InputEvent;
 import com.badlogic.gdx.scenes.scene2d.InputListener;
@@ -21,6 +23,8 @@ public class GameController {
 
     private Bullet bullet;
 
+    private Vector3 touchPos;
+
     private boolean moveRightTouched;
     private boolean moveLeftTouched;
 
@@ -28,6 +32,8 @@ public class GameController {
         this.hud = hud;
         this.tank = tank;
         this.tankWarsGame = tankWarsGame;
+
+        this.touchPos = new Vector3();
     }
 
     public void checkKeyInput(Tank tank){
@@ -96,6 +102,16 @@ public class GameController {
 
     }
 
+    public void handleTouchInput(OrthographicCamera camera) {
+        if(Gdx.input.isTouched()) {
+            touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
+            camera.unproject(touchPos);
+
+            tank.rotateCannon(touchPos);
+
+        }
+    }
+
     public boolean endPlayerTurn() {
         System.out.println(tank.getPower());
         System.out.println(tank.getPosition());
diff --git a/frontend/core/src/com/game/tankwars/model/Tank.java b/frontend/core/src/com/game/tankwars/model/Tank.java
index b042a698ea7fd5a67a2e16780e25083e2fb94495..9be2cd6fd0d68a11de58b35d09b79757d3830a71 100644
--- a/frontend/core/src/com/game/tankwars/model/Tank.java
+++ b/frontend/core/src/com/game/tankwars/model/Tank.java
@@ -3,8 +3,10 @@ package com.game.tankwars.model;
 import com.badlogic.gdx.Gdx;
 import com.badlogic.gdx.graphics.Texture;
 import com.badlogic.gdx.graphics.g2d.Sprite;
+import com.badlogic.gdx.math.MathUtils;
 import com.badlogic.gdx.math.Rectangle;
 import com.badlogic.gdx.math.Vector2;
+import com.badlogic.gdx.math.Vector3;
 import com.badlogic.gdx.physics.box2d.Body;
 import com.badlogic.gdx.physics.box2d.BodyDef;
 import com.badlogic.gdx.physics.box2d.FixtureDef;
@@ -161,6 +163,21 @@ public class Tank {
         }
     }
 
+    public void rotateCannon(Vector3 touchPos) {
+        if(cannonAngle > 90 || cannonAngle < -90) {
+            return;
+        }
+        cannonAngle = calculateAngleFromTouch(touchPos);
+    }
+
+    private float calculateAngleFromTouch(Vector3 touchPos) {
+        System.out.println(touchPos.toString());
+        float angle = (MathUtils.atan2(touchPos.y, touchPos.x)) - (MathUtils.atan2(chassis.getPosition().y, chassis.getPosition().x));
+        angle *= MathUtils.radiansToDegrees;
+        System.out.println(angle);
+        return angle;
+    }
+
     public float getCannonAngle(){
         return cannonAngle;
     }
diff --git a/frontend/core/src/com/game/tankwars/view/GameScreen.java b/frontend/core/src/com/game/tankwars/view/GameScreen.java
index 8db938accdaf4e9dd39000ce52d4ffbd809da3c0..dbe7434fbde595afaf2f216c2913b209a3b680d8 100644
--- a/frontend/core/src/com/game/tankwars/view/GameScreen.java
+++ b/frontend/core/src/com/game/tankwars/view/GameScreen.java
@@ -106,6 +106,8 @@ public class GameScreen implements Screen {
 
         controller.checkKeyInput(myTank);
 
+        controller.handleTouchInput(worldCam);
+
         Array<Body> bodies = new Array<Body>();
         world.getBodies(bodies);