KRONMAG | Дата: Суббота, 25 Октября 2014, 18:17 | Сообщение # 1 | Тема: Модуль игры на PascalABC.NET |
уже был
Сейчас нет на сайте
| Хочу предоставить сырой модуль игры написанный на pascalABC.NET,и созданную на нем игру(танки) Что есть: 1)Игровая музыка(wav формат) 2)Передвижение героя 3)Создание фона,иницилизация окна(размеры,название и т.д) В дальнейшем планирую ввести: 1)Систему уровней,мобов 2)Таблицу рекордов 3)Создать интерфейс сам код:
Код unit ABCConstructorgame;
interface
uses ABCObjects, graphABC, ABCSprites;
var x, y, width, height, opit, size, pred_key: integer; tank: ABCSprites.SpriteABC; hp: integer := 100; op: array [2..10] of integer := (10, 100, 400, 1000, 3000, 7000, 15000, 30000, 50000); level: integer := 1; dvig: boolean := true; paths: array of string;
procedure music(path: array of string); procedure crtact(x1, y1, size1: integer; path: array of string); procedure move(key: integer); procedure fon(w, h: integer; caption, path: string); procedure show; implementation
procedure crtact(x1, y1, size1: integer; path: array of string); begin paths := path; size := size1; tank := new ABCSprites.SpriteABC(x1, y1, size, path[1]); x := x1; y := y1; end;
procedure move(key: integer); begin if dvig = true then begin lockdrawing; if key = vk_up then begin if not (pred_key = key) or (pred_key = 0) then begin tank.Destroy; tank := new SpriteABC(x, y, size, paths[0]); end; if pred_key = key then begin y := y - 5; tank.MoveTo(x, y); sleep(10); end; end; if key = vk_down then begin if not (pred_key = key) or (pred_key = 0) then begin tank.Destroy; tank := new SpriteABC(x, y, 32, paths[1] ); end; if pred_key = key then begin y := y + 5; tank.MoveTo(x, y); sleep(10); end; end; if key = vk_right then begin if not (pred_key = key) or (pred_key = 0) then begin tank.Destroy; tank := new SpriteABC(x, y, size, paths[2]); end; if pred_key = key then begin x := x + 5; tank.MoveTo(x, y); sleep(10); end; end; if key = vk_left then begin if not (pred_key = key) or (pred_key = 0) then begin tank.Destroy; tank := new SpriteABC(x, y, size, paths[3]); end; if pred_key = key then begin x := x - 5; tank.MoveTo(x, y); sleep(10); end; end; pred_key := key; tank.RedrawNow; end; if (x > (width + 5)) or (x < -5) or (y > (height + 5)) or (y < -5) then begin tank.MoveTo(width div 2, height div 2); x := width div 2; y := height div 2; end; end;
procedure fon(w, h: integer; caption, path: string); begin setwindowsize(w, h); window.Fill(path); window.Caption := caption; window.IsFixedSize := true; width := w; height := h; end;
procedure music(path: array of string); var muz: array of system.Media.SoundPlayer; begin setlength(muz, path.Length); for var i := 0 to length(muz) - 1 do begin muz[i] := system.Media.SoundPlayer.Create; muz[i].soundlocation := path[i]; end; while muz.Length > 0 do begin for var i := 1 to muz.Length - 1 do muz[i].PlaySync; end; end;
procedure show; begin end;
end.
Пример заготовки игры
Сообщение отредактировал KRONMAG - Суббота, 25 Октября 2014, 18:19 |
|
| |