[Delphi]Рисование в игре

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by crazyserega1994, 9 Oct 2010.

  1. crazyserega1994

    crazyserega1994 Elder - Старейшина

    Joined:
    25 Dec 2007
    Messages:
    27
    Likes Received:
    3
    Reputations:
    0
    Здравствуйте! Хочу в одной игре (MW2) по середине экрана рисовать прицел. Когда использую GDI и таймер на 1 миллисекунду, то не все кадры оно рисует, и выглядит как-будто мерцает. Как можно быстро все рисовать, не использую DirectX Или OpenGL? Я думаю в GDI возможно, но надо использовать событие.
     
  2. Nizhegorodets

    Nizhegorodets Member

    Joined:
    21 Mar 2009
    Messages:
    80
    Likes Received:
    66
    Reputations:
    9
    Зачем через таймер рисуешь? рисуй через цикл.
     
  3. Jingo Bo

    Jingo Bo Member

    Joined:
    25 Oct 2009
    Messages:
    368
    Likes Received:
    51
    Reputations:
    7
    Сначала нужно разобратся, через что идет вывод, через OpenGL или DirectX, тут не сложно. Потом нужно поставить хук на нужную функцию(или метод) и уже там выводить то что нужно, иначе мерцать всегда будет.
     
    1 person likes this.
  4. BrainDeaD

    BrainDeaD Elder - Старейшина

    Joined:
    9 Jun 2005
    Messages:
    774
    Likes Received:
    292
    Reputations:
    214
    GDI слишком медленный для таких целей.

    немного больше выжать можно используя
    Code:
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      DoubleBuffered := True;
    end;
    или
    Code:
    procedure TForm4.CreateParams(var Params: TCreateParams);
    begin
      inherited CreateParams(Params);
      Params.ExStyle := Params.ExStyle OR WS_EX_TRANSPARENT;
    end;
    тебе нужен directx или opengl
     
    #4 BrainDeaD, 10 Oct 2010
    Last edited: 10 Oct 2010
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Пля, народ, ну что за мысли, как будто вы родились все в 21 веке.
    Есть довольно хорошая старая добрай проверенная методика:
    1) берешь красную помаду и делаешь по центру экрана точку. Видно хорошо, стерается легко
    2) или красную бумагу тонкую или пленку, которая хорошо электризуется. Она сама прилипнет без клея на центр экрана и будет весеть пока не снимине
     
    2 people like this.
  6. ViLKaa

    ViLKaa Member

    Joined:
    24 Jul 2009
    Messages:
    41
    Likes Received:
    7
    Reputations:
    5
    я маркером тыкал которым по доске рисуют. он стирается лехко)
     
  7. HakaR

    HakaR Active Member

    Joined:
    23 Jul 2009
    Messages:
    301
    Likes Received:
    200
    Reputations:
    3
    ТС, нахера так заморачиватся?

    MW2 использует DirectX, напиши свою дллку для хука и рисования в игре.
    Могу подкинуть код инжектора для игр, на DirectX.
     
  8. RedFern.89

    RedFern.89 Member

    Joined:
    20 Jan 2010
    Messages:
    575
    Likes Received:
    48
    Reputations:
    0
    slesh, люди хотят программно ) это правильно и интерессно ) хотя идеи с губной помоадй или пленкой довольно интерессны))))))))))