Помогите пожалуйста... [builder c++]

  • Автор темы I AM
  • 2718
  • Обновлено
  • 25, Feb 2010
  • #1
Добрый вечер... Помогите решить проблему в моём коде... Есть программа (ссылка на источник): www*intbook*info/C/Glava_03/Index17*htm (вместо * точка .) И мой вариант (bulder с++ - проэкт): dl*altfast*ru/content/users/dimka/~temp/kopabl*rar (вместо * точка .) Проблема заключается в следующем месте: После компиляции выскакивает две ошибки связанные со строчками: void __fastcall TForml::Ship(int x, int y) и Ship(х, у) ; Программа не может определить что такое Ship(int x, int y) Может его как то следует задать или подключить библиотеку, модуль или еще что либо?... Расскажите пожалуйста... Заранее огромнейшее спасибо!...

I AM


Рег
23 Jul, 2011

Тем
49554

Постов
57426

Баллов
552966
  • 12, Mar 2010
  • #2
МОЙ код программы:

//---------------------------------------------------------------------------

#include

#pragma hdrstop

#include "Unit1.h"

#define Unit1

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

#include

#include

#include

#include

#include

#include

#include

#include "CGRID.h"

AnsiString aPath; // каталог, в котором находится иллюстрация

TSearchRec aSearchRec; // результат поиска файла

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

int x = -68, y = 50; //начально положение точки

//int y = 50; //начально положение точки

//рисуем на поверхности формы кораблик

void __fastcall TForm1::Ship(int x,int y)

{

int dx = 4, dy = 4; //шаг сетки

//int dy = 4; //шаг сетки

/*корпус и надстройку будем рисовать

при помощи метода polygon*/

TPoint p1[7]; //координаты точек корпуса

TPoint p2[8]; //координаты точек надстройки

TColor pc,bc; //текущий цыет карандаша и кисти

//сохраним поточный цвет карандаша и кисти

pc = Canvas->Pen->Color;

bc = Canvas->Brush->Color;

// выставляем нужный цвет карандаша и кисти

Canvas->Pen->Color = clBlack;

Canvas->Brush->Color = clWhite;

//рисуем корпус

p1[0].x = x; p1[0].y = y;

p1[1].x = x; p1[1].y = y-2*dy;

p1[2].x = x+10*dx; p1[2].y = y-2*dy;

p1[3].x = x+ll*dx; p1[3].y = y-3*dy;

p1[4].x = x+17*dx; p1[4].y = y-3*dy;

p1[5].x = x+14*dx; p1[5].y = y;

p1[6].x = x; p1[6].y = y;

Canvas->Polygon(p1,6);

//надстройка

p2[0].x = x+3*dx; p2[0].y = y-2*dy;

p2[1].x = x+4*dx; p2[1].y = y-3*dy;

p2[2].x = x+4*dx; p2[2].y = y-4*dy;

p2[3].x = x+13*dx; p2[3].y = y-4*dy;

p2[4].x = x+13*dx; p2[4].y = y-3*dy;

p2[5].x = x+11*dx; p2[5].y = y-3*dy;

p2[6].x = x+10*dx; p2[6].y = y-2*dy;

p2[7].x = x+3*dx; p2[7].y = y-2*dy;

Canvas->Polygon(p2,7);

Canvas->MoveTo(x+5*dx,y-3*dy);

Canvas->LineTo(x+9*dx,y-3*dy);

//капитанский мостик

Canvas->Rectangle(x+8*dx,y-4*dy,x+11*dx, y-5*dy);

//труба

Canvas->Rectangle(x+7*dx,y-4*dy,x+8*dx,y-7*dy);

//иллюминаторы

Canvas->Ellipse(x+11*dx,y-2*dy,x+12*dx,y-1*dy);

Canvas->Ellipse(x+13*dx,y-2*dy,x+14*dx,y-1*dy);

//мачта

Canvas->MoveTo(x+10*dx,y-5*dy);

Canvas->LineTo(x+10*dx,y-10*dy);

//оснастка

Canvas->Pen->Color = clWhite;

Canvas->MoveTo(x+17*dx,y-3*dy);

Canvas->LineTo(x+10*dx,y-10*dy);

Canvas->LineTo(x,y-2*dy);

//восстановим цвет карандаша и кисти

Canvas->Pen->Color = pc;

Canvas->Brush->Color = bc;

}

void __fastcall TForm1::Timer1Timer(TObject *Sender)

{

/* стереть кораблик — закрасить цветом, совпадающим

с цветом фона (формы) */

Canvas->Brush->Color = Form1->Color;

Canvas->FillRect(Rect(x-1,y+1,x+68,y-40));

// вычислить координаты базовой точки

x+=3;

if (x > ClientWidth) {

// кораблик "уплыл" за правую границу формы

x=-70; // чтобы кораблик "выплывал" из-за левой границы формы

y=random(Form1->ClientHeight);

}

// нарисовать кораблик на новом месте

Ship(x,y);

}

//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)

{

/* Таймер можно настроить во время разработки программы

(в процессе создания формы) или so время работы программы.

*/ // настройка и запуск таймера Timer1->Interval = 100; // период события OnTimer -0.1
 

I AM


Рег
23 Jul, 2011

Тем
49554

Постов
57426

Баллов
552966
  • 02, Jun 2010
  • #3
с этим разобрался сам... а как теперь сделать, что бы он плыл не по прямой а по синусоиде?...
 

I AM


Рег
23 Jul, 2011

Тем
49554

Постов
57426

Баллов
552966
Тем
49554
Комментарии
57426
Опыт
552966