HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #3351  
Старый 18.03.2019, 13:00
Stiopko
Постоянный
Регистрация: 28.02.2018
Сообщений: 307
С нами: 4319022

Репутация: 113
По умолчанию

Цитата:
Сообщение от ๖ۣۣۜШурик  

Не совсем понял, можно подробней?
Екземпляр класса должен быть глобальным или static
 
Ответить с цитированием

  #3352  
Старый 18.03.2019, 14:58
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

Репутация: 0
По умолчанию

Цитата:
Сообщение от Stiopko  

Екземпляр класса должен быть глобальным или static
Попытался сделать глобальным и статическим - результата нет, всё также вылетает.

Хочу обратить внимание на то, что если я укажу th.join() после: std::thread th = test.start(""), то игра не вылетит, но к сожалению от потока не будет смысла (т.к. фризит процесс при Sleep).

UPD: Проверил на консольном приложении - успешно (но не в SF).


 
Ответить с цитированием

  #3353  
Старый 18.03.2019, 17:15
Harryss
Участник форума
Регистрация: 07.03.2015
Сообщений: 233
С нами: 5887139

Репутация: 18
По умолчанию

Цитата:
Сообщение от ๖ۣۣۜШурик  

Попытался сделать глобальным и статическим - результата нет, всё также вылетает.

Хочу обратить внимание на то, что если я укажу th.join() после: std::thread th = test.start(""), то игра не вылетит, но к сожалению от потока не будет смысла (т.к. фризит процесс при Sleep).

UPD: Проверил на консольном приложении - успешно (но не в SF).



Необходимость в парилке с потоком возникла с целью нормально использовать задержку?
 
Ответить с цитированием

  #3354  
Старый 18.03.2019, 17:33
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

Репутация: 0
По умолчанию

Цитата:
Сообщение от Harryss  

Необходимость в парилке с потоком возникла с целью нормально использовать задержку?
Да, но не только из-за задержки.
 
Ответить с цитированием

  #3355  
Старый 18.03.2019, 18:14
Harryss
Участник форума
Регистрация: 07.03.2015
Сообщений: 233
С нами: 5887139

Репутация: 18
По умолчанию

Цитата:
Сообщение от ๖ۣۣۜШурик  

Да, но не только из-за задержки.
Если это вдруг поможет, предлагаю простой вариант избавления от этой парилки, с библиотекой thread.

C++:





[CODE]
const
auto
myTask
=
[
]
(
)
{
// Твой код.
// Можно использовать Sleep и это не будет тормозить игру.
}
;
std
::
thread
(
myTask
)
.
detach
(
)
;
//

 
Ответить с цитированием

  #3356  
Старый 18.03.2019, 19:33
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

Репутация: 0
По умолчанию

[QUOTE="Harryss"]

Если это вдруг поможет, предлагаю простой вариант избавления от этой парилки, с библиотекой thread.

C++:





[CODE]
const
auto
myTask
=
[
]
(
)
{
// Твой код.
// Можно использовать Sleep и это не будет тормозить игру.
}
;
std
::
thread
(
myTask
)
.
detach
(
)
;
//
 
Ответить с цитированием

  #3357  
Старый 18.03.2019, 19:57
AnWu
Флудер
Регистрация: 08.11.2017
Сообщений: 4,787
С нами: 4480376

Репутация: 183


По умолчанию

Цитата:
Сообщение от {cran}  

Есть ли возможность менять шрифт текста для ImGui меню?
C++:





Код:
ImGui
::
CreateContext
(
)
;
ImGui_ImplWin32_Init
(
GetActiveWindow
(
)
)
;
ImGui_ImplDX9_Init
(
SF
->
getRender
(
)
->
getD3DDevice
(
)
)
;
ImGuiIO
&
IO
=
ImGui
::
GetIO
(
)
;
if
(
!
bChangeFont
)
{
ImFontConfig font_config
;
TCHAR path
[
MAX_PATH
]
;
HRESULT hr
=
SHGetFolderPathA
(
NULL
,
CSIDL_FONTS
,
NULL
,
SHGFP_TYPE_CURRENT
,
path
)
;
std
::
string fPath
=
std
::
string
(
path
)
.
append
(
"\\arialbd.ttf"
)
;
IO
.
Fonts
->
AddFontFromFileTTF
(
fPath
.
c_str
(
)
,
14.0f
,
&
font_config
,
IO
.
Fonts
->
GetGlyphRangesCyrillic
(
)
)
;
smallFont
=
IO
.
Fonts
->
AddFontFromFileTTF
(
fPath
.
c_str
(
)
,
12.0f
,
&
font_config
,
IO
.
Fonts
->
GetGlyphRangesCyrillic
(
)
)
;
bChangeFont
=
true
;
}
ImGuiStyle
*
style
=
&
ImGui
::
GetStyle
(
)
;


у меня так
 
Ответить с цитированием

  #3358  
Старый 18.03.2019, 21:39
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

Репутация: 0
По умолчанию

Возможно ли в registerChatCommandпередать в качестве второго параметра лямбду? Но внутри неё мне нужно получить 2 переменные, которые в ней не находятся. Если да, то пожалуйста покажите пример.
 
Ответить с цитированием

  #3359  
Старый 18.03.2019, 22:33
Harryss
Участник форума
Регистрация: 07.03.2015
Сообщений: 233
С нами: 5887139

Репутация: 18
По умолчанию

Цитата:
Сообщение от ๖ۣۣۜШурик  

Возможно ли в registerChatCommandпередать в качестве второго параметра лямбду? Но внутри неё мне нужно получить 2 переменные, которые в ней не находятся. Если да, то пожалуйста покажите пример.
registerChatCommand напрямую с лямбдой не работает, на основе того, что я показал ранее, с cmd работаю так

C++:





Код:
void
CALLBACK
cmdExample
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
const
auto
task
=
[
param
]
(
)
// Просто добавил param
{
// Код, задержки, все дела.
int
my_int
=
std
::
stoi
(
param
)
;
// Получение параметра функции
}
;
std
::
thread
(
task
)
.
detach
(
)
;
}
 
Ответить с цитированием

  #3360  
Старый 18.03.2019, 22:47
Шурик
Новичок
Регистрация: 01.12.2009
Сообщений: 0
С нами: 8654409

Репутация: 0
По умолчанию

Цитата:
Сообщение от Harryss  

registerChatCommand напрямую с лямбдой не работает, на основе того, что я показал ранее, с cmd работаю так

C++:





Код:
void
CALLBACK
cmdExample
(
std
::
string param
)
{
if
(
param
.
empty
(
)
)
return
;
const
auto
task
=
[
param
]
(
)
// Просто добавил param
{
// Код, задержки, все дела.
int
my_int
=
std
::
stoi
(
param
)
;
// Получение параметра функции
}
;
std
::
thread
(
task
)
.
detach
(
)
;
}

У меня нет определённой команды.

Я команды создаю уже непосредственно в самой игре и не могу сделать так как у тебя.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.