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

Мы наблюдаем общество, которое все больше зависит от машин, но при этом использует их все неэффективнее. (с) Дуглас Рашкофф

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

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

Splinter Jump – вторая игра моего авторства. Вдохновлённый игрой Doodle Jump, а она была очень популярная почти 8 лет назад, я решил сделать свою игру с похожей механикой. Кроме паскаля я тогда ничего не знал, соответственно, и эта игра была написана на паскале, в среде PascalABC.NET. Суть игры заключается в том, чтобы прыгать по платформам и добраться до верха и найти телевизор. На уровне разбросаны сыр и напитки. Сыр нужно собирать для зарабатывания очков, напитки дают улучшенный прыжок на ограниченное время. Игра полностью завершённая, в ней реализованы все задуманные уровни, в игре 10 уровней, в некоторых уровнях присутствуют боссы. Персонаж игры может атаковать, соответственно механика не ограничена только прыжками по платформам.

Через пару лет, когда изучил flash, то я решил переписать эту же игру на нём и загрузить её во ВК. Но к сожалению, ВК больше не поддерживают flash игры и они отключили мою игру. Первые четыре скрина – версия для windows, написанная на pascal, последние четыре скрина – flash версия для ВК, написанная в среде FlashDevelop, как видно по скрину была добавлена возможность поставить игру на паузу.

Исходный код pascal версии: https://bitbucket.org/Eg0r/splinter-jump




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

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

Этот пост небольшая заметка о том, как мутануть оповещения во ВК с помощью Node.js. Почему на ноде спросит кто-нибудь, и я скажу, что нода потрясающий инструмент для быстрой и удобной реализации серверных программ. Напишем с вами вот такую либу, которая позволит легко запилить себе оповещения во ВК:
var request = require('request');
var deasync = require('deasync');

var url_get_access_token = "https://oauth.vk.com/token?grant_type=password&client_id=3697615&client_secret=AlVXZFMUqyrnABp8ncuU&username="
+ YOUR_LOGIN + "&password=" + YOUR_PASS + "&scope=4096&v=5.60";

var token = "";

init = function()
{
	request(url_get_access_token, function (error, response, body) 
	{
		if (!error && response.statusCode == 200) 	
		{
			var jObject = JSON.parse(body);
			token = jObject.access_token;
		}
	});
	while (token === "")
	{
		deasync.runLoopOnce();
	}
	return this;
}

sendMessage = function(text)
{
	request(encodeURI("https://api.vk.com/method/messages.send?access_token=" + token + "&user_id=" + YOUR_ID 
	+ "&message=" + text.replace(new RegExp("#", 'g'), "")), function (error, response, body) 
	{
		if (!error && response.statusCode == 200) 	
		{
			console.log(body);
			var obj = JSON.parse(body);
			if ((obj.error) && (obj.error.error_code == 5))
			{
				init();
				sendMessage(text);
				console.log("token false");
			}
		}
	});
}

module.exports.init = init;
module.exports.sendMessage = sendMessage;
Расскажу вкратце что тут происходит. Самое интересное это то, что приложение во ВК создавать не нужно, мы будем использовать данные официального приложения ВК для андроид и соответственно использовать методы API VK через него. Как это мы сделаем? Просто заюзаем client_id и client_secret чужого приложения.
Какие в этом плюсы?
1) Не надо создавать лишний раз приложение.
2) Гораздо меньше лимитов на отправку, т.к. приложение официальное.
Реализовано всего две функции: инициализация (получение токена) и отправка сообщения. В подробности реализации вдаваться я не хочу, тем более это просто пример.

А так можно использовать нашу либу в проекте:
var vk = require('./libs/vk').init();
...
vk.sendMessage(message);

Для тех кто скажет: "а почему бы не использовать готовый sdk для ноды?". Потому что ради одной функции отправки сообщений не целесообразно тянуть целое sdk.

Теги ,
Автор