Модераторы: Poseidon

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++]Псевдо-графика 
:(
    Опции темы
Kosilas
Дата 8.12.2007, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Кто посоветует какую книгу по графике самое начало.
чтоб в ней ббыло описание функций.
Нужно\хочу сделать что-то типа пинг-понга.
Дощечка будет ездить внизу с помощью клавишь <-  -> и мячик  будет литать по экрану.
Мячик может и понятно, а вот как риализовать "с помощью клавишь <-  ->" совсем не предсталяю.
Пожалуйсто подкиньте линк на книгу или хотябы пример ездящей доски.
PM MAIL   Вверх
Dogo
Дата 8.12.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 9



Цитата(Kosilas @  8.12.2007,  23:27 Найти цитируемый пост)
а вот как риализовать "с помощью клавишь <-  ->" совсем не предсталяю.


Здесь написано о том, как заставить работать стрелки и др. функциональные клавиши.
PM MAIL ICQ   Вверх
Kosilas
Дата 9.12.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Цитата(Dogo @ 8.12.2007,  23:16)
Здесь написано о том, как заставить работать стрелки и др. функциональные клавиши.

спс.
Но всетаки не подскажите где почитать про функции для псевдо-графики ?
PM MAIL   Вверх
kBepTu
Дата 9.12.2007, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 6.12.2007

Репутация: 2
Всего: 2



Ты хочь сделать игру в текстовом режиме и рисовать дощечку символами типа таких ╜ ? - тогда gotoxy()  тебя спасет.
Для игрушке в графическом режиме забей в поисковик initgraph
PM   Вверх
Kosilas
Дата 9.12.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Нет мне как раз нужно нарисовать дощечку (полочку) и управлять ею через кнопки по экрану влево, вправо.
И кружок будет летать просто так.
Можно его дощечкой ловить, а можно нет. Мячик будет от всех стенок отскакивать. 
В графике есть спец операторы рисовать палки, крушки,треугольники.
Вот мне нужно найти их и описание.
У кого есть пожалуйсто дайте ссылку.
Очень нуно ето такая у меня РГР.
PM MAIL   Вверх
kBepTu
Дата 9.12.2007, 18:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 6.12.2007

Репутация: 2
Всего: 2



Цитата(Kosilas @ 9.12.2007,  18:07)
В графике есть спец операторы рисовать палки, крушки,треугольники.

Насколько я знаю, то о чем ты говоришь относиться к графическому режиму графики под дос (rectangle, putpixel etc).  Это так? Сформулируй четче задание и то что ты подразумеваешь под псевдографикой. А к псевдографике относятся символы таблицы ASCII, те что не английские и не цифры. 
ЗЫ: ответ на вопрос или или - нет : сбивает с толка .
PM   Вверх
Kosilas
Дата 9.12.2007, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Есть старый Borland C++ version 3.1
вот на нем и нужно сделать ргр.
подключить такие библ как:
<dos.h>
<graphics.h>
и др по желанию.
Вот.
Или подскажи, что тогда сделать лучше если, что я задумал тяжело осуществимо.
Я как уже расказывал хочу нарисовать линию - её двигать по низу экрана стрелками + шарик летающий.
PM MAIL   Вверх
kBepTu
Дата 9.12.2007, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 6.12.2007

Репутация: 2
Всего: 2



На скока я помню, модуль graphics.h отвечает за графический режим под дос. Я бы в нем и делал.
Приведу часть кода - проверять и компилить лень:
Код

..
dr=DETECT();
rez=initgraph(&dr, &mode, "путь к драйверам.bgi"); // dr определяет какой режим VGA etc, mode - количество кодовых страниц и разрешение
if (rez ...) {}; // тра-ля-ля ошибка
// здесь ты осуществляешь все задуманное
//
//
closegraph(); 
..

rectangle(x1,y1,x2,y2) - рисует прямоугольник
setcolor(color) - устанавливает цвет в сolor
забей в поиск initgraph.

Это сообщение отредактировал(а) kBepTu - 9.12.2007, 20:40
PM   Вверх
Kosilas
Дата 13.12.2007, 20:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Прошу помощи ...
Сказали что для ргр (что я пробывал делать) ето просто =\
Подсказали сделать чтото типа бильяда. Шарики стоят и в них врезается другой. Как только растояние между шариками делается меньше их радиуса, они оталкиваются.  
Кто может уже делал подобное ? А то для меня ето пока тяжело, да и времени нехватает завал не только по информатике. =\
PM MAIL   Вверх
Animator
Дата 14.12.2007, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 61
Регистрация: 7.5.2007

Репутация: 1
Всего: 0



Можешь написать РГР использую WinApi. На нём пишут оконные приложения для ОС Windows
(если ты конечно под эту ОС надо).  Он позволяет работать с графическим оконным интерфейсом.
Есть функции для отрисовки стандартных примитивов(кружочек, прямоугольник). На нём просто организовать 
анимацию. Вот пример работы с клавитурой Клавиатура в WinApi
А вообще я бы рекомендовал тебе посоветоватся с твоим преподавателем.
Потому что мне кажется что вот эти самые кружочки и палочки должны  быть представлены в
виде псевдографики причём в консоле. 
Помню сам на первом курсе делал арканоид. Но там мы работали с консолью в Линухе и как раз использовали только псевдографику. Помню подключали специальную либу в проект ncurses.lib/h.
PM MAIL ICQ   Вверх
Kosilas
Дата 14.12.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



С преподавателем я советовался.
Сказал или бильярд или маятник или маятник на пружине. Все в таком духе. Учитывать физику.
Но с графикой я несталкивался. =\
Все это нуно делать в C++ борланд 3,1.
Вот незнаю за что даже зацепится и  с чего начать.
PM MAIL   Вверх
Kosilas
Дата 15.12.2007, 19:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Хочу заставить квадрат\прямоугольник двигаться.
Что не так ? Посморите...
Код


#include<conio.h>
#include<graphics.h>
#include <dos.h>
#include <stdio.h>

#define KEY_ARROW_UP       72
#define KEY_ARROW_RIGHT  77
#define KEY_ARROW_DOWN  80
#define KEY_ARROW_LEFT     75

void main()

{
int gdriver = DETECT, gmode;
initgraph(&gdriver, &gmode, "f:\\progi\\bc31\\bgi");
  int iKey = getch();
  switch(iKey)



    {
   case KEY_ARROW_UP:
    setfillstyle(1,RED);
    setcolor(GREEN);
bar(30,60,10,100);

      }



    getch();
closegraph();
}



Это сообщение отредактировал(а) Kosilas - 15.12.2007, 19:40
PM MAIL   Вверх
kBepTu
Дата 16.12.2007, 02:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 68
Регистрация: 6.12.2007

Репутация: 2
Всего: 2



Код

#include<conio.h>
#include<graphics.h>
#include <dos.h>
#include <stdio.h>
#define KEY_ARROW_UP       72
#define KEY_ARROW_RIGHT  77
#define KEY_ARROW_DOWN  80
#define KEY_ARROW_LEFT     75
void main()
{
int gdriver = DETECT, gmode;
int x1=30, y1=60, dx=60 ,dy=40;
int iKey;
initgraph(&gdriver, &gmode, "f:\\progi\\bc31\\bgi");
// здесь было здорово сделать проверку на наличие ошибок при переходе в графический режим
setcolor(GREEN);
bar(x1, y1, x1+dx, y1+dy);
  while((iKey = getch())!=27);// 27 по моему ESC
   {
  switch(iKey)
    {
   case KEY_ARROW_UP: {
                          setcolor(0);                           // закрашиваем старый квадрат
                          bar(x1, y1, x1+dx, y1+dy);   //              
                          setcolor(GREEN);                           
                          bar(x1, --y1, x1+dx, y1+dy); // рисуем новый
                                        }
.....................................................
.....................................................
//    setfillstyle(1,RED); - не знаю что это :)
    
      }
    }
    getch();
closegraph();
} 


Это сообщение отредактировал(а) kBepTu - 16.12.2007, 02:44
PM   Вверх
Kosilas
Дата 16.12.2007, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 7.12.2007

Репутация: нет
Всего: нет



Спс конечно, по нажатию кнопки "Вверх" у меня ничего не происходит, и прога вылитает.
Код

#define KEY_ARROW_UP       72

Может ето нета команда или изменить как-нить по другому ?
что значит 72 ??
PM MAIL   Вверх
Dogo
Дата 16.12.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 9



Цитата(Kosilas @  16.12.2007,  11:50 Найти цитируемый пост)
Спс конечно, по нажатию кнопки "Вверх" у меня ничего не происходит, и прога вылитает.

Я же уже давал ссылку на сообщение с примером обработки нажатия управл. клавиш...
Цитата(Dogo @  9.12.2007,  00:16 Найти цитируемый пост)
Здесь написано о том, как заставить работать стрелки и др. функциональные клавиши.

Видимо Copy Paste рулит (в этом случае)...
Код

#define KEY_ARROW_UP       72
    
#define KEY_ARROW_RIGHT  77
    
#define KEY_ARROW_DOWN  80
    
#define KEY_ARROW_LEFT     75
    

if(kbhit())
    
{
    
  int iKey = getch();
    
  switch(iKey)
    
  {
    
    case KEY_ARROW_UP:
    
    cout<<"\a";
    
    break;
    

    case KEY_ARROW_RIGHT:
    
    cout<<"\a\a";
    
    break;
    

    case KEY_ARROW_DOWN:
    
    cout<<"\a\a\a";
    
    break;
    

    case KEY_ARROW_LEFT:
    
    cout<<"\a\a\a\a";
    
    break;
    
  }
    
}
    





  

--------------------
 
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0548 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.