Суббота, 18 Сентября 2021, 10:04

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
Форум игроделов » Записи участника » wcpt [446]
Результаты поиска
wcptДата: Четверг, 20 Февраля 2014, 12:47 | Сообщение # 401 | Тема: [C#] Недоступный массив
постоянный участник
Сейчас нет на сайте
банально конечно, но может ты просто объявил ссылку на массив, без последующего new в конструкторе/где либо еще?
wcptДата: Воскресенье, 05 Января 2014, 10:16 | Сообщение # 402 | Тема: Ожидание нажатия клавиши
постоянный участник
Сейчас нет на сайте
http://spike.scu.edu.au/~barry/interrupts.html#ah08
вот тут ф-ции прерывания 21h, там много ф-ций для ввода.
также можно использовать ф-цию bios 00 прерывания 16h, в al помещается скан-код клавиши:
Код
(...)
xor ah,ah
int 16h
cmp al,'Y'
jnz short @f
call FuncToCall
@@:
(...)


Сообщение отредактировал wcpt - Воскресенье, 05 Января 2014, 10:29
wcptДата: Суббота, 04 Января 2014, 18:57 | Сообщение # 403 | Тема: Возможно ли написать свой игровой движок на языке C#?
постоянный участник
Сейчас нет на сайте
с такими вопросами об этом автору точно рано задумываться. Очень хочется верить, что он не собирается мерить "крутость" языков программирования на основе задач, под которые они приспособлены, или же не приспособлены, аля "на си-шарпе ос не напишешь -> си-шарп для профанов, школьников и податного населения, давайте-ка я лучше си выучу"

Сообщение отредактировал wcpt - Суббота, 04 Января 2014, 19:06
wcptДата: Суббота, 04 Января 2014, 10:30 | Сообщение # 404 | Тема: Вот в общем то прочитал статью и задумался
постоянный участник
Сейчас нет на сайте
Цитата vasua99 ()
ООП будет полезно если только предварительно хорошо спроектировать структуру проекта.

а мозг полезен, только если им пользоваться. Хорошо продумать структуру хорошо не только для ооп. Но для него это как никогда важно, т.к. в хорошо спроектированном не-ооп коде всё равно рано или поздно запутаешься, если его масса приближается к критической. Естественно все будет яснее, если над кодом работает с десятка человек.

И да, так насколько ты же сведущ в ооп, что невзлюбил его, прочитав одну статейку?

Если против ооп, то не пользуйся "точкой" и "стрелочкой", а используй что-то типа prostosdelayetoiuspokoisya(VOID)


Сообщение отредактировал wcpt - Суббота, 04 Января 2014, 10:38
wcptДата: Воскресенье, 03 Ноября 2013, 21:43 | Сообщение # 405 | Тема: Возможно ли создание игр на C#
постоянный участник
Сейчас нет на сайте
без доп. библиотек - это как? Можно использовать System.Drawing - то же, что и gdi. Много кадров не получишь, но так можно же!
wcptДата: Четверг, 24 Октября 2013, 14:41 | Сообщение # 406 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
ideal - это по-моему из тасма, собственно, "режим" работы ассемблера. Про нее подсказать ничего не смогу, т.к. с тасмом слабо знаком
директива .model - директива упрощенной сегментации. Собственно, за тебя создает сегменты .code, .stack, .data и прочие, ну и указатели на них.
Также с .model используется "слово", указывающее используемую модель памяти - TINY, SMALL, и прочие.

Про пиксели - в виндовс на чистом ассемблере по-моему никак не установить, а вот в дос запросто - в реальном режиме, в котором работает дос, можно обращаться к реальной области памяти, предназначенной для вывода на экран. Существует МНОГО различных режимов, текстовых, или графических.
Допустим, хочешь поместить на экран пиксель определенного цвета в режиме 13h - 320x200x256. Используется прерывание 00h bios.
следующий фрагмент программы устанавливает режим 13h и устанавливает несколько пикселей на экране:

Код


;где-то ранее определяем макроподстановки
setpixel macro place,count,pixel           
           mov ax,0a000h   ;а вот и тот самый адрес, специально для вывода на экран в графическом режиме.
           mov es,ax
           cld  ;чтобы адреса увеличивались
           mov di,place    ;куда поместить первый пиксель
           mov al,pixel     ;номер пикселя из палитры(256 цветов всего!)
           mov cx,count  ;сколько пикселей установить
           rep stosb               ;помещаем содержимое al в es:di, пока сx!=0
endm

;Также нам надо установить палитру. Как помнится, можно устанавливать отдельные цвета, либо несколько, предварительно подготовив таблицу.
; устанавливаем один регистр(их всего 262к, по-моему, и одновременно на экране может быть показано только 256 из них)
;функция 10h
setregister macro num,red,green,blue             
           mov ax,1010h
           mov bx,num     ;номер регистра
           mov dh,red      ; компонент R, максимальное значение каждого компонента - 0x3F.
           mov ch,green   ; компонент G
           mov cl,blue       ; компонент  B
           int 10h
                     
endm

;устанавливаем режим 13h
mov ax,0013h
int 10h   ; функция 00 прерывания 10h, в al - номер режима.

setregister 0,3fh,0,0   ;красный цвет, первый регистр
setpixel  0, 10,0 ;самый первый пиксель,10 пикселей, первый регистр



надеюсь, не ошибся.

Добавлено (24.10.2013, 14:41)
---------------------------------------------
насчет Абеля - по-моему,это как раз то, что нужно.

И кстати - не рекомендую устанавливать пиксели через прерывания - это намного медленнее! Намного лучше слать все сразу в память(как в моем примере)


Сообщение отредактировал wcpt - Четверг, 24 Октября 2013, 15:07
wcptДата: Суббота, 19 Октября 2013, 19:32 | Сообщение # 407 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
это похоже на MASM, хотя, возможно, и для TASM тоже годится(я в основном с масм работал). Хотя если переменная с (точнее, ее имя) не мешает компиляции, тогда все-таки тасм, т.к. в масм с - по сути "ключевое слово".

Сообщение отредактировал wcpt - Суббота, 19 Октября 2013, 19:44
wcptДата: Четверг, 17 Октября 2013, 23:13 | Сообщение # 408 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
никак, если ты хочешь кинуть что-то из al, то используй movzx ax,al (знак теряется), либо movsx ax,al (с учетом знака), и потом push ax. Когда надо, исполняешь pop ax, и в al уже это самое число, что ты кидал в стек.

да, насчет mul верно, но если аргумент двухбайтовый, то результат в dx:ax, если четырехбайтовый, то в edx:eax, т.к. если перемножаются числа максимального порядка, то их произведение будет занимать в два раза больше места

or и and - побитовые операции
or - "или", логическое сложение, дизнъюнкция
таблица истинности
a b (a or b)
0 0 0
0 1 1
1 0 1
1 1 1

т.е. a or b = 0, если a=0 и b=0;

используется для "включения" битов:

допустим в al лежит 00001010
а маска равна 11110101
тогда после or al, 11110101b
в al будет 11111111

and - "и", логическое умножение, конъюнкция

a b (a and b)
0 0 0
0 1 0
1 0 0
1 1 1

т.е. a and b = 1 только если a=1 и b=1

используется для "выключения" битов, вычисления остатка от деления на степень двойки(в частности)

допустим в al лежит 11111010
а маска равна 00000101
тогда после and al, 11110101b
в al будет 00000000


Сообщение отредактировал wcpt - Пятница, 18 Октября 2013, 21:59
wcptДата: Вторник, 15 Октября 2013, 23:00 | Сообщение # 409 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
в регистры al/bl/cl/dl/ax/bx/cx/dx/eax/ebx/ecx/edx помещается 8/8/8/8/16/16/16/16/32/32/32/32 бит соответственно

cdq - конвертирование dword в qword. Если, допустим, в eax лежит значение 0E5EAF00, то после выполнения cdq в edx и eax будет 00000000 и 0E5EAF00 соответственно, если же в eax, допустим, AE5EAF00, то в edx и eax будет 11111111 и AE5EAF00 соответственно, т.е. cdq заполняет edx знаковыми битами eax.

что подразумевается под объединением и пересечением? and и or - побитовые операции с масками/регистрами

для чего sub ax,ax? Используй xor ax,ax - занимает меньше байт.

плюс к этому - команды типа push/pop al/bl случайно не ошибочны? Вроде однобайтные регистры не могут использоваться в операциях со стеком. Да и чем не устроил код, приведенный выше?


Сообщение отредактировал wcpt - Вторник, 15 Октября 2013, 23:32
wcptДата: Вторник, 15 Октября 2013, 15:08 | Сообщение # 410 | Тема: Просьба знатокам С и Visual С++
постоянный участник
Сейчас нет на сайте
что-то подсказывает, что это C#.
wcptДата: Понедельник, 14 Октября 2013, 22:15 | Сообщение # 411 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
Код
     
     mov al,[a] ;al=a
     mul al ; al=a*a
     add al,-5 ;al=a*a-5
     mov bh,al     
     mov al,[cc] ;al = ah     
     add al,3 ; al = c+3
     mul [a] ; al = (c+3)*a
     mov ah,7     
     mul ah ;al = (c+3)*a*7
     add bh,al ; bh=bh+al=a*a-5+(c+3)*a*7
     mov al,[cc] ; al=c
     div [b]
     sub bh,al ;bh=bh-c/d (но c/d=0, в принципе, можно было и опустить)



Сообщение отредактировал wcpt - Понедельник, 14 Октября 2013, 22:16
wcptДата: Суббота, 12 Октября 2013, 22:20 | Сообщение # 412 | Тема: Нахождение кратчайшего пути
постоянный участник
Сейчас нет на сайте
А клетки развесованы?
Автор, если тема актуальна еще, не молчи - помогу с поиском пути.


Сообщение отредактировал wcpt - Среда, 16 Октября 2013, 14:30
wcptДата: Суббота, 12 Октября 2013, 17:20 | Сообщение # 413 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
ну, насчет sub ax,ax - так никто не делает. Используют xor ax,ax. Кстати, иные ассемблерщики просто помешаны на битовых "трюках", им лишь бы размер программы уменьшить smile
Ну, в этом и заключается одно из достоинств ассемблера...
результат умножения будет либо в ax, либо в dx:ax, либо в edx:eax, в зависимости от размеров множителя. В данном случае в ax, т.к. перемножаются байты, т.е. максимальный размер произведения не превышает двух байт.
кстати - можно для операций lea использовать:
lea ax,[eax+eax*4] - умножить eax на 5 и поместить младшие 16 бит результата в ах. Но по-моему, байтовые регистры не могут быть приемниками, а в кач-ве "элементов" источника не могут выступать байтовые и двухбайтовые регистры, исключая bx и индексные регистры


Сообщение отредактировал wcpt - Суббота, 12 Октября 2013, 18:02
wcptДата: Воскресенье, 06 Октября 2013, 12:17 | Сообщение # 414 | Тема: Assembler
постоянный участник
Сейчас нет на сайте
ну, в ассемблере мы говорим не о четырех сегментах, а о четырех сегментных регистрах, для кода, данных, доп. для данных, стека. Ну и да, com-программа вся загружена в один сегмент.
Из книг я бы посоветовал Юров - ассемблер, учебник для вузов, и Зубков - Assembler для DOS, Windows и UNIX. Достаточно конкретно все расписано.


Сообщение отредактировал wcpt - Пятница, 11 Октября 2013, 18:15
wcptДата: Суббота, 28 Сентября 2013, 22:28 | Сообщение # 415 | Тема: Докажите мне, что ХНА - это что-то плохое
постоянный участник
Сейчас нет на сайте
Цитата (Amri)
Россия - это Россия. И здесь не США. Или я не прав?. И да , ты прав, особенная. Допустим, пакет оффис 365 = мой аванс.

Я был бы не прав, если бы так утверждал. Но я спрашивал у ТЕБЯ. Никто специально не будет подстраиваться под нищих, в стране, где и без того процветает пиратство, а "идти против системы", не покупая лицензию, считается нормой smile

Цитата (Amri)
в общем верно, но не верно....

ну так поясни, что неверно, а то совсем бессмысленно выходит

Цитата (Amri)
Я...

ну во-первых, я почти на сто процентов уверен, что ты не воспроизведешь все на том уровне, когда это можно будет назвать симулятором.
Если ты собрался писать это на хна(это во-вторых), то подумай еще раз - ведь есть вещи, подходящие для этого больше.
wcptДата: Суббота, 28 Сентября 2013, 12:45 | Сообщение # 416 | Тема: Докажите мне, что ХНА - это что-то плохое
постоянный участник
Сейчас нет на сайте
Цитата (Krazzt)
Т.е. они школьники только потому что не любят обожаемый тобой некрософт? Оригинальненько, чо.

Поразительные выводы! А теперь подумай, может ли это следовать из моего сообщения. Школьникам присущи и ненависть к мс, и желание выделится. Что не так?

Добавлено (28.09.2013, 12:40)
---------------------------------------------
Цитата (Amri)
про фри разговора не было. А сумма действительно большая, если брать по российской зп.

А кого россия по большому счету волнует? Что, особенная? За софт надо платить соответствующие деньги.

Добавлено (28.09.2013, 12:45)
---------------------------------------------

Цитата (DronCode)
Итак я пришел и готов глаголить истину :
1. XNA - это штука ,net языков т.е. твою игрулю я разберу до исходников за 3 минуты. (Terraria тому пример)
2. Безопасности там 0. (вытекает из первого примера)
3. Быстродействие явно проигрывает любому движку на C++ (тот же irrLicht будет побыстрее)
4. Не самая лучшая организациия ресурсов.
5. M$ не поддерживают её больше, а значит на то есть свои причины

1. А ты что, думаешь, что я пишу какой-то особенный код? Игру игрой делают не алгоритмы, а общая её концепция, которая от них не зависит.
2. То же.
3. Ну да, и что? Кто-то собирался симуляторы законов физики писать? Хна для инди подходит как раз, мороки намного меньше, что вытекает во-первых, из особенностей самого дотнета, а во-вторых - из структуры самого хна.
4. Поясни конкретнее, что имеешь в виду.
5. Ну да, не поддерживает, и причины кроются в невыгодности хна. Но кто запрещает ТЕБЕ его использовать?


Сообщение отредактировал wcpt - Суббота, 28 Сентября 2013, 12:41
wcptДата: Среда, 25 Сентября 2013, 18:18 | Сообщение # 417 | Тема: Докажите мне, что ХНА - это что-то плохое
постоянный участник
Сейчас нет на сайте
Цитата (RUNGOGET2THECHOPAH)
Почему всякие школьники так ненавидят майкрософт?

вот тоже постоянно задаюсь таким вопросом. Наверно, хотят выделиться из массы. Как школьники, естественно.

Добавлено (25.09.2013, 18:14)
---------------------------------------------
кстати, видел своего рода "голосование" за хна5. Кто хочет - проголосует
так же с этим связано голосование за реализацию дотнета на хбокс ван

Добавлено (25.09.2013, 18:18)
---------------------------------------------

Цитата (Amri)
если бы майкрософт выпускал менее глючную продукцию и не брал бы за нее большие суммы, то тогда бы и претензий к нему было бы на порядок меньше. Кста, по моему, они исправляются

глючную продукцию? Глюки есть, но их количество не критическое, а весьма характерное для продукта планетарного масштаба. Большие суммы? Ага, конечно - линюксодрыщам только фри и подавай.


Сообщение отредактировал wcpt - Среда, 25 Сентября 2013, 18:16
wcptДата: Среда, 25 Сентября 2013, 18:06 | Сообщение # 418 | Тема: Создание восьмибитного хороора под iOS
постоянный участник
Сейчас нет на сайте
восьмибитный... хоррор... под иос... как это все вяжется???

Сообщение отредактировал wcpt - Среда, 25 Сентября 2013, 18:07
wcptДата: Четверг, 19 Сентября 2013, 22:30 | Сообщение # 419 | Тема: Дайте Совет
постоянный участник
Сейчас нет на сайте
Ну, значение билдера можно скастовать в строку, и обращаться как со строкой - в чем проблема?
А при сравнивании строк == и так вызывается Equals(но тут точно не помню)


Сообщение отредактировал wcpt - Четверг, 19 Сентября 2013, 22:31
wcptДата: Четверг, 19 Сентября 2013, 22:27 | Сообщение # 420 | Тема: Какой синтаксис вам больше нравится
постоянный участник
Сейчас нет на сайте
Цитата (Andrey_M)
Вот в этом суть. Потому что не надо работать как крепостной во многих конторах.
С таким подходом ты сам нигде не будешь работать. Но что я - твоя логика типична для школьника


Сообщение отредактировал wcpt - Четверг, 19 Сентября 2013, 22:27
Форум игроделов » Записи участника » wcpt [446]
Поиск:

Все права сохранены. GcUp.ru © 2008-2021 Рейтинг