Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.60
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
#1

Как сделать что бы 2 функции работали одновременно - C++

14.03.2009, 16:48. Просмотров 2015. Ответов 14
Метки нет (Все метки)

Здраствуите,подскажите пожалуисто что надо сделать что бы 2 функции работали одновременно,я делаю игру танчики ,допустим танчик едит я нажемаю энтер и выстреливает пулька ,проблема- пока пуля не достигнет цели или конца поля танчик недвигаеться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.03.2009, 16:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как сделать что бы 2 функции работали одновременно (C++):

Как сделать, чтобы функции работали "независимо" одна от другой? - C++
Есть такой код, в нем несколько функций. invert - инвертирует введеную строку; сount - считает количество цифр в строке; del - удаляет...

Как сделать, чтобы два проекта с разной кодировкой работали в одном объединённом проекте? - C++
Добрый день подскажите есть два проекта в одном стоит многобайтовая кодировка в другом юникод, по отдельности все нормально компилируется...

Можно ли сделать так чтобы к классу можно было бы одновременно обращаться как к массиву - C++
подскажите можно ли сделать так чтобы к классу можно было бы одновременно обращаться как к массиву? т.е. не массив классов я имею ввиду, а...

Как сделать так,что бы при введение,например 0;0 выдавалось сообщение,что точка находится на границе? - C++
#include <iostream> using namespace std; int main(){ double x, y; int R=10 cout << "Введите x: " <<...

как сделать что бы когда нажал выбор кокого нить пункта, а он выделялся и с помощью Enter я подтверждаю что выбираю - C++
Ребят как сделать что бы когда нажал выбор кокого нить пункта, а он выделялся и с помощью Enter я подтверждаю что выбираю.пожалуйста пример

Код не работает,говорит,что не знает,что такое delay(100).в чём проблема?как сделать,чтоб программа заработала? - C++
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> int main() { int...

14
ABTOP
36 / 36 / 2
Регистрация: 09.06.2008
Сообщений: 324
14.03.2009, 16:54 #2
используй прерывания.. например пулька пролетела один пиксель вызывается функция движения танка, если кнопка нажата то танк двигается и пулька летит дальше, если не двигаетсья пулька всёравно летит дальше...
0
PB
Просто прогер
1281 / 1068 / 11
Регистрация: 13.03.2009
Сообщений: 2,502
14.03.2009, 16:57 #3
Используй процедуру, вызываемую по таймеру либо запускай процедуру в параллельном потоке.
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
14.03.2009, 17:04  [ТС] #4
Цитата Сообщение от PB Посмотреть сообщение
Используй процедуру, вызываемую по таймеру либо запускай процедуру в параллельном потоке.
как вызывать поралельный поток???
0
PB
Просто прогер
1281 / 1068 / 11
Регистрация: 13.03.2009
Сообщений: 2,502
14.03.2009, 17:45 #5
Я Си не знаю - проги на бейсике пишу. там параллельный поток создаётся с помощью функции
PureBasic
1
CreateThread(@ProcedureName(), Value)
0
Mecid
680 / 229 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
14.03.2009, 20:22 #6
На Си тоже CreatThread
C
1
2
3
4
5
6
7
8
HANDLE CreateThread(
    LPSECURITY_ATTRIBUTES lpThreadAttributes,   // pointer to thread security attributes  
    DWORD dwStackSize,  // initial thread stack size, in bytes 
    LPTHREAD_START_ROUTINE lpStartAddress,  // pointer to thread function 
    LPVOID lpParameter, // argument for new thread 
    DWORD dwCreationFlags,  // creation flags 
    LPDWORD lpThreadId  // pointer to returned thread identifier 
   );
Пример:
C
1
2
3
4
5
6
7
#include <stdio.h>
void f(){printf("privet");}
int main(){
int a;
CreateThread(NULL,0,f,NULL,0,&a);
return 0;
}
0
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
14.03.2009, 20:29 #7
ага, только эта функция относится к win api и значит windows.h
0
Mecid
680 / 229 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
14.03.2009, 20:36 #8
Точно)сорри забыл
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
14.03.2009, 21:05  [ТС] #9

да но я ща игру пишу в консоли =(
0
Mecid
680 / 229 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
14.03.2009, 21:10 #10
Ну и?
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
14.03.2009, 21:17  [ТС] #11
ошибку выдает тот пример что ты написал

Добавлено через 3 минуты 20 секунд
ошибку выдает тот пример что ты написал
Error 1 error C2664: 'CreateThread' : cannot convert parameter 3 from 'void (__cdecl *)(void)' to 'LPTHREAD_START_ROUTINE' c:\documents and settings\casper\рабочий стол\tank\tank\jnknklh.cpp 23
0
Mecid
680 / 229 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
14.03.2009, 21:21 #12
ну приведи к нужному типу
0
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
14.03.2009, 22:08  [ТС] #13
хм неполучаеться

Добавлено через 7 минут 55 секунд
а рабочии пример может кто то зделать с потоком????с выводом на экран
0
Ensase
Флудер
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
14.03.2009, 22:50 #14
msdn
1
Вложения
Тип файла: txt example.txt (740 байт, 65 просмотров)
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
15.03.2009, 11:03  [ТС] #15
прибольшое спосибо,я читал в масдае но я там примера не нашол,у меня какая та лаит версия ,все собераюсь поменять руки не доходят,гуглил так там примера еще хуже чем описания в масдае,
дальше я сам уже разберусь по эксперементирую =)

Добавлено через 11 часов 35 минут 49 секунд
вернемся к началу как хотелось от результата потоки не работают или я опять не правильно что то делаю,кто хочет помочь ??? я скину код там все есть надо только 1 метод прилипить и все =),в коде будут коментарии написано на ВС 2008 С++
0
15.03.2009, 11:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.03.2009, 11:03
Привет! Вот еще темы с ответами:

определение функции в ЗАГОЛОВОЧНОМ файле. В основном предполагается переопределение ТЕЛА этой функции. Как это сделать, не правя хидер? - C++
Сабж, а подробнее если в заголовочном файле hider.h описана функция, допустим так: void f (); void f () { int per= 10; } ...

Подскажите, почему значению функции присваивается true? Что сделать чтобы передавалось значение? - C++
#include&lt;iostream&gt; #include&lt;math.h&gt; using namespace std; template&lt;typename T&gt; T f1(T a, T b) { if (a == 0){ cout &lt;&lt; &quot;no...

Как сделать чтобы 2 сетевые карты работали одновременно? - Сети
Здравствуйте. У меня в компе 2 сетевые карты, на одной местная лок.сеть, на другой постоянный интернет (достаточно запустить браузер)....

Можно ли сделать, чтобы таймеры работали одновременно? - C# WPF
using System; using System.Threading; using System.Windows; using System.Windows.Threading; namespace WpfApplication1 { ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru