|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.12.2010, 21:31 | #1 |
Регистрация: 14.10.2010
Сообщений: 6
|
Нужно доделать игру
Посмотрите, пожалуйста, код программы и исправьте ошибки (программа написана на PascalABC.NET). Вот код:
program shariki; uses GraphABC; type Ball = record x, y, r, dx, dy, vx, vy, SBD: integer; c: Color; del: boolean; procedure Init(xx, yy, rr: integer; cc: Color); //инициализирует данные begin x := xx; y := yy; r := rr; c := cc; vx := random(-3, 3); vy := random(-3, 3); SBD := Random(10, 20); repeat dx := Random(7) - 3; dy := Random(7) - 3; until (dx <> 0) or (dy <> 0); end; procedure Draw; // рисует объекты begin Brush.Color := c; FillCircle(x, y, r); end; procedure Hide; // <прячет> объекты begin Brush.Color := clWhite; FillCircle(x, y, r + 2); end; procedure MoveTo(xx, yy: integer); // элемент <Move> begin Hide; x := xx; y := yy; Draw; end; procedure MoveOn(dx, dy: integer); // элемент <Move> begin MoveTo(x + dx, y + dy); end; procedure Delete;// удаляет шарики при столкновении procedure BallStep; // обычное движение шариков begin if (x + dx - r <= 0) or (x + dx + r >= WindowWidth) then dx := -dx; if (y + dy - r <= 0) or (y + dy + r >= WindowHeight) then dy := -dy; x += dx; y += dy; end; procedure Move; //двигает объекты begin BallStep; MoveOn(vx, vy); Draw; end; end; var player, d: Ball; b: array[1..100] of Ball; a: integer; procedure Ball.Delete; // удаляет шарики при столкновении begin d.Init(10, 180, 20, clBlue); d.Draw; while true do begin ClearWindow; d.Move; end; del := false; if d = player then begin Hide; del := true; end; end; procedure MyKeyDown(key: integer); // реакция на нажатые клавиши begin case key of vk_left: player.MoveOn(-5, 0); vk_right: player.MoveOn(5, 0); vk_up: player.MoveOn(0, -5); vk_down: player.MoveOn(0, 5); vk_F3: player. r += 2; vk_F4: player. r -= 2; vk_F5: player. c := clRandom; end; a += 1; TextOut(5, 10, a.ToString); end; begin var n: integer := 50; player.Init(Window.Center.X, Window.Center.Y, 30, clRed); player.Draw; OnKeyDown := MyKeyDown; for var i := 1 to n do //добавление массива шариков <50> begin LockDrawing; b[i].Init(270, 180, 20, clBlue); end; Redraw; while True do begin ClearWindow; for var i := 1 to n do b[i].Move; Redraw; Sleep(10); end; end. |
22.12.2010, 22:18 | #2 |
Заблокирован
Регистрация: 22.12.2010
Сообщений: 3
|
чувак, месяцок подожди, бейсик доучу, паскаль выучу, помогу!
если конешно темку твою не закроют или не поздно будет |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
записи. доделать нужно.. | Shelena | Помощь студентам | 5 | 21.11.2010 18:26 |
нужно доделать. на паскале | ddeman666 | Помощь студентам | 1 | 14.06.2010 18:08 |
Нужно доделать 2 сайта | Irina-70 | Фриланс | 1 | 19.02.2009 15:48 |
Доделать браузерную игру | Beliar | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 31.07.2008 19:24 |
Доделать браузерную игру. | Beliar | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 31.07.2008 15:07 |