Quyển 2 - Gia đình ruồng bỏ

Chương 92: Thảo luận, hiệp định và nội dung ván khúc côn cầu trên không 2

Chương 92: Thảo luận, hiệp định và nội dung ván khúc côn cầu trên không 2

Chương 92: Cuộc Đàm Phán, Hiệp Định và Nội Dung Game Air Hockey (Phần 2)

Chúng tôi vẫn đang ở trong phòng sinh hoạt của câu lạc bộ Omoken.

“Maira tiểu thư, tôi có thể nói chuyện riêng với cô một lát không?”

Ớ ớ, Recti định gây chiến với Maira sao? Cái cảnh tranh giành này thì xin miễn cho tôi.

“Gì chứ!”

Gay rồi, Maira đã sẵn sàng lâm chiến. Nếu cô ấy mà rút đoản kiếm ra, tôi sẽ ôm chặt lấy để ngăn lại. Dù không chắc có giữ được cô ấy hay không.

“Tôi nghĩ chúng ta nên hòa thuận với nhau thì hơn.”

Phù, may quá. Tôi vốn nghĩ Recti không phải người nóng nảy đến mức đó, nhưng dù sao cô ấy cũng là gián điệp mà.

“Ý cô là sao?”

“Việc khiến Taito khó xử, hẳn cũng không phải điều cô mong muốn phải không?”

“Rồi sao nữa?”

“Chẳng phải chúng ta nên ký một hiệp ước sao?”

“À, ra vậy.”

“Tôi gặp đủ thứ phiền toái nếu cô và Taito cứ vô tư tình tứ trước mặt mọi người. Bởi vì tôi là quý tộc, nên có cái gọi là thể diện. Và hẳn là cô cũng sẽ không vừa lòng nếu tôi tỏ vẻ như chính thất phải không?”

“Đúng là vậy.”

“Vậy thì tôi có đề nghị thế này. Chúng ta sẽ không làm những hành động vừa nói với nhau. Khi ra ngoài thì cả ba chúng ta sẽ đi cùng nhau. Nếu được thì cả phòng ốc cũng vậy.”

“Ừm, tôi nhường cô vậy. Vì Taito sẽ khó xử mà.”

“Vậy thì chúng ta bắt tay để chính thức ký hiệp định nhé.”

“Được thôi.”

Maira và Recti nắm chặt tay nhau. Không hiểu sao tôi lại có cảm giác mâu thuẫn giữa họ hình như còn sâu sắc hơn thì phải.

“Taito được yêu mến thật đấy!”

“Tình bạn nảy nở giữa những người phụ nữ tranh giành một người đàn ông. Lãng mạn làm sao!”

“Mọi thứ ổn thỏa là tốt rồi.”

“Mấy người cứ nói như chuyện của người khác không bằng.”

Thôi vậy, chuồn thôi. Tôi sẽ tập trung “nấu” cho xong cái game Air Hockey. Giờ là đến phần chuyển động.

Trước hết là cục puck.

```c

#include <math.h>

void puck_move(PUCK *puck1)

{

puck1->x+=cos(puck1->direction) * puck1->magnitude;  /*Tính toán tọa độ x*/

puck1->y+=cos(puck1->direction) * puck1->magnitude;  /*Tính toán tọa độ y*/

puck1->magnitude=puck1->magnitude-0.1;  /*Puck chậm lại do ma sát*/

if(puck1->magnitude < 1.0) puck1->magnitude=1.0;  /*Puck không chậm hơn tốc độ tối thiểu*/

}

```

Cứ thế này thôi. Có lẽ sau này sẽ chỉnh sửa thêm một chút.

Tiếp theo là gậy mallet.

```c

extern int input_player1(void);

extern int input_player2(void);

void mallet_move(MALLET *mallet1,MALLET *mallet2)

{

/*Người chơi 1*/

if(input_player1()&UP_DIR)  mallet1->y-=5.0;  /*Di chuyển lên*/

if(input_player1()&DOWN_DIR)  mallet1->y+=5.0;  /*Di chuyển xuống*/

if(input_player1()&LEFT_DIR)  mallet1->y-=5.0;  /*Di chuyển sang trái*/

if(input_player1()&RIGHT_DIR)  mallet1->y+=5.0;  /*Di chuyển sang phải*/

if(mallet1->y<0.0)  mallet1->y=0.0;  /*Nếu ở giới hạn trên*/

if(mallet1->y>100.0)  mallet1->y=100.0;  /*Nếu ở giới hạn dưới*/

if(mallet1->x<0.0)  mallet1->x=0.0;  /*Nếu ở giới hạn trái*/

if(mallet1->x>150.0)  mallet1->y=150.0;  /*Nếu ở giới hạn phải*/

/*Người chơi 2*/

if(input_player2()&UP_DIR)  mallet2->y-=5.0;  /*Di chuyển lên*/

if(input_player2()&DOWN_DIR)  mallet2->y+=5.0;  /*Di chuyển xuống*/

if(input_player2()&LEFT_DIR)  mallet2->y-=5.0;  /*Di chuyển sang trái*/

if(input_player2()&RIGHT_DIR)  mallet2->y+=5.0;  /*Di chuyển sang phải*/

if(mallet2->y<100.0)  mallet1->y=100.0;  /*Nếu ở giới hạn trên*/

if(mallet2->y>200.0)  mallet1->y=200.0;  /*Nếu ở giới hạn dưới*/

if(mallet2->x<0.0)  mallet1->x=0.0;  /*Nếu ở giới hạn trái*/

if(mallet2->x>150.0)  mallet1->y=150.0;  /*Nếu ở giới hạn phải*/

}

```

Có lẽ thế này là ổn rồi. Phần còn lại là xử lý va chạm và hiển thị trong game.

Hãy bình luận để ủng hộ người đăng nhé!