ewoke: (Default)
Сунулся я FreeBasic изучать, не на словах, а на деле,

И вижу, что для например вполне логичной вещи как вывод TrueType, нет ничего, кроме каких-то костылей, именуемых библиотеками:

- костыль1 рендерит фонт с указанными хар-ками в BMP, откуда буквы по-тайлово можно выводить на экран в виде спрайтов.
- костыль2 работает со своим векторным форматом шрифтов, в которые нужно конвертить TrueType.

это считается нормой, оказывается :c

Копнул еще чуть, и полезло,

http://freebasic.ucoz.com/freebasicvspurebasic.html

если собираться кодить на FB, нужно быть готовым делать все самому, на вин32апи. минус - требуется изучать. плюсы - не зависим от чужих поделок-библиотек, делающих то же самое через винапи, и еще плюс - глубокое понимание того, как устроена винда,

да, я клоню к ассембли.

FB -> WINAPI -> отладка приложений, вожделенный крак и реверс всего что движется.

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

p.s. бесполезные факты:

- тот, кто сподвиг на изучение FB, моложе меня на 18 лет.
- это именно тот путь, как я делал в 1998, кодил на C-- (нет, это не опечатка), совал это в отладчик и так приходило понимание, что и как работает на ассембли.
- наконец-то будут востребованы бумажные книги по Апи, купленные 12+ лет назад :)
ewoke: (Default)
предыдущие серии

http://ewoke.livejournal.com/305769.html
http://ewoke.livejournal.com/307789.html пилим lolpack

не, не работает. часа 4 ломал голову, голова стала квадратной. :)

Read more... )

https://yadi.sk/i/n64aXU2asPGo4

//

забавно получилось с FreeBasic, оно не присваивает нормально числа больше 14^14, например:

если пишем dim as ULONGINT n= 437893890380859375 или .. n = 15^15, во втором случае число больше.
хотя это одно и то же представление одного числа. т.е. лучше писать явно, не расчитывая что компилятор за тебя произведет расчет.
ewoke: (Default)
Марти, выставляй на 9 лет назад. Выставил? Закрывай дверь, пристегивайся, поехали


Давно хотел запостить мои наработки по A* алго (обхождения препятствий, нахождения кратчайшего пути).

(знаю, мелко. делайте "сохранить картинку как.." и потом открывайте с помощью просмотрщика картинок виндовс, там можно приблизить)





Это чего такое? Это условная песочница, в которой по углам сидят удав (зеленый кружок) и кролик (голубой, конечно же). В песочнице случайно выставляются препятствия, которые удав (двигается он конечно не по удавьи, но таким вырос) старается обойти. Если сбоку экрана появляются цифры, значит удав крепко задумался; на N-ном шаге он устанет и бросит попытки. Не смог добиться появления цифр.

Изначально писано на Qbasic. В архиве в папке FB скомпилированный под FreeBasic сорец. Закрыть - any key. Можно используя alt+enter сделать ее полноэкранной и обратно.

http://65wat.ru/fb/081115.zip

p.s. как же непривычно смотрится 1280*1024 после 80*50 и 320*200 :)
ewoke: (Default)
Увы, сегодня кодес как он есть, без комментариев.

Компелируете: fbc.exe -lang qb -s gui bounce3.bas

Read more... )

Файлы:
http://65wat.ru/fb/BOUNCE3.BAS
http://65wat.ru/fb/bounce3.exe

вдохновил на написание скринсейвер программы Dos Navigator, Molecula.
(там, все было разного размера, соот-но была разная масса и импульс).

ехидный наблюдатель заметит, что иногда шары пролетают сквозь рамку и застревают в ней- это багофича.

как пример того, к чему можно стремиться -> http://free-basic.ru/brazil.html
ewoke: (Default)
Чувствую, читатели ждут еще этих сладких кодесов. Куда же без них? Без кодесов, а стало быть и без их компеляции? :)

Компелировать: fbc.exe -lang qb -s gui bounce2.bas

SCREEN 12
ix = 10: iy = 100: ia = 30
DO

LINE (0, 0)-(319, 199), 3, B
CIRCLE (ix, iy), 10, 2
z1 = COS(ia * .0174): z2 = SIN(ia * .0174)
ix = ix + z1: iy = iy + z2

REM законы арканоида
rem неверное предположение! - IF ix > 319 THEN ia = ia - 90: ix = 319: GOTO skpp
rem неверное номер два - IF ix < 0 THEN ia = ia - 90: ix = 0: GOTO skpp
IF ix > 319 THEN ia = 180 - ia: ix = 319: GOTO skpp
IF ix < 0 THEN ia = 180 - ia: ix = 0: GOTO skpp

IF iy > 199 THEN ia = 360 - ia: iy = 199
IF iy < 0 THEN ia = 360 - ia: iy = 0

skpp:

sleep 1,1
LOOP UNTIL INKEY$ = CHR$(27)


Файлы:
65wat.ru/fb/bounce2.BAS
65wat.ru/fb/bounce2.exe

Исправил ошибку в своих исходниках на QBasic 10-летней давности. Увлекательно.

p.s. Заумное выражение ia * .0174 объясняется тем, что машина считает в радианах, а мы считаем в градусах.

p.p.s Продолжение следует. И надо бы научиться записывать это дело на Ютуб.
ewoke: (Default)
#FB windows
#Articles

сегодня интересуемся работой с мышью и графическими примитивами:

http://free-basic.ru/helprus/TutUsingMouse.html
http://freebasic.justforum.net/t119-topic

и небольшие усовершенствования программы из статьи про мышь )
sleep для того, чтобы процесс не ел 100% cpu
и возм-ть рисовать мышью, цвет взял произвольно

самому себе: видишь, как все несложно?
ewoke: (Default)


Шанс изучить любую предметную область состоит минимум в 2 вещах:

- practice makes perfect, т.е. чтение документации "как роман" ничего не даст; нужно именно тупо сидеть и клавишевать, пытаться понять как оно работает/не работает/вылавливать ошибки,

- непрестанно задавать вопросы, потому что если у Вас нет вопросов по теме (например, домашнему заданию), значит Вы либо все уже знаете (что маловероятно), либо ничего не знаете и не хотите знать/ничего не делаете (не делали дома).

поэтому задаем вопросы Гуглу:

"freebasic 100 cpu load"

получаем ответ вторым постом в теме http://www.freebasic.net/forum/viewtopic.php?f=5&t=22977

"freebasic hide console window"

ответ - третье сообщ-е в теме http://www.freebasic.net/forum/viewtopic.php?t=18914

Сложна, да? )

Что приятно, так помимо непосредственного ответа на вопрос, в поисковой выдаче вылезает много related- спама плюшек с других сайтов/форумов.

( кэп подсказывает, что конскольное окно можне не прятать, а просто не создавать, запустив компилятор с параметром "-s gui"

http://www.fredshack.com/docs/freebasic.html )

karaBAS

Oct. 8th, 2014 06:45 pm
ewoke: (Default)
, или компилируем старые проги для QBasic, в FreeBasic под Вин.

однажды (а может быть дважды) делал я заготовки для аркадных игрушек, сейчас взял одну из них - заготовка для asteroids (2006 год).

.. )

изменению подверглись всего 2 вещи - установка видеорежима + сделал паузу в 2000 раз больше.

также пришлось заREMить два строчки там где "гравити", - что именно я хотел этим тогда сказать, пока не понял.

компиляция - "fbc.exe alph.bas -lang qb"

alph

"муха", которая бегает за корабликом, это самонаводная ракета/пуля/вражина/нужное_вписать.
кружок, который появляется вокруг корабля, означает что вас подбили (здесь по идее должна выполниться процедура обработки попадания, с уменьшением кол-ва жизней/энергии).
управление кораблем при помощи православных WASD, выход ESC.
интересно сделана анимация "огня" из "движков" кораблика.

p.s. используя код, не забывайте про копирайт.
ewoke: (Default)
захотел я значит порисовать на Си. нашел исходник:

.. )


и дело не в том, что он там делает (рисует), а в том, как оно вообще может компилироваться.

что нужно после include windows.h вставить #include "stdafx.h", я на 15 минуту догадался.

но потом оно (MS VC 6.0) мне выводит следующие ошибки, честно, вызывающие желание разбить тяжелым предметом монитор, хоть он разумеется и не причем.

123

первое сообщение выворачивает мне мозги наизнанку.
что, сволота, тебе еще нужно? я просто хочу песать на ЯВУ, можно?

..

хороший faq по теме http://www.viva64.com/ru/b/0265/

..

подумал, Си (под вин) уже лет 15 мне не дается, может ну его в пень?

гугл ("freebasic") -> http://freebasic.net/get -> качаем .zip
дальше, http://www.freebasic.net/wiki/wikka.php?wakka=TutHowToProgGame1

берем кодес

Screen 13,8,2,0 ' Sets the graphic mode

Circle (150, 90), 10, 15

Do Loop Until Inkey$ = "Q" Or Inkey$ = "q"


не зная ничего о параметрах командной строки компилятора, делаем "fbc.exe ololo.bas"

получаем ololo.exe!

bas

и возникает простой вопрос: нахера все настолько усложнять, что написание подобной по классу программы становилось по сложности сопоставимо с написанием драйвера? Си не ЯВУ, это средний уровень, но все же.

хороший сайт по теме http://free-basic.ru
( http://free-basic.ru/tree_generator.html AWESOME особенно если sleep 1000 поставить перед loop в самом конце исходника)

Profile

ewoke: (Default)
ewoke

October 2025

S M T W T F S
   1234
5 67891011
121314 15161718
19202122232425
262728293031 

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 20th, 2026 02:24 pm
Powered by Dreamwidth Studios