Воскресенье, 24 Ноября 2024, 13:50

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Модератор форума: Gnomov  
Модуль игры на PascalABC.NET
KRONMAGДата: Суббота, 25 Октября 2014, 18:17 | Сообщение # 1
уже был
Сейчас нет на сайте
Хочу предоставить сырой модуль игры написанный на 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
SaiteiДата: Суббота, 25 Октября 2014, 21:19 | Сообщение # 2
старожил
Сейчас нет на сайте
Цитата KRONMAG ()
fon(

и т.п. убрать. Плохой стиль это...
А ещё нужно придумать архитектуру игры... Всё в одном модуле хранить как-то...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг