Как много нам открытий дивных.....
[info]oppx
Как много нам открытий дивных готовит просвещения дух.
Я часто задаюсь вопросом как. Пожалуй это мой любимый вопрос. Я так думаю, что все предыдущие посты я писал только для того, чтобы ответить на этот вопрос. И вот у меня появился очередной вопрос как: Как можно сделать две операционные системы на одном компьютере и как сделать между ними связь. На самом деле оказалось все достаточно просто.
1. Я задумал установить Ubuntu 10.10 и Вин 7 (ранее у меня уже стояла похожая связка, но с младшими версиями по). вопрос как.
Нужно создать четыре раздела (1 - ntfs (для Вин), 2- ntfs (для обмена м/д ними и для хранения всех файлов), 3 - ext4 (для Ubuntu), 4 -swap (для подкачки)). Именно в таком порядке, потому что Вин не умеет грузиться с последнего раздела.
Установить нужно сначала Вин, а потом Ubuntu (потому что Вин не умеет делиться с другими ос загрузочным сектором)
Потом я накатил на Ubuntu Win2-7 (это целый набор компонентов для закоса под Вин). Оказалось, что Ubuntu может быть очень похожа на Вин 7 (сам не знаю зачем, скорее всего, чтобы моей жене было удобно работать). Иногда я начинаю экспериментировать с Ubunt'ой и она перестает работать правильно. На устранение неисправностей уходит достаточно много времени порой. Так вот чтобы жене было проще адаптироваться  в такие моменты я и сделал их похожими.
Вот так. Игру я забросил. За это время в моей жизни вообще много поменялось и почти все изменения связаны с новой работой.
Tags:
  • Add to Memories

Многое меняется
[info]oppx
Хочу поделиться своими мыслями о том, насколько все изменчиво. И изменчивасть эта происходит очень быстро. Уже и не понятно как и по каким причинам весь график "одночасового" производства игр сбился. У Лехи началась сессия и он часто уезжает в институт, поэтому одночасовый кодинг у него не получается. Я же стал писать просто, когда вздумается - в основном по ночам.
Идея первой игры тоже очень сильно поменялась (надеюсь, что в лучшую сторону). Я вобще не планировал большую игру. Хотел такую, чтобы написать легко можно было и с графикой не заморачиваться особо. Ан нет получилась достаточно сложная (в плане кода) игра. И еще я заметил, что мой стиль в скриптовых языках очень схож и индусским (ну это я по слухам только - лично я индусского кода не видел). Что такое индусский код в моем ИМХО: когда непонятно для чего конкретно описана та или иная функция, но если ее переписать под свое понимание - работать точно ничего не будет.
Ну и про графику: с графикой в игре мне обещал помочь один отличный дизайнер, наш арт-директор и просто хороший человек - mr. Asci, за что ему большое спасибо.
Отобъет ли игра потраченых усилий и времени? Думаю - врядли даже половину отобъет.
  • Add to Memories

Haxe и Nape
[info]oppx
Нашел 2D физический движок для Haxe - Nape. Т.к. это первый физический движок,используемй мною - то не стану говорить о нем  и перейду сразу к кодам, которые я нашел там и благополучно доработал напильником. И так. Все вооружились Ubuntu и напильником? Тогда поехали:
1. Открываем терминал и пишем:
wget -P HaXeNape http://nape.googlecode.com/files/As3Nape.swc
cd HaXeNape
unzip As3Nape.swc
haxe --gen-hx-classes library.swf
cd hxclasses
mv * ../
cd ..
 

Cоздаем файл Main.hx
geany Main.hx

со следующим содержанием:
package;

import nape.Space;
import nape.PhysObj;
import nape.Tools;
//import nape.Geom;
import nape.PhysObj;
import nape.Properties;
import nape.UniformSleepSpace;
import nape.Body;
import nape.Material;

import flash.events.Event;
import flash.events.MouseEvent;
import flash.Lib;
import flash.display.StageQuality;
import flash.display.BitmapData;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;

class Main {
    static var space:Space;
    static var prop:Properties;
    static function main() {
        space = new UniformSleepSpace(0,0,800,600,15);
       
        //create NAPE text representation
        var tf = new TextFormat();
        tf.bold = true;
        tf.font = "Verdana";
        tf.size = 35;
       
        var text = new TextField();
        text.text = "OPPX";
        text.setTextFormat(tf);
        text.autoSize = TextFieldAutoSize.LEFT;
        var bit = new BitmapData(Std.int(text.width), Std.int(text.height), false, 0xffffff);
        bit.draw(text);
       
        //MASSIVE air resistance
        prop = new Properties(0.005, 0.005);
       
        var b:Body;
        for (x in 0...bit.width) {
            for (y in 0...bit.height) {
                if (bit.getPixel(x, y) & 0xff < 0x80) {
                    space.addObject(b = Tools.createBox(20 + x * 7, 120 + y * 7, 7, 7, 0, 0, 0, false, Material.Tire, 1, 0, prop));
                    Lib.current.addChild(b.graphic);
                }
            }
        }

        //set graphical quality to medium
        Lib.current.stage.quality = StageQuality.MEDIUM;
       
        //set up events
        Lib.current.addEventListener(Event.ENTER_FRAME, enterFrame);
        Lib.current.stage.addEventListener(MouseEvent.MOUSE_DOWN, mdown);
    }
   
    static function mdown(ev) {
        var b:Body;
        var mx = ev.stageX;
        var my = ev.stageY;
       
        var vx = 400 - mx;
        var vy = 300 - my;
        if (vx * vx < 250*250) vx = 0;
        else vx -= if (vx < 0) -250 else 250;
       
        space.addObject(b = Tools.createCircle(mx,my, 8, vx*6,vy*6, 0, false, true, Material.Steel, 1, 0, prop));
        Lib.current.addChild(b.graphic);
    }

    static function enterFrame(ev) {
        //step 1/60th of a second through time in space.
        //since there's no gravity, no need for many iterations
        space.step(1/60, 1,1);
    }
}
 

И файл Hello.hxml
geany Main.hxml

со следующим содержанием:
-swf Hello.swf
-swf-header 800:600:60
-main Main
-swf-lib library.swf
-swf-version 10

И если сейчас попробовать собрать наш swf файл он будет ругаться на некий IntHash. Достаем напильник и пишем в терминале:
cd nape
sed -i 's/: IntHash;/: IntHash<String>;/g' Space.hx
cd ..

Т.е. заменяем ": IntHash" на ": IntHash<String>" в файле Space.hx
Теперь собираем:
haxe Main.hxml

И видим это: Hello.swf

Получилось здорово. Как раз то, что нужно для геймдевелопинга, а может и исче для чего-нибудь. А свою самую первую и самую простенькую игру я все-таки доделаю во flash cs3. Скоро уже напишу о ней здесь.
  • Add to Memories

Как я подружил Ubuntu, HaXe и AsWing
[info]oppx
Читал форумы про разработку flash игр и наткнулся на очнь интересный инструмент - HaXe. Ну все. Думаю НаХе использовать в своем начинании. Тем более, что HaXe межплатформенный, а на домашнем компе в основном пользуюсь Ubuntu (люблю знаете ли делать все долго, но на века). А еще с помощью HaXe можно делать PHP сайты. ОНО. ТОЧТОНАДО. С сайта я успешно скачал haxe-2.05-linux.tar.gz. И спросил себя "Ну и НаХе ты это скачал?". Снизу есть пример как установить это дело под Ubuntu. Пишу в терминале
sudo aptitide install haxe neko

А терминал меня спрашивает: "Ну и НаХе ты это написал?". Исправляюсь и говорю ему так:
sudo apt-get install haxe neko

Ого. пошел процесс. Терминал мило спросил хочу ли я это установить или я написал это в нетрезвом уме и памяти. Говорю Да и понеслась. Ага. Готово. Теперь нужна IDE. Думаю FlashDevelop - ничего подобного (только Window). Потом взглянул в сторону Eclipe. Eclipse же глядеть в мою сторону отказался и намекнул на деньги. Ок. Не сдаемся так быстро. Смотрим в сторону Vim или Geney. Мне приветливо улыбнулся Geany (не совсем то, что хотелось, но идти дальше все-таки надо). Хмм... Что дальше? Ах да пишем "Hello World". Использовать будем AsWing. Для этого в терминале проделайте следущее:
wget -P HeXeAS http://aswing.googlecode.com/files/aswing_1.5_allinone.zip
cd HeXeAS
unzip aswing_1.5_allinone.zip
unzip aswing_1.5_allinone/AsWing/bin/AsWing.swc
haxe --gen-hx-classes library.swf
mv hxclasses/org org

Потом создайте файл Hello.hx 
geany Hello.hx

со следующим содержанием:
import org.aswing.JButton;
import org.aswing.JFrame;
import org.aswing.geom.IntDimension;

import flash.Lib;
import flash.display.Sprite;
import flash.display.StageScaleMode;

class Hello extends Sprite {
    public function new() {
        super();
        //create a frame
        var frame : JFrame = new JFrame( this, "HelloApp" );
        
        frame.setSize(new IntDimension( 200, 120 ) );
        //create a button
        var button:JButton = new JButton("Hello from AsWing in Haxe!");
        
        //add the button to the frame
        frame.getContentPane().append(button);
        
        //add the frame to the stage
        Lib.current.stage.addChild(this);
        this.stage.scaleMode = StageScaleMode.NO_SCALE;
        
        //show it!
        frame.show();
    }
    public static function main() {
        new Hello();
    }
}

И файл Hello.hxml
geany Hello.hxml

с таким вот содержанием:
-swf Hello.swf
-swf-header 600:400:21:ffffff
-main Hello
-swf-lib library.swf
-swf-version 9

И компилируем:
haxe Hello.hxml

Получилось здорово (файл "Hello.swf"). Незнаю подойдет ли это для игр наверно подойдет, но AsWing немного не для игр, а посему игры буду пробовать писать все также во flash сs3 и искать другие библиотеки для Hexe

Пример здесь
  • Add to Memories

Нужен блог
[info]oppx
"Нужен блог" - сказал я сам себе. Хочу рассказывать и писать о программировании и еще по чуть-чуть о всяком. Если конкретнее - этот блог будет посвящен моим начинаниям и не только. Вдохновил меня на все это Johnny-K. А собираюсь я писать flash игры, php и flash сайты. Начитавшись Женин блог я понял, что хочу написать игру. Сразу хочу сказать, что опыта программирования под flash у меня было немного и то в очень старой версии (Flash MX), даже и не помню какой as там был... то ли первый, то-ли второй. Зато вот другие языки я знаю чуть лучше. Думаю, что знание Javascript мне поможет ;)
В силу своей лени ("не диванной, а лени завершить то, что начал" - Johnny-K) решил подбить на это еще одного своего товарища (Алле XP alexpee). Вместе мы с ним договорились, что будем в течении месяца писать игру, каждый свою. А через месяц посмотрим у кого лучше получилось будет больше бабла с его игрой/играми. Писать и параллельно изучать flash cs3 мы будем по одному часу в день (с 17-18). "Почему именно так?" - кто-то из вас спросит. Потому что рабочий день у нас с 9-18. Дома жены, дети и куча обещанных сайтов (об обещанных сайтах я напишу завтра позже). А на работе бывает за целый день все так надоедает и мы в пять часов создаем в CS: Source. И вот вчера я сказал своему коллеге по цеху: "Все. начинаем мутить в другой cs - ??? - flash cs3. Ну что ж посмотрим19.06.2010 что из этого выдет. Задумка уже есть о первой игре, но говорить о ней пока не буду, дабы не спугнуть.
  • Add to Memories

You are viewing [info]oppx's journal