КОТ++
Прикладное программирование
Системное программирование
Программирование микроконтроллеров

640 Кб должно хватить для любых задач. (c) Билл Гейтс

Поиск по тегам

Опубликовано
Комментарии 0

TMNT Nightmare Dreams – самая первая игра, которую я сделал, была написана ещё в школьные годы, а это примерно 8 лет назад с момента написания поста. Игра написана в среде PascalABC.NET. Для вывода графики использовались стандартные PascalABC и .NET Framework наборы классов. Для проигрывания аудио была использована библиотека Bass.NET. Именно в процессе работы над этой игрой я узнал и освоил ООП.
Игра содержит всего два уровня, 4 персонажа, 3 вида врагов, 3 удара, прыжки. Жанр игры – beat em up. До конца доделана она не была, я лишь написал основной функционал.




Теги , , ,
Автор

Опубликовано
Комментарии 0

Сейчас я вам расскажу как сделать, чтобы ваша программа автоматически заносила в буфер данные из консоли. Зачем это нужно? Вдруг ваша программа делает какие-то безумно большие расчёты, а потом весь вывод вам нужно скопировать и использовать где-либо ещё для дальнейшей обработки.

Чтобы реализовать данную задачу будем использовать возможности платформы .NET

Как это работает: используем класс System.Diagnostics.Process для создания нового процесса с командной строкой. В командную строку на вывод перенаправляем простой echo вместе с командой clip.
Например:

echo yo | clip

скопирует в буфер обмена «yo»

Чтобы работать с несколькими строками будем использовать несколько echo (каждый echo переносит строку), чтобы отдать команде clip все наши echo будем использовать скобочки, например:

(echo yo & echo niga) | clip

И в завершение данного поста предлагаю посмотреть как это можно удобно упаковать в отдельные функции и использовать в своих программах:

var strClip: string;

procedure ClipStartOut();
begin
strClip := 'echo ';
end;

procedure ClipWriteLn(s: string);
begin
strClip += s + '& echo ';
end;

procedure ClipWriteLn(s: integer);
begin
strClip += s + '& echo ';
end;

procedure ClipExitOut();
begin
strClip := strClip.Remove(strClip.LastIndexOf('& echo'), 6);
var proc := new System.Diagnostics.Process();
proc.StartInfo := new System.Diagnostics.ProcessStartInfo('cmd', '/C (' + strClip + ') | clip');
proc.Start();
end;

begin
ClipStartOut();
ClipWriteLn(66);
ClipWriteLn(99);
ClipExitOut();
end.

Для начала работы с буфером надо вызвать процедуру ClipStartOut, для отправки текста в буфер - ClipWriteLn, для помещения всех данных отправленных через ClipWriteLn в буфер - ClipExitOut.

Всем clipboard, пасаны!

Теги ,
Автор