Форум программистов, компьютерный форум CyberForum.ru

Анимация в dos - реализовать очистку экрана при перерисовке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Error "undeclared identifier" http://www.cyberforum.ru/cpp-beginners/thread1166813.html
Ошибки: 'cout': undeclared identifier; 'cout': undeclared identifier; 'getch': undeclared identifier; Как исправить? Листинг: #include "math.h" #include "iostream.h" #include "stdio.h"
C++ Соединение цифр в число Есть 3 числа n1=8 n2=4 n3=9 как сделать чтобы на экране выводилось n=849? http://www.cyberforum.ru/cpp-beginners/thread1166812.html
C++ Определить класс с именем NOTE, содержащий указанные поля
Запишите описание класса с именем NOTE, содержащего следующие поля:  дата (массив из трех чисел);  время;  информация. Скройте элементы-данные от пользователя, предоставив интерфейс доступа к полям посредством открытых методов (предусмотрите объявление двух методов, один из которых присваивает значения полям класса, а другой – выводит значения этих свойств на экран). ...
Расположить слова в строке в порядке возрастания количества символов в них C++
Не подскажите пожалуйста,как из одной строчки сформировать другую,таким образом,чтобы слова распологались в порядке возрастания по количеству символов?
C++ Расположить слова в порядке возрастания по количеству символов http://www.cyberforum.ru/cpp-beginners/thread1166799.html
Не подскажите пожалуйста,как из одной строчки сформировать другую,таким образом,чтобы слова распологались в порядке возрастания по количеству символов?
C++ Определить максимальное количество одинаковых символов, идущих подряд Ввести строку с клавиатуры. Определить максимальное количество одинаковых символов, идущих подряд. срочно нужно до 6 числа.помогите подробнее

Показать сообщение отдельно
dimcoder
Полярный
 Аватар для dimcoder
449 / 422 / 66
Регистрация: 11.09.2011
Сообщений: 1,110
05.05.2014, 12:52     Анимация в dos - реализовать очистку экрана при перерисовке
И снова здравствуйте. Как я понял devcpp настроить из thread1160667.html не получилось.
Цитата Сообщение от xDanceRx Посмотреть сообщение
как сделать что бы он стирался и заново рисовался?
Есть два варианта. Первый
C++
1
2
3
4
5
6
7
while (true)
{
    drawShit();   //рисуем 
    delay(100);   //ждем, что бы не торопить события
    cleardevice();//очищаем экран
    moveShit();   //двигаем то что рисуем (а-ля меняем координаты вашего сосуда, или там градус наклона)
}
затирает весь экран.
Есть другой вариант.
C++
1
2
3
4
5
6
7
8
9
while (true)
{
    drawShit();   //рисуем 
    delay(100);   //ждем, что бы не торопить события
    setcolor(BLACK);   //выставляем цвет прорисовки на черный
    drawShit();     //рисуем поверх старого рисунка 
    moveShit();    //двигаем то что рисовали
    setcolor(WHITE);    //выставляем цвет прорисовки на белый
}
[/CPP]
Но думаю хватит и первого варианта.
Вот однако пример на борланде:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<dos.h>
#define PATHTODRIVER "c:\\BORLANDC\\bgi\\"
 
void drawSpaceShip(int leftX, int bottomY)   //left bottom point of the spaceship
{
    const int width = 100, length = 125;
    const int rightX = leftX + width, topY = bottomY - length - 1;
    rectangle(leftX, topY, rightX, bottomY);
    
    arc(leftX + width * 2 - width / 10 + 1, topY + length / 2 + 5, 135, 160, 200);
    arc(rightX - width * 2 + width / 10 - 1, topY + length / 2 + 5, 20, 45, 200);
    
    int xFlames = leftX + width / 10;
    
    for (int i = 0; i < 9; i++)
        line(xFlames + width / 10 * i, bottomY, xFlames + width / 10 * i, bottomY + 20);
}
 
int main()
{
    int gdriver=DETECT;
    int gmode;
    initgraph(&gdriver,&gmode,PATHTODRIVER);
 
    int speed = 5;
 
    for (int i = 0; i < 175; i++)
    {
        drawSpaceShip(getmaxx()/2, getmaxy() - i * speed + 200);
        
        delay(50); 
        
        cleardevice();   
    }
    
    return 0;
}
Цитата Сообщение от xDanceRx Посмотреть сообщение
как его наклонять? полностью заново рисовать, или есть способ проще?
Нет, простого способа нету к сожалению. С тригонометрией дружите? Если нет, то вот подкину кусок кода который рисует линию под заданным углом в градусах.
C++
1
2
3
4
5
void angleLine(int x, int y, double length, int angle)
        {
            double radianAngle = (angle*3.14)/180.0;
            line(x, y, x + length * cos(radianAngle), y + length * sin(radianAngle));
        }
может понадобиться подключить
C++
1
#include <math.h>
 
Текущее время: 11:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru