Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
1

Ошибка в программе с графикой

26.04.2013, 21:20. Просмотров 381. Ответов 8
Метки нет (Все метки)

Есть код. Картинка двигается только по горизонтали. Как сделать чтобы она двигалась по всему окну консоли? То есть и по вертикали. Прямоугольник - типа самолета.

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
#include <stdio.h>
#include <conio.h>
#include "graphics.h"
void draw(int x,int y,int c);
int main (void)
{
    int gd=DETECT,gm;
    int x=0,y=400,speed=50;
    char ch;
    initgraph(&gd,&gm,"C:\\Dev-Cpp\\lib\\libbgi");
    initwindow(640,480);
    outtextxy(200,20,"press ESC to finish");
    do
    {
                            draw (x,y,ch);
                            delay (500);
                            draw (x,y,0);
                            x+=speed;
                            if (kbhit())
                            ch=getch();
    }
    while (ch!=27);
    closegraph();
    return 0;
}
void draw (int xx,int yy,int c)
{
     setcolor (c);
     setfillstyle (1,c);
     bar (xx-30,yy-5,xx+30,yy+5);
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.04.2013, 21:20
Ответы с готовыми решениями:

Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Всем доброго времени суток! Написал программу в windows form. Несколько раз скомпилировал и все...

Ошибка при работе с графикой
Написал свою первую програмку на графику: Код: #include &lt;graphics.h&gt; #include &lt;stdio.h&gt;...

Ошибка при работе с графикой. Не распознается библиотека "cstdlib"
Здравствуйте, прошу помочь с запуском программы. Я её компилировал в старом Борланде и там куча...

Работа с графикой и ошибка "Class Timage not Found"
Попогите определить ссобщение ошибки , Project Project1.exe raised exeption class EClassNotFound...

8
3168 / 1927 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2013, 03:29 2
C++
1
y+=speed;
0
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
27.04.2013, 15:24  [ТС] 3
gazlan, пробовал. Неправильно. Хотя может не в том месте вставлял. И как еще сделать чтобы этот самолет приземлялся, замедляясь, на ту же высоту экрана, что и взлетал, то есть будет у=400? И как задать высоту, выше которой он не поднимался?
0
3168 / 1927 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
27.04.2013, 20:30 4
Строка 18 - единственное место, где происходит смена координаты. Там и управлякйте. Как угодно.
0
Грамотный. Безпорно.
16619 / 9658 / 1863
Регистрация: 27.09.2012
Сообщений: 23,959
Записей в блоге: 2
27.04.2013, 21:31 5
Цитата Сообщение от frank_lampard Посмотреть сообщение
То есть и по вертикали.
Ну в данном случае у Вас изменяется только координата x. В каком случае он должен двигаться по вертикали лично я не знаю. Как вариант - сделать рандомный выбор куда двигаться.
0
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
27.04.2013, 22:20  [ТС] 6
Croessmah, не подскажете как рандомно сделать?
0
Грамотный. Безпорно.
16619 / 9658 / 1863
Регистрация: 27.09.2012
Сообщений: 23,959
Записей в блоге: 2
27.04.2013, 22:23 7
C++
1
2
3
4
5
if(rand()%2){
   x+=speed;
}else{
   y+=speed;
}
Это правда будет не просто самолет, а самолет, больной Болезнью Паркинсона, к тому же может за экран вылететь, наверное
0
-8 / 2 / 0
Регистрация: 23.09.2012
Сообщений: 145
28.04.2013, 00:49  [ТС] 8
Croessmah, а как границы поставить? Чтобы он вниз не улетал и вверх?
0
Грамотный. Безпорно.
16619 / 9658 / 1863
Регистрация: 27.09.2012
Сообщений: 23,959
Записей в блоге: 2
28.04.2013, 01:25 9
Цитата Сообщение от frank_lampard Посмотреть сообщение
а как границы поставить? Чтобы он вниз не улетал и вверх?
Проверять x и y
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2013, 01:25

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Ошибка при работе с графикой "недостаточно памяти"
Изучаю графику на с#. Набираю пример из книги, а он выдает ошибку &quot;Недостаточно памяти&quot; Чтобы не...

Ошибка в программе
Ребят, не могу понять почему программа выводит одну и ту же матрицу три раза, хотя данные должны...

Ошибка в программе
Выходит ошибка Too many actual parameters в этой строке WriteString(IntToStr('Section', 'Antigate...

Ошибка в программе
В строке, состоящей из групп нулей и единиц, найти и вывести на экран группы с четным количеством...


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

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

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