|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
20.12.2008, 14:09 | #1 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 12
|
Отражение рисунка от стенок
Я сделала кота, который двигается.. Теперь надо, чтоб он доходил до стенки и отражался.. Как? Могу програмку выслать..
|
20.12.2008, 14:25 | #2 | ||
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Где отражался? В зеркале сбоку от экрана?
Цитата:
Цитата:
Последний раз редактировалось mihali4; 20.12.2008 в 15:28. |
||
20.12.2008, 14:38 | #3 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 12
|
Это делала я.. я знаю, что нужно поменять знак, а куда его писать и как?
|
20.12.2008, 19:19 | #4 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 12
|
А что в этом такого? если я аписала, и не могу найти места для вставки?
|
20.12.2008, 20:06 | #5 |
Бредовый
Форумчанин
Регистрация: 15.11.2008
Сообщений: 285
|
Михалыч поддерживаю, (я тут недавно ос новую написал но забыл в какой каталог она устанавливается) :-)
хоть исходник выложела бы.
Чем точнее и проще задан вопрос, тем проще на него получить точный ответ.
|
20.12.2008, 20:14 | #6 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
Надежда.., думаю было бы проще программку выложить сюда, но если хотите, то вышлите на мыло. Попробую вам помочь.
Всегда рад помочь!
|
20.12.2008, 20:44 | #7 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 12
|
unit Canvas_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); procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} var x, y, dx: integer; procedure risunok; begin Form1.Canvas.pen.Color:=Form1.Color ; //telo Form1.Canvas.Brush.Color:=Form1.Col or; Form1.Canvas.Ellipse(x-100,y-125,x,y); //golova Form1.Canvas.Brush.Color:=Form1.Col or; Form1.Canvas.Ellipse(x-80,y-160,x-20,y-100); //lapki Form1.Canvas.Brush.Color:=Form1.Col or; Form1.Canvas.Ellipse(x-40,y-5,x-15,y+5); Form1.Canvas.Ellipse(x-60,y-5,x-85,y+5); //glazki Form1.Canvas.Brush.Color:=Form1.Col or; Form1.Canvas.Ellipse(x-55,y-125,x-65,y-145); Form1.Canvas.Ellipse(x-45,y-125,x-35,y-145); //ushki Form1.Canvas.MoveTo(x-85,y-165); Form1.Canvas.LineTo(x-75,y-145); Form1.Canvas.MoveTo(x-85,y-165); Form1.Canvas.LineTo(x-65,y-155); Form1.Canvas.MoveTo(x-15,y-165); Form1.Canvas.LineTo(x-25,y-145); Form1.Canvas.MoveTo(x-15,y-165); Form1.Canvas.LineTo(x-35,y-145); //nosik Form1.Canvas.Brush.Color:=Form1.Col or; Form1.Canvas.Ellipse(x-55,y-120,x-45,y-114); Form1.Canvas.MoveTo(x-50,y-114); Form1.Canvas.LineTo(x-50,y-110); Form1.Canvas.MoveTo(x-55,y-110); Form1.Canvas.LineTo(x-45,y-110); //ruchki //l Form1.Canvas.MoveTo(x-65,y-65); Form1.Canvas.LineTo(x-65,y-55); Form1.Canvas.LineTo(x-67,y-48); Form1.Canvas.LineTo(x-70,y-50); // Form1.Canvas.LineTo(x-75,y-60); //ruchki //r Form1.Canvas.MoveTo(x-35,y-65); Form1.Canvas.LineTo(x-35,y-55); Form1.Canvas.LineTo(x-33,y-48); Form1.Canvas.LineTo(x-30,y-50); // Form1.Canvas.LineTo(y-25,y-60); //hvostik Form1.Canvas.Brush.Color:=Form1.Col or; Form1.Canvas.MoveTo(x-25,y-5); Form1.Canvas.LineTo(x+10,y-15); Form1.Canvas.LineTo(x+25,y-35); Form1.Canvas.LineTo(x+50,y-120); Form1.Canvas.Arc(x+50,y-130,x+30,y-110,x+50,y-120,x+30,y-120); Form1.Canvas.MoveTo(x+30,y-120); Form1.Canvas.LineTo(x+5,y-35); Form1.Canvas.LineTo(x-20,y-15); //zrachki Form1.Canvas.brush.Color:=Form1.Col or; Form1.Canvas.Ellipse(x-58,y-137,x-62,y-133); Form1.Canvas.Ellipse(x-42,y-137,x-38,y-133); x:=x+dx; Form1.Canvas.pen.Color:=clBlack; //telo Form1.Canvas.Brush.Color:=clGray; Form1.Canvas.Ellipse(x-100,y-125,x,y); //golova Form1.Canvas.Brush.Color:=clWhite; Form1.Canvas.Ellipse(x-80,y-160,x-20,y-100); //lapki Form1.Canvas.Brush.Color:=clBlack; Form1.Canvas.Ellipse(x-40,y-5,x-15,y+5); Form1.Canvas.Ellipse(x-60,y-5,x-85,y+5); //glazki Form1.Canvas.Brush.Color:=clGreen; Form1.Canvas.Ellipse(x-55,y-125,x-65,y-145); Form1.Canvas.Ellipse(x-45,y-125,x-35,y-145); //ushki Form1.Canvas.MoveTo(x-85,y-165); Form1.Canvas.LineTo(x-75,y-145); Form1.Canvas.MoveTo(x-85,y-165); Form1.Canvas.LineTo(x-65,y-155); Form1.Canvas.MoveTo(x-15,y-165); Form1.Canvas.LineTo(x-25,y-145); Form1.Canvas.MoveTo(x-15,y-165); Form1.Canvas.LineTo(x-35,y-155); //nosik Form1.Canvas.Brush.Color:=clWhite; Form1.Canvas.Ellipse(x-55,y-120,x-45,y-114); Form1.Canvas.MoveTo(x-50,y-114); Form1.Canvas.LineTo(x-50,y-110); Form1.Canvas.MoveTo(x-55,y-110); Form1.Canvas.LineTo(x-45,y-110); //ruchki //l Form1.Canvas.MoveTo(x-65,y-65); Form1.Canvas.LineTo(x-65,y-55); Form1.Canvas.LineTo(x-67,y-48); Form1.Canvas.LineTo(x-70,y-50); // Form1.Canvas.LineTo(x-75,y-60); //ruchki //r Form1.Canvas.MoveTo(x-35,y-65); Form1.Canvas.LineTo(x-35,y-55); Form1.Canvas.LineTo(x-33,y-48); Form1.Canvas.LineTo(x-30,y-50); // Form1.Canvas.LineTo(y-25,y-60); //hvostik Form1.Canvas.Brush.Color:=clYellow; Form1.Canvas.MoveTo(x-25,y-5); Form1.Canvas.LineTo(x+10,y-15); Form1.Canvas.LineTo(x+25,y-35); Form1.Canvas.LineTo(x+50,y-120); Form1.Canvas.Arc(x+50,y-130,x+30,y-110,x+50,y-120,x+30,y-120); Form1.Canvas.MoveTo(x+30,y-120); Form1.Canvas.LineTo(x+5,y-35); Form1.Canvas.LineTo(x-20,y-15); //zrachki Form1.Canvas.brush.Color:=clBlack; Form1.Canvas.Ellipse(x-58,y-137,x-62,y-133); Form1.Canvas.Ellipse(x-42,y-137,x-38,y-133); end; procedure TForm1.FormActivate(Sender: TObject); begin x:=10; y:=200; dx:=5; Timer1.Interval:=100; Form1.Canvas.Brush.Color:=Form1.Col or; end; |
20.12.2008, 20:44 | #8 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 12
|
procedure TForm1.FormPaint(Sender: TObject);
var x1, y1:integer; begin x1:=250; y1:=250; with canvas do begin Randomize; x1 := Random(ClientWidth); y1 := Random(ClientHeight); begin if ((x1+250)<(ClientWidth)) then dx:=5 else dx:=-5; end; Form1.Canvas.pen.Color:=clBlack; //telo Form1.Canvas.Brush.Color:=clGray; Form1.Canvas.Ellipse(x1-100,y1-125,x1,y1); //golova Form1.Canvas.Brush.Color:=clWhite; Form1.Canvas.Ellipse(x1-80,y1-160,x1-20,y1-100); //lapki Form1.Canvas.Brush.Color:=clBlack; Form1.Canvas.Ellipse(x1-40,y1-5,x1-15,y1+5); Form1.Canvas.Ellipse(x1-60,y1-5,x1-85,y1+5); //glazki Form1.Canvas.Brush.Color:=clGreen; Form1.Canvas.Ellipse(x1-55,y1-125,x1-65,y1-145); Form1.Canvas.Ellipse(x1-45,y1-125,x1-35,y1-145); //ushki Form1.Canvas.MoveTo(x1-85,y1-165); Form1.Canvas.LineTo(x1-75,y1-145); Form1.Canvas.MoveTo(x1-85,y1-165); Form1.Canvas.LineTo(x1-65,y1-155); Form1.Canvas.MoveTo(x1-15,y1-165); Form1.Canvas.LineTo(x1-25,y1-145); Form1.Canvas.MoveTo(x1-15,y1-165); Form1.Canvas.LineTo(x1-35,y1-155); //nosik Form1.Canvas.Brush.Color:=clWhite; Form1.Canvas.Ellipse(x1-55,y1-120,x1-45,y1-114); Form1.Canvas.MoveTo(x1-50,y1-114); Form1.Canvas.LineTo(x1-50,y1-110); Form1.Canvas.MoveTo(x1-55,y1-110); Form1.Canvas.LineTo(x1-45,y1-110); //ruchki //l Form1.Canvas.MoveTo(x1-65,y1-65); Form1.Canvas.LineTo(x1-65,y1-55); Form1.Canvas.LineTo(x1-67,y1-48); Form1.Canvas.LineTo(x1-70,y1-50); Form1.Canvas.LineTo(x1-75,y1-60); //ruchki //r Form1.Canvas.MoveTo(x1-35,y1-65); Form1.Canvas.LineTo(x1-35,y1-55); Form1.Canvas.LineTo(x1-33,y1-48); Form1.Canvas.LineTo(x1-30,y1-50); Form1.Canvas.LineTo(y1-25,y1-60); //hvostik Form1.Canvas.Brush.Color:=clYellow; Form1.Canvas.MoveTo(x1-25,y1-5); Form1.Canvas.LineTo(x1+10,y1-15); Form1.Canvas.LineTo(x1+25,y1-35); Form1.Canvas.LineTo(x1+50,y1-120); Form1.Canvas.Arc(x1+50,y1-130,x1+30,y1-110,x1+50,y1-120,x1+30,y1-120); Form1.Canvas.MoveTo(x1+30,y1-120); Form1.Canvas.LineTo(x1+5,y1-35); Form1.Canvas.LineTo(x1-20,y1-15); //zrachki Form1.Canvas.brush.Color:=clBlack; Form1.Canvas.Ellipse(x1-58,y1-137,x1-62,y1-133); Form1.Canvas.Ellipse(x1-42,y1-137,x1-38,y1-133); end; end; procedure TForm1.Timer1Timer(Sender: TObject); begin risunok; end; end. |
20.12.2008, 21:35 | #9 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
У вас всё движение влево или вправо зависит от строчки x:=x+dx;. Следовательно можете использовать такой вариант вместо этой строки:
Код:
Всегда рад помочь!
Последний раз редактировалось Terran; 20.12.2008 в 21:39. |
20.12.2008, 21:59 | #10 |
Пользователь
Регистрация: 13.12.2008
Сообщений: 12
|
он у меня стукается об стенку, как только дотрагивается до правово бока кота.. как это изменить? И вы не ответили, есть ли вы в аське/агенте?
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вывод рисунка на печать | -=<[Evklidd]>=- | Мультимедиа в Delphi | 10 | 09.07.2010 18:38 |
WinApp на C++, замазывание рисунка | mat90x | Помощь студентам | 1 | 18.06.2008 21:48 |
Помогите с настройкой рисунка | GrEFon | HTML и CSS | 4 | 13.12.2007 18:52 |
Разгупировка рисунка | asale | Microsoft Office Excel | 1 | 23.10.2007 22:30 |
движение изображения с зеркальным отображением от стенок | nev | Помощь студентам | 6 | 11.06.2007 21:38 |