Liczba postów: 4
Liczba wątków: 2
Dołączył: 07.12.2020
11.12.2020, 09:59
(Ten post był ostatnio modyfikowany: 11.12.2020, 10:01 przez kacperson.)
pac man c++
Witam wszystkich pisze pac mana w c++ mam duszka przechodzenie miedzy poziomami i chciałbym zrobić buff i dbuff który by przyspieszał gracza i duszka oraz spowalniał na jaki czas np. 3sec.
i nie wiem jak sie za to kompletnie zabrac ktos by pomogł?
Jak ktoś będzie chciał zobaczyć kod to najwyżej wrzucę odpowiedz pod postem
Liczba postów: 5180
Liczba wątków: 58
Dołączył: 15.11.2008
11.12.2020, 10:36
(Ten post był ostatnio modyfikowany: 11.12.2020, 10:38 przez Bodzio Chomik.)
RE: pac man c++
Jest kilka możliwości, natomiast najlepiej będzie, moim zdaniem, w ten sposób:
1. Prędkość Pacmana jest zdefiniowaną zmienną
2. Po zebraniu buffa/debuffa zmienna wzrasta/spada i ustawiany jest timer na określony czas
3. Gdy czas się kończy, timer wywołuje handler przywracający zmienną do wartości podstawowej
Oczywiście cały kod musi być zabezpieczony po kątem współbieżności aby uniknąć wyścigów i niedeterministycznego stanu zmiennej.
https://docs.microsoft.com/en-us/windows...ing-timers
"Każdego specjalistę da się zastąpić skończoną liczbą stażystów"
Liczba postów: 4
Liczba wątków: 2
Dołączył: 07.12.2020
11.12.2020, 10:58
RE: pac man c++
mógłbyś pokazać jak to rozpocząć?
Liczba postów: 5180
Liczba wątków: 58
Dołączył: 15.11.2008
11.12.2020, 13:22
(Ten post był ostatnio modyfikowany: 11.12.2020, 13:23 przez Bodzio Chomik.)
RE: pac man c++
http://www.wklejto.pl/874436
Kod:
#include <iostream>
#include <future>
#include <chrono>
const int BUFF_DURATION = 2000;
const int DEFAULT_VELOCITY = 1;
double velocity = DEFAULT_VELOCITY;
void rollbackVelocity() {
std::this_thread::sleep_for(std::chrono::milliseconds(BUFF_DURATION));
velocity = DEFAULT_VELOCITY;
std::cout << "Wartosc zmiennej po upływie czasu: " << velocity << "\n";
}
void buffPicked() {
velocity = 1.5;
std::cout << "Wartosc zmiennej po zebraniu buffa: " << velocity << "\n";
std::async(rollbackVelocity);
}
int main() {
std::cout << "Wartosc zmiennej domyślnie: " << velocity <<"\n";
buffPicked();
while (1) {
}
}
Do tego zidentyfikuj w swoim kodzie sekcje krytyczne i załóż mutexy.
"Każdego specjalistę da się zastąpić skończoną liczbą stażystów"
Liczba postów: 4
Liczba wątków: 2
Dołączył: 07.12.2020
11.12.2020, 16:10
RE: pac man c++
dzięki