Share c++ 2d game tutorial,

binhdinhphan

New member
#C ++, #2D Trò chơi, #Game Development, #tutorial, #Programming ## C ++ Hướng dẫn trò chơi 2D

Hướng dẫn này sẽ dạy bạn cách tạo một trò chơi 2D đơn giản trong C ++.Chúng tôi sẽ sử dụng thư viện SFML, đây là thư viện đa nền tảng để tạo đồ họa, âm thanh và đầu vào 2D.

### Điều kiện tiên quyết

Trước khi bạn bắt đầu, bạn sẽ cần cài đặt các phần sau:

* Trình biên dịch C ++ (Tôi đang sử dụng Visual Studio 2019)
* Thư viện SFML
* Trình chỉnh sửa văn bản (tôi đang sử dụng mã Visual Studio)

### Bắt đầu

Để tạo một dự án mới, hãy mở Visual Studio và chọn tệp **> mới> Dự án **.Trong hộp thoại ** Dự án mới **, chọn ** Visual C ++> Windows Desktop> Dự án trống **.Đặt tên cho dự án "2Dgame" và nhấp vào ** OK **.

Điều này sẽ tạo ra một dự án mới với một tệp nguồn duy nhất có tên là "main.cpp".Chúng tôi sẽ cần thêm một số bao gồm vào tệp này:

`` `C ++
#include <sfml/graphics.hpp>
`` `

Chúng tôi cũng cần tạo một lớp mới cho trò chơi của chúng tôi:

`` `C ++
Trò chơi lớp {
công cộng:
void chạy ();
riêng tư:
SF :: Cửa sổ RenderWindow;
SF :: Người chơi Circleshape;
};
`` `

Phương thức `Run ()` là nơi chúng tôi sẽ xử lý vòng lặp trò chơi.Biến `window` là một tham chiếu đến cửa sổ SFML mà chúng tôi sẽ sử dụng để hiển thị trò chơi của chúng tôi.Biến `người chơi` là đối tượng SF :: Circleshape sẽ đại diện cho ký tự người chơi.

### vòng lặp trò chơi

Vòng lặp trò chơi là phần chính của bất kỳ trò chơi.Nó chịu trách nhiệm cập nhật trạng thái trò chơi, vẽ trò chơi lên màn hình và xử lý đầu vào từ người dùng.

Mã sau đây cho thấy cấu trúc cơ bản của một vòng lặp trò chơi:

`` `C ++
while (window.isopen ()) {
// Cập nhật trạng thái trò chơi.

// Vẽ trò chơi lên màn hình.

// Xử lý đầu vào từ người dùng.

// Kiểm tra xem trò chơi có nên thoát không.
}
`` `

Chúng tôi sẽ triển khai vòng lặp trò chơi trong phương thức `run ()` của lớp `game` của chúng tôi:

`` `C ++
Trò chơi void :: chạy () {
while (window.isopen ()) {
// Cập nhật trạng thái trò chơi.

// Vẽ trò chơi lên màn hình.

// Xử lý đầu vào từ người dùng.

// Kiểm tra xem trò chơi có nên thoát không.

window.display ();
}
}
`` `

### Vẽ trò chơi

Để vẽ trò chơi lên màn hình, chúng tôi sẽ sử dụng phương thức `SF :: RenderWindow :: Draw ()`.Phương pháp này lấy một đối tượng SF :: có thể vẽ làm đối số của nó.Đối tượng SF :: có thể vẽ là bất kỳ đối tượng nào có thể được vẽ vào màn hình.Trong trường hợp của chúng tôi, chúng tôi sẽ sử dụng các đối tượng SF :: Circleshape để vẽ ký tự người chơi.

Mã sau đây cho thấy cách vẽ đối tượng SF :: Circleshape lên màn hình:

`` `C ++
window.Draw (người chơi);
`` `

### Đầu vào xử lý

Chúng ta có thể xử lý đầu vào từ người dùng bằng lớp `sf :: event`.Lớp `SF :: Event` đại diện cho một sự kiện duy nhất xảy ra trong cửa sổ.Chúng ta có thể kiểm tra các sự kiện bằng phương thức `sf :: event :: poll ()`.Nếu một sự kiện xảy ra, chúng ta có thể nhận loại của nó bằng phương thức `sf :: event :: type ()`.

Mã sau đây cho thấy cách kiểm tra đầu vào bàn phím:

`` `C ++
Sự kiện SF :: Sự kiện;
while (window.pollevent (sự kiện)) {
if (event.type == sf :: event :: keypression) {
// Xử lý máy ép phím.
}
}
`` `

### Để tất cả chúng cùng nhau

Bây giờ chúng tôi đã đề cập đến những điều cơ bản về việc tạo ra một trò chơi 2D trong C ++, chúng tôi có thể kết hợp tất cả lại với nhau và tạo ra một trò chơi đơn giản.

Mã sau đây hiển thị mã nguồn đầy đủ cho trò chơi 2D đơn giản:

`` `C
=======================================
#C++, #2D game, #Game development, #tutorial, #Programming ## C++ 2D Game Tutorial

This tutorial will teach you how to create a simple 2D game in C++. We'll be using the SFML library, which is a cross-platform library for creating 2D graphics, audio, and input.

### Prerequisites

Before you begin, you'll need to have the following installed:

* A C++ compiler (I'm using Visual Studio 2019)
* The SFML library
* A text editor (I'm using Visual Studio Code)

### Getting Started

To create a new project, open Visual Studio and select **File > New > Project**. In the **New Project** dialog, select **Visual C++ > Windows Desktop > Empty Project**. Name the project "2DGame" and click **OK**.

This will create a new project with a single source file called "main.cpp". We'll need to add some includes to this file:

```c++
#include <SFML/Graphics.hpp>
```

We'll also need to create a new class for our game:

```c++
class Game {
public:
void run();
private:
sf::RenderWindow window;
sf::CircleShape player;
};
```

The `run()` method is where we'll handle the game loop. The `window` variable is a reference to the SFML window that we'll be using to display our game. The `player` variable is a sf::CircleShape object that will represent the player character.

### The Game Loop

The game loop is the main part of any game. It's responsible for updating the game state, drawing the game to the screen, and handling input from the user.

The following code shows the basic structure of a game loop:

```c++
while (window.isOpen()) {
// Update the game state.

// Draw the game to the screen.

// Handle input from the user.

// Check if the game should exit.
}
```

We'll implement the game loop in the `run()` method of our `Game` class:

```c++
void Game::run() {
while (window.isOpen()) {
// Update the game state.

// Draw the game to the screen.

// Handle input from the user.

// Check if the game should exit.

window.display();
}
}
```

### Drawing the Game

To draw the game to the screen, we'll use the `sf::RenderWindow::draw()` method. This method takes a sf::Drawable object as its argument. A sf::Drawable object is any object that can be drawn to the screen. In our case, we'll be using sf::CircleShape objects to draw the player character.

The following code shows how to draw a sf::CircleShape object to the screen:

```c++
window.draw(player);
```

### Handling Input

We can handle input from the user using the `sf::Event` class. The `sf::Event` class represents a single event that occurred in the window. We can check for events using the `sf::Event::poll()` method. If an event occurred, we can get its type using the `sf::Event::type()` method.

The following code shows how to check for keyboard input:

```c++
sf::Event event;
while (window.pollEvent(event)) {
if (event.type == sf::Event::KeyPressed) {
// Handle the key press.
}
}
```

### Putting It All Together

Now that we've covered the basics of creating a 2D game in C++, we can put it all together and create a simple game.

The following code shows the complete source code for a simple 2D game:

```c
 
Join Telegram ToolsKiemTrieuDoGroup
Back
Top