Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.11.2010, 16:18   #1
fuzo
Пользователь
 
Регистрация: 16.09.2010
Сообщений: 40
По умолчанию Разработать приложение, в котором имитируется идущий человечек.

Собственно сабж. Использовать нужно элемент Convas.
Даже не представляю как это можно выполнить. Помогите пожалуйста.

Последний раз редактировалось fuzo; 11.11.2010 в 16:56.
fuzo вне форума Ответить с цитированием
Старый 11.11.2010, 16:21   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Можно так:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Shape1: TShape;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
      Shape1.Left:=Shape1.Left+2;
      If Shape1.Left>=Form1.Width Then Timer1.Enabled:=False;
end;

end.
Правда, там не совсем человечек
_-Re@l-_ вне форума Ответить с цитированием
Старый 11.11.2010, 16:25   #3
fuzo
Пользователь
 
Регистрация: 16.09.2010
Сообщений: 40
По умолчанию

Нет ну это понятно. А как организовать человечка, чтобы руки ноги двигались :/
fuzo вне форума Ответить с цитированием
Старый 11.11.2010, 16:26   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

1. А зачем руки при ходьбе двигать?
2. Сделать две текстуры: в одной человечек начинающий шаг а во второй заканчивающий...Может, так?
_-Re@l-_ вне форума Ответить с цитированием
Старый 11.11.2010, 16:38   #5
fuzo
Пользователь
 
Регистрация: 16.09.2010
Сообщений: 40
По умолчанию

Я даже хз каким он должен быть.
Он мне представляется из палочек и кружка. Ж)

ой я ошибся, нужно с помощью элемента Canvas

Вот построил человечка а как заставить его идти?

Код:
Image1.Canvas.Brush.Color:=clRed;
Image1.Canvas.Ellipse(15,15,50,50);
image1.Canvas.MoveTo(30,50);
Image1.Canvas.LineTo(30,130);
image1.Canvas.MoveTo(30,130);
Image1.Canvas.LineTo(20,170);
image1.Canvas.MoveTo(30,130);
Image1.Canvas.LineTo(40,170);
image1.Canvas.MoveTo(10,80);
Image1.Canvas.LineTo(50,80);

Последний раз редактировалось Stilet; 13.11.2010 в 12:34.
fuzo вне форума Ответить с цитированием
Старый 13.11.2010, 10:16   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Вот построил человечка а как заставить его идти?
не знаю, насколько мой ответ Вам поможет, но, заставить его "идти" можно так же, как делается любая анимация: нарисовать позицию (то, что Вы сделали), выждать паузу (задержку). стереть нарисованное (часто используется тот же самый код, только цвет кисти и заливки делается равным цвету фона), посчитать новые координаты человечка (при необходимости изменить положение руки, ноги и т.п. - удобно для этого завести массивчик положений и перебирать их по индекску), вывести полученную фигурку на канву.
всё это делать в цикле (хоть в бесконенчном, хоть до достижения какого-то условия - например, достижения координат левого края экрана).
Это так. упрощённо...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 13.11.2010, 12:43   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пацаненок, скачущий на одной ноге:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    procedure FormPaint(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private

    { Private declarations }
  public
    { Public declarations }
  end;

var x,xr:integer;
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.FormPaint(Sender: TObject);
begin
with Canvas do begin
 Brush.Color:=clRed;
  Ellipse(x+20,15,x+40,50);
  MoveTo(x+30,50);
  LineTo(x+30,130);
  MoveTo(x+30,130);
  LineTo(x+20,170);
  MoveTo(x+30,130);
  LineTo(x+50,xr);
  MoveTo(x+10,80);
  LineTo(x+50,xr);
 end;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if xr=100 then xr:=70 else xr:=100;
 x:=x+100;
 Repaint;
end;


end.
Остальное в том же духе
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.11.2010, 14:50   #8
Z1000000
Форумчанин
 
Регистрация: 04.05.2010
Сообщений: 495
По умолчанию

И так далее.
Вложения
Тип файла: rar Идущий человек.rar (177.2 Кб, 19 просмотров)
Нажми на весы, поставь +
Для благодарностей : WebMoney WMR R252732729948
Z1000000 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработать приложение в соответствии с заданием BOTTAK Помощь студентам 2 29.10.2010 09:46
Требуется разработать мобильное приложение для сотовых телефонов и смартфонов DimIvanov Фриланс 1 05.04.2010 21:06
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила777 Фриланс 2 21.10.2009 11:05
VB2008. разработать приложение для конвертации валюты talisman-ydachi Помощь студентам 4 25.09.2009 19:35
Разработать в среде Borland Delphi приложение для расчета стоимости покупок. patron Помощь студентам 3 30.03.2008 15:12