Witam,
napisałem sobie taką małą klasę, która odpowiada za pozycję użytkownika na mapie i chciałbym spytać czy to w ogóle ma coś wspólnego z OOP, co poprawić, jak ją lepiej napisać?
class Map {
private $position_x;
private $position_y;
private $uesr_id;
private $action_query;
public function __construct()
{
$this->position_x = $_POST['position_x'];
$this->position_y = $_POST['position_y'];
$this->user_id = $_SESSION['id'];
}
public function doDate ()
// funkcja odpowiada za rozdzielenie daty z postaci unixowej na godziny minuty i sekundy abym mógł potem przekazać je do odliczania w JS.
// w tabeli 'aciotn' przechowuję id użytkonika poruszającego się po mapie, nowe współrzędne oraz czas rozpoczęcia i zakończenia wędrówki
{
$record_exist = mysql_query("SELECT * FROM `action` WHERE userid = '{$this->user_id}'");
$last_sec = $w['end_time'] - time();
$last_day = floor($last_sec/86400
); $last_hour = floor(($last_sec - $last_day*86400
)/3600
); $last_min = floor(($last_sec - $last_day*86400
- $last_hour*3600
)/60
); $last_sec = $last_sec - $last_day*86400 - $last_hour*3600 - $last_min*60;
$time = array($last_hour, $last_min, $last_sec); return $time;
}
else
return false;
}
public function endTime ()
//funkcja odpowiada za obliczenie czasu zakończenia wędrówki na podstawie współrzędnych przed rozpoczęciem wędrówki jak i miejsca
//docelowego
{
$end_time_query = mysql_query("SELECT * FROM `character` WHERE userid = '$this->user_id'"); $position = $w['position'];
$end_time = time() + round(sqrt
(pow
(abs($pos[0
] - $this->position_x), 2
) + pow
(abs($pos[1
] - $this->position_y), 2
)), 2
); return $end_time;
}
public function position ()
// w bazie przechowuje współrzędne w postaci np: 450,655. Ta funkcja wyświetla pozycje wszystkich graczy rozdzielając współrzędne na x i y.
{
$position_query = mysql_query("SELECT * FROM `character` "); $i = 0;
$position = $w['position'];
$arr[$i] = $pos[0];
$arr[$i+1] = $pos[1];
$i+=2;
}
return $arr ;
}
public function changePosition()
// dodanie do tabeli action informacji o danym poruszaniu się (kto, o której, do której, i gdzie)
{
mysql_query("INSERT INTO action (userid, start_time, end_time, new_position) value ('{$this->user_id}', '$start_time', '{$this->endTime()}', '{$this->position_x},{$this->position_y}')"); }
public function updatePosition()
// po odliczeniu czasu w jakim uzytkownik będzie się przemieszczał na nową lokalizację funkca ta usunie akcje z tabeli "action" i uaktualni obecne położenie uzytkownika
{
$update_position_query = mysql_query("SELECT * FROM `action` WHERE userid = '{$this->user_id}'");
$new_position = $w['new_position'];
mysql_query("UPDATE `character` SET `position` = '$new_position' WHERE userid = '{$this->user_id}'"); mysql_query("DELETE FROM `action` WHERE `userid` = '{$this->user_id}'");
}
}
}
Dopiero zaczyna pisać klasy w php i chciałbym nabierać dobrych nawyków więc byłbym wdzięczny za uwagi (IMG:
style_emoticons/default/smile.gif)
Pozdrawiam.