Tôi có khá nhiều kinh nghiệm về PHP (khoảng 5 năm kinh nghiệm với một số trang web được tạo và hai trò chơi trình duyệt). Đây là lần đầu tiên tôi thực sự rối tung xung quanh với một công cụ cốt lõi thay vì chỉ phát triển một plugin hoặc mô-đun cho một cái gì đó như Joomla. Tôi có nhiều kinh nghiệm về các ngôn ngữ hướng đối tượng khác (như Java).Phát triển trò chơi Codeigniter
Câu hỏi của tôi là, tôi thấy mình phát triển trang web giống như một trang web bình thường, nhưng tôi muốn nó linh hoạt hơn và tôi không chắc mình đang làm điều đó đúng. Theo một cách nào đó, tôi cảm thấy mình đang xây dựng một nửa CMS.
Ví dụ: tôi có trang chính được thiết lập thông qua bộ điều khiển kiểm soát chế độ xem hiện đang được hiển thị. Trang xem chính trông giống như sau:
<?php $this->load->view("headerview"); ?>
<?php $this->load->view($contentview); ?>
<?php $this->load->view("footerview"); ?>
trong chính tệp chế độ xem, vì vậy tôi có thể tự động tải nội dung, những người khác không thực sự thay đổi). Đây là câu hỏi đầu tiên của tôi, vì tôi làm tất cả các điều khiển thông qua tập tin điều khiển chính của tôi, điều này có đúng không?
Chức năng chỉ mục của tôi đặt chế độ xem chính là chế độ xem được tải với các biến cho “lượt xem nội dung” và “số lần xem”. Khi “contentview” là trò chơi, nó có một ngăn chia nhỏ, một hiển thị số liệu thống kê của người chơi và phần còn lại hiển thị trang nào người chơi hiện đang ở (cửa hàng thương gia, trong một trận chiến, khám phá thế giới, v.v.). Điều xác định những gì đang được hiển thị ở đây là biến "gamecontent" (cũng được truyền trong bộ điều khiển "chính").
<?php $this->load->view("menubar"); ?>
<?php $this->load->view($gamecontent); ?>
Trong ngắn hạn, tất cả xử lý chế độ xem hiện đang được thực hiện trong bộ điều khiển chính, tức là một bộ điều khiển duy nhất.
$data['title'] = "Experimental Page";
$data['maincontent'] = "gameview";
if($page == 1) {
$data['gamecontent'] = "townview";
} else if ($page == 2) {
$data['gamecontent'] = "merchantview";
} else if ($page == 3) {
$data['gamecontent'] = "explorationview";
} else if ($page == 4) {
$data['gamecontent'] = "hospitalview";
} else if ($page == 5) {
$data['gamecontent'] = "fightview";
} else if ($page == 6) {
$data['gamecontent'] = "adminview";
}
$this->load->helper(array('form','url'));
$this->load->library('form_validation');
$this->load->view('mainview', $data);
Tôi chưa bắt đầu thêm chức năng chiến đấu và mua sắm, nhưng tôi có thể thấy bộ điều khiển này rất lớn, rất nhanh. Điều này có vẻ sai với tôi, nhưng bằng cách nào đó tôi không thể xây dựng cách sắp xếp chính xác thiết lập cốt lõi. Mục tiêu của tôi là (hy vọng) phân chia các bộ điều khiển để mỗi người xử lý một chức năng trò chơi riêng biệt, như chữa bệnh, chiến đấu, khám phá và vân vân, và được tách ra giống như các mô hình của tôi là (người dùng, mob, vật phẩm, ...). v.v.)
Có ai có thể giúp tôi tìm ra cách sắp xếp hợp lý dự án này không?
Hơi không liên quan, nhưng tất cả các điều kiện đó có thể được thay thế bằng bảng tra cứu, ví dụ: '$ table = array (" townview "," merchantview "," explorationview ", ...); $ data ['gamecontent'] = $ table [$ page - 1]; 'hoặc một cái gì đó dọc theo những dòng đó. Sau đó, bạn có thể tách nội dung trò chơi thành "tệp cấu hình" riêng của mình và có phân tích cú pháp PHP (và lưu vào bộ nhớ cache), nhưng điều đó có thể quá mức nếu bạn không có nhiều dữ liệu để duy trì. –
Đó là một lượng dữ liệu hợp lý nhỏ, tôi nhận ra mình có thể lưu trữ các trang theo nhiều cách, nhưng đây thực sự là để hoàn thành công việc :) – Organiccat
Tôi phát triển một trò chơi bằng mã đánh lửa (poker, không kém) và đi xuống cùng một con đường bạn đang tìm kiếm chính mình. Nhìn lại, symfony cung cấp một kiến trúc tốt hơn cho việc này. – Dolph