Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 15 kết quả

Đề tài: làm sao thực hiện 1 lúc 2 lệnh trong C++??

  1. #1
    Ngày gia nhập
    04 2008
    Bài viết
    8

    Post làm sao thực hiện 1 lúc 2 lệnh trong C++??

    cho mình hỏi làm sao cho C++ thực hiện 1 lúc 2 công việt đc. như trò bắn máy bay vậy. có nghĩa là mình có thể vừa di chuyển chiếc máy bay vừa có thể bắn đạn ra nữa????
    Hân hạnh đc mọi người giúp đỡ

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Kĩ thuật này gọi là callback, lập trình game hay dùng nó :
    C++ Code:
    1. #include <iostream>
    2.  
    3. class Button;
    4. class AirCraft{
    5. public:
    6.     void click_button(Button* butt){
    7.     if(butt == p_shoot)
    8.       this->shoot_target(butt);
    9.     else if(butt == p_fly)
    10.             this->keep_flying(butt);
    11.   }
    12.  
    13.   void set_fly(Button* butt){
    14.         p_shoot = butt;
    15.     }
    16.  
    17.   void set_shoot(Button* butt){
    18.         p_fly = butt;
    19.     }
    20.  
    21.   void shoot_target(Button* ){
    22.         std::cout << "...shooting.\n";
    23.     }
    24.  
    25.   void keep_flying(Button* ){
    26.         std::cout << "...flying.\n";
    27.     }
    28.  
    29. private:
    30.   Button* p_shoot;
    31.   Button* p_fly;
    32. };
    33.  
    34. class Button{
    35. public:
    36.   Button(AirCraft* name):_F117(name){
    37.     }
    38.   void press(){
    39.         _F117->click_button(this);
    40.     }
    41. private:
    42.   AirCraft* _F117;
    43. };
    44.  
    45. int main(){
    46.   AirCraft my_flight;
    47.  
    48.     Button fly(&my_flight);
    49.     Button shoot(&my_flight);
    50.  
    51.     my_flight.set_shoot(&fly);
    52.   my_flight.set_fly(&shoot);
    53.    
    54.     fly.press();
    55.     shoot.press();
    56.  
    57.     return 0;
    58. }

  3. #3
    Ngày gia nhập
    12 2007
    Bài viết
    224

    Em ko rõ callback là cái gì nhưng mà theo suy nghĩ trong đầu thì việc cho máy bay bay với lại bắn đạn thì có gì đâu mà ko làm được . Vì máy bay ta cho di chuyển = 4 nút lên xuống trái phải còn nút bắn thì lại là 1 nút khác mà ( chẳng hạn space bar ) . Thế thì ta cứ if else là xong

    C Code:
    1. if(push==len) ...
    2. else if(push==xuong) ...
    3. else if(push==trai) ...
    4. else if(push==phai) ...
    5. else if(push==space bar) ...
    6. else no active

  4. #4
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Trích dẫn Nguyên bản được gửi bởi sieuphuong Xem bài viết
    Em ko rõ callback là cái gì nhưng mà theo suy nghĩ trong đầu thì việc cho máy bay bay với lại bắn đạn thì có gì đâu mà ko làm được . Vì máy bay ta cho di chuyển = 4 nút lên xuống trái phải còn nút bắn thì lại là 1 nút khác mà ( chẳng hạn space bar ) . Thế thì ta cứ if else là xong

    C Code:
    1. if(push==len) ...
    2. else if(push==xuong) ...
    3. else if(push==trai) ...
    4. else if(push==phai) ...
    5. else if(push==space bar) ...
    6. else no active
    Làm sao mà làm như thế được. Hành động ở đây là liên tục nếu em cứ if else như thế thì nó chỉ thực hiện được 1 hành động rồi dừng chương trình không chạy tiếp. Cái này một người bạn của anh hồi xưa chỉ cho anh cách làm nhớ mang máng là nó dùng đến clock trong time.h.
    Đọc code của rox không hiểu lắm. Rox comment vào code nhá.
    In code we trust

  5. #5
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Đọc code của rox không hiểu lắm. Rox comment vào code nhá.
    Xạo tui đá 1 cái là tắt thở nha N !
    Callback trong GUI hay game hay dùng lắm, nó dùng handle các event, gọi lại đó. Để làm xong BT đã, tuần sau test quá trời T_T, để có gì sẽ bổ sung comment sau.

  6. #6
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Mặc định làm sao thực hiện 1 lúc 2 lệnh trong C++??

    Không biết C++ có kỹ thuật sử dụng "thread" không ta. Cái này có thể sử dụng được đó.
    Không biết ghi gì luôn ...

  7. #7
    Ngày gia nhập
    11 2007
    Bài viết
    1

    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Kĩ thuật này gọi là callback, lập trình game hay dùng nó :
    Để lập trình 2 nhiệm vụ cùng một lúc thì có nghĩa là đa nhiệm (multitasking). Callback là một cái khía cạnh khác.

  8. #8
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    Để lập trình 2 nhiệm vụ cùng một lúc thì có nghĩa là đa nhiệm (multitasking). Callback là một cái khía cạnh khác.
    Bạn có thể cho ví dụ được không ? Tui cũng nghe về multithread nhưng multitasking thì chưa nghe bao h ! Thanks trước !

  9. #9
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi hoangtran Xem bài viết
    Để lập trình 2 nhiệm vụ cùng một lúc thì có nghĩa là đa nhiệm (multitasking). Callback là một cái khía cạnh khác.
    Cái này thì chưa biết đến, post một ví dụ thử xem bạn.
    Không biết ghi gì luôn ...

  10. #10
    Ngày gia nhập
    11 2007
    Bài viết
    1

    Multitasking có nghĩa đa nhiệm vụ, một khái niệm thôi. Còn thể hiện cho nó trong computer system là multithread hay multi process.

Các đề tài tương tự

  1. Trả lời: 2
    Bài viết cuối: 06-07-2013, 10:18 AM
  2. Trả lời: 1
    Bài viết cuối: 11-10-2011, 11:36 AM
  3. tạo store procedures trong SQL lúc save sao không hiển thị trong object explorer
    Gửi bởi lapmaihokdc trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 6
    Bài viết cuối: 30-05-2011, 10:08 AM
  4. Lỗi rewrite URL trên ASP.net lúc được lúc không?
    Gửi bởi dnhattan trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 0
    Bài viết cuối: 29-03-2011, 05:37 PM
  5. Url rewrite trong ASP.NET, lúc chạy lúc không chạy?
    Gửi bởi jindoniit trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 5
    Bài viết cuối: 20-03-2011, 10:21 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn