Название проекта: Tiny Жанр: Платформер Автор: Я офк Пространство: 2D На чем разрабатывается: Scirra Construct Вид в игре: Сбоку Платформа: PC Предоставление исходного кода игры: Не вопрос
Название проекта совсем крохотное... Очередной платформер? "Я ОФК"? не не слышал 2Д, проходили уже Скирра. Ну что же, респект Перешёл на новое Сбоку. Круто РС? Да ладно. Не верю Не вопрос? Кидай в ЛС
Создание игры для контакта. Эта тема поднимается каждым вторым! Но только каждый десятый знает как такое сделать. Что нам понадобиться:
Construct 2
Какой то бесплатный безрекламный хостинг (я юзаю narod.ru)
Прямость рук
Опыт в Construct [2]
Мозги
Итак, если у вас есть опыт в конструкте - начинайте свой проект (Внимание! Не проЭкт, проЭкты являются гадостью рунета!) Закончили Single? Переводим по немногу в приложение.
Есть одна статья, которая будет вам помогать всё время разработки, и она ВОТ Что же делать? Если вы опытный web дизайнер, то вам пофиг и эта статья вам нафиг не нужна. А если вы новичок, то тут есть материал вам в помощь
Итак, вам необходимо открыть страницу вашей игры. В тело страницы поместите это:
Итак, мы подключили API После загрузки страницы для инициализации приложения можно использовать следующий код:
Code
<script type="text/javascript"> VK.init(function() { // API initialization succeeded // Your code here }); </script>
Внимание! Инициализация приложения может закончится ещё до полной загрузки Вашего приложения
Обращение к ВКонтакте API Для осуществления вызовов к API необходимо использовать функцию VK.api - VK.api(methodName, {params}, callback)
Quote
methodName - имя метода params - как вы поняли, все параметры
VK.api принимает 3 параметра: 1) Название метода api. 2) Объект с параметрами запроса. 3) Функция для обработки результата.
Есть много newbie, которые считают что API не нужно! Они ошибаются! Без API приложение не будет для контакта! Или будет, но single...
Что же, создали вы игру, подключили API. Что делать дальше? ЧЁ ДАЛЬШЕ? Для примера используем Ghost Shooter Теперь создаём текстовый документ, в тело помещаем
Code
<!DOCTYPE html> <html manifest="offline.appcache"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /> <title>Ghost Shooter</title> <!-- Note: running this exported project from disk may not work exactly like preview, since browsers block some features on the file:// protocol. Once you've uploaded it to a server, it should work OK. -->
<!-- Allow fullscreen mode on iOS devices. (These are Apple specific meta tags.) --> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no, target-densitydpi=device-dpi" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <meta name="HandheldFriendly" content="true" />
<!-- All margins and padding must be zero for the canvas to fill the screen. --> <style type="text/css"> * { padding: 0; margin: 0; } body { background: #000; color: #fff; overflow: hidden; } canvas { position: fixed; } </style> </head>
<body> <div id="fb-root"></div>
<!-- The canvas must be inside a div called c2canvasdiv --> <div id="c2canvasdiv">
<!-- The canvas the project will render to. If you change its ID, don't forget to change the ID the runtime looks for in the jQuery events above (ready() and cr_sizeCanvas()). --> <canvas id="c2canvas" width="800" height="600"> <!-- This text is displayed if the visitor's browser does not support HTML5. You can change it, but it is a good idea to link to a description of a browser and provide some links to download some popular HTML5-compatible browsers. --> <h1>Your browser does not appear to support HTML5. Try upgrading your browser to the latest version. <a href="http://www.whatbrowser.org">What is a browser?</a> <br/><br/><a href="http://www.microsoft.com/windows/internet-explorer/default.aspx">Microsoft Internet Explorer</a><br/> <a href="http://www.mozilla.com/firefox/">Mozilla Firefox</a><br/> <a href="http://www.google.com/chrome/">Google Chrome</a><br/> <a href="http://www.apple.com/safari/download/">Apple Safari</a><br/> <a href="http://www.google.com/chromeframe">Google Chrome Frame for Internet Explorer</a><br/></h1> </canvas>
</div>
<!-- Pages load faster with scripts at the bottom -->
<!-- Construct 2 exported games require jQuery. To save bandwidth, by default this is set to grab it off the Google content delivery network (CDN). Fall back to local if not available. --> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> <script>window.jQuery || document.write("<script src='jquery-1.7.1.min.js'>\x3C/script>")</script>
<!-- The runtime script. You can rename it, but don't forget to rename the reference here as well. This file will have been minified and obfuscated if you enabled "Minify script" during export. --> <script src="c2runtime.js"></script>
<script> // Size the canvas to fill the browser viewport. jQuery(window).resize(function() { cr_sizeCanvas(jQuery(window).width(), jQuery(window).height()); });
// Start the Construct 2 project running on window load. jQuery(document).ready(function () { // Create new runtime using the c2canvas cr.createRuntime("c2canvas");
Теперь делаем главную страницу. Там будет "Начать игру", "Рекорды" Главное - чтобы не было "Открыть в новом окне" - всё должно быть в текущем. Думаю вы понимаете почему... Использование API - самое важное
Пример кода обработки события:
Code
VK.addCallback("onSettingsChanged", onSettingsChanged); ... function onSettingsChanged(settings) { // Пофиг что, главное чтобы было правильно! }
Пример выполнения запроса к API:
Code
VK.api("getProfiles", {uids:"1,2,3,4"}, function(data) { // Действия с полученными данными });
Во второй части мы будем разбирать, как сделать таблицу рекордов и немного поработаем над API
<script type="text/javascript" charset="cp1251" > window.onload = (function() { // когда загрузится вся страница VK.init(function() { // инициализируем Vk API
// узнаём flashVars, переданные приложению GET запросом. Сохраняем их в переменную flashVars var parts=document.location.search.substr(1).split("&"); var flashVars={}, curr; for (i=0; i<parts.length; i++) { curr = parts[i].split('='); // записываем в массив flashVars значения. Например: flashVars['viewer_id'] = 1; flashVars[curr[0]] = curr[1]; }
// получаем viewer_id из полученных переменных var viewer_id = flashVars['viewer_id'];
// выполняем запрос получения профиля VK.api("getProfiles", {uids:viewer_id,fields:"photo_big"}, function(data) { // обрабатываем полученные данные // выводим имя и фамилию в блок user_info document.getElementById('user_info').innerHTML = data.response[0].first_name + ' ' + data.response[0].last_name + '<br />'; // создаем img, для отображения аватарки var image=document.createElement('img'); // из полученных данных берем ссылку на фото image.src=data.response[0].photo_big; // добавляем img в блок user_info user_info.appendChild(image); });
}); }); </script> </head> <body> </body> </html>
В методах ВКонтакте API произошли изменения, используйте вместо метода getProfiles метод users.get xd_connection.js позволяет делать запросы к API ВКонтакте при помощи функции VK.api(String method, Object params, Function callback), при этом не нужно заботиться о подписи, версии Api, и анализе полученных данных, данные будут приходить в виде javascript объекта.
Теперь загружаем это всё на ваш сервер (в моём случае как я уже говорил я использую ЭТ) Теперь создадим само приложение
Состояние: Приложение включено и видно всем Тип приложения: IFrame Адрес IFrame: Ссылка на index.html
---
Припустим, набрали мы рекорд. Или другой случай, да пофиг Что же делать? На стену вывешивать надО! Читайте ---
Думаю на этом элементарное знакомство окончено А пока я не наумничал , читайте Документацию Если вы хотите на практике изучать API и Приложения, тогда вам сюда блина
Ghost Quest VS Ghost Quest. Новое издание: - • Обновленная графика первой локации - • Добавлена музыка - • Добавлены новые звуки и подкорректированы старые - • Перерисован один противник и анимация его атаки - • Увеличена скорость огненного кольца - • Усложнен первый босс - • Добавлены новые эффекты
Да, я действительно чувствую разницу. Кстате, лучше всё таки не дублировать темы. Лучше отредактировать первый пост в виде "2 части". Это могут воспринять как дубль