• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyświetlanie tekstu w konsoli powoli

VPS Starter Arubacloud
0 głosów
4,390 wizyt
pytanie zadane 3 kwietnia 2016 w C i C++ przez chet Nowicjusz (170 p.)
edycja 3 kwietnia 2016 przez chet
Zastanawiam się, czy jest może opcja żeby w konsoli (w języku C++) tekst się tak jakby... rozwijał. Chodzi mi o to, żeby nie pokazywał się od razu cały tekst, tylko wyświetlał się tak jakbyśmy sami go pisali. Jeśli się tak da, to prosiłbym o wyjaśnienie i instrukcję jak zrobić coś takiego.

edit: lepiej jednak będzie, jeśli podam przykład.

Chodzi mi o efekt, jaki uzyskali twórcy gry tekstowej "Otchłań".

chciałbym właśnie napisać taką małą gierkę, a żeby troche immersji było (hłe, hłe) to potrzebuje właśnie takiego efektu.

2 odpowiedzi

0 głosów
odpowiedź 3 kwietnia 2016 przez ScriptyChris Mędrzec (190,190 p.)
wybrane 3 kwietnia 2016 przez chet
 
Najlepsza
#include <iostream>
#include <windows.h>

using namespace std;

int main()
{
    string napis = "Hello world!";

    for (int i = 0; i < 12; i++)
    {
        cout << napis[i];
        Sleep(750);  // odstep czasowy zmien sobie na jaki chcesz
    }
    return 0;
}

Możesz to zrobić w pętli. Wypisujesz kolejne litery wyrazu, "usypiając" program na X czasu co każdą iterację pętli (w moim przykładzie 750 milisekund).

komentarz 3 kwietnia 2016 przez chet Nowicjusz (170 p.)
A co jeśli chciałbym napisać jakieś słowo np. "Lubie..." i sprawić, żeby te 3 kropki wyświetlały się wolniej niż samo słowo? Musiałbym to zrobić w dwóch oddzielnych pętlach?
komentarz 3 kwietnia 2016 przez ScriptyChris Mędrzec (190,190 p.)

Hmm..., mogę zaproponować 2 pomysły: pierwszy, to sprawdzanie tekstu w tekście (substring) - jeśli dany substring wystąpi to możesz zmienić sobie czas w funkcji Sleep(). Drugi pomysł, trochę bardziej żmudny - wstaw sobie w IF numer iteracji, od - do, wedle których dany tekst ma pojawiać się szybciej/wolniej. Do funkcji Sleep() wstaw sobie zamiast konkretnych liczb zmienną, której wartość będziesz sobie zmieniał w IF i tym samym regulował czas wstrzymania wypisywania kolejnych liter wyrazu.

0 głosów
odpowiedź 3 kwietnia 2016 przez SebekChlebek Stary wyjadacz (11,290 p.)
edycja 3 kwietnia 2016 przez SebekChlebek

Funkcja:

Sleep(czas_w_milisekundach)

Potrzebna bilbioteka <windows.h>

Sleep zatrzymuje program na określony czas.

np.:

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
cout << "H";
Sleep(300);
cout << "e";
Sleep(300);
cout << "l";
Sleep(300);
cout << "l";
Sleep(300);
cout << "o";
Sleep(300);
cout << " ";
Sleep(300);
cout << "W";
Sleep(300);
cout << "o";
Sleep(300);
cout << "r";
Sleep(300);
cout << "l";
Sleep(300);
cout << "d";
Sleep(300);
cout << "!";

    return 0;
}

 

Możesz wykorzystać jeszcze tablice string i pętle. (Lepsza wersja!)

#include <iostream>
#include <windows.h>
using namespace std;

int main()
{
    string napis = "Wlazl kotek na plotek i mruga, ladna to piosenka. \nNie dluga. Nie krotka, a w sam raz. \nZaspiewaj koteczku jeszcze raz.";
for (int i = 0; i < napis.length(); i++)
{
    Sleep(250);
    cout << napis[i];
}

    return 0;
}

 

komentarz 3 kwietnia 2016 przez ScriptyChris Mędrzec (190,190 p.)
Trochę dużo linijek kodu będzie, jeśli autor tematu zechce tak napisać jakiś wiersz :)
komentarz 3 kwietnia 2016 przez SebekChlebek Stary wyjadacz (11,290 p.)
edycja 3 kwietnia 2016 przez SebekChlebek
Racja, dlatego napisałem jeszcze drugą możliwość, bardziej wydajną, czytelną jaką są tablice i pętle + nie trzeba liczyć liter .;)

Podobne pytania

0 głosów
2 odpowiedzi 2,517 wizyt
pytanie zadane 17 marca 2016 w C i C++ przez easytodo Mądrala (5,380 p.)
0 głosów
1 odpowiedź 196 wizyt
0 głosów
2 odpowiedzi 1,015 wizyt
pytanie zadane 23 marca 2017 w C i C++ przez Jakub 0 Pasjonat (23,120 p.)

92,452 zapytań

141,262 odpowiedzi

319,079 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...