devolonter

Администратор

Активность: 4 дн. назад

  1. 4 мес. назад
    Wed Feb 22 21:42:14 2017
    devolonter прокомментировал круги или квадраты...

    Приветствую!

    Слишком маленький объект и сглаживание накладывают свои ограничения. Да, это нормальное поведение для стандартного 2D-рендера. В своем форке я перевел все на 3D-рендер, там результат получается чуть лучше. Но в данный момент форк заброшен.

    @Екатерина Вопрос вдогонку, контуры у фигур - эллипс, круг, квадрат, не рисуются? нужно какие-то еще процедуры придумывать?

    Нет, не рисуются. Самый простой способ - рисовать под основным объектом такой-же объект чуть большего размера.

  2. Sat Feb 18 12:54:43 2017
    devolonter прокомментировал hello world не работает.

    Да, у хрома все в порядке с поддержкой стандартов)

    @Екатерина Почему он в центре гдето?
    что за область над ним?

    Это своего рода консоль, а Print как раз предназначен для вывода информации в консоль, как и DebugLog. Область над ним - это место где располагается графическая часть (Mojo-приложение)

  3. Sat Feb 18 00:35:50 2017
    devolonter прокомментировал hello world не работает.

    Приветствую!
    Сразу вопрос в каком браузере тестируете, есть ли в нем поддержка HTML5? Также было бы неплохо взглянуть, вывод консоли браузера.

    Сам только что проверил чистую установку бесплатной версии, у меня проблем не возникло. Тестировал на этом коде:

    Function Main()
        Print "Hello World!"
    End
  4. в прошлом году
    Mon Mar 14 17:22:37 2016
    devolonter прокомментировал не стандартный "Array out of range".

    Похоже на невозможность выделить память под новый массив. Если объекты класса создаются достаточно часто, возможно имеет смысл использовать пул таких объектов, чтобы не создавать каждый раз по новой.

  5. Thu Mar 3 13:08:57 2016
    devolonter прокомментировал Как в Monkey задать Scale Mode и Orientation?.

    @Aim21 попробуйте #ANDROID_SCREEN_ORIENTATION = "sensorLandscape"

  6. Sat Feb 13 15:16:15 2016
    devolonter прокомментировал DrawImageRect vs GrabImage.

    Чтобы сохранить массив байт нужно использовать databuffer. К тому же в bmp есть обязательные заголовки. Вот рабочий пример найденный на оф. форуме

    Import brl.databuffer
    Import brl.filestream
    
    Class	BmpFile
    
    	Field	Width:Int  			' bmp image width
    	Field	Height:Int			' bmp image height
    	
    	Field	Pixels:Int[1]		' array for screen pixels
    
    	Field	FileSize:Int		' bmp file size
    	Field	Buffer:DataBuffer	' bmp file data (header + pixels)
    
    	Field	PadLineWidth:Int	' bmp real line size
    	
    	' default header for 24bpp image
    	Field	Header:Int[] = [ $42,$4D,$D6,$83,$00,$00,$00,$00,$00,$00,$36,$00,$00,$00,$28,$00,$00,$00,$6C,$00,$00,$00,$68,$00,$00,
    		$00,$01,$00,$18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$C3,$0E,$00,$00,$C3,$0E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ]
    	Const	FILE_SIZE		:=	$2
    	Const	IMAGE_WIDTH		:=	$12
    	Const	IMAGE_HEIGHT	:=	$16
    	Const	RAW_DATA_SIZE	:=	$22
    
    	Method Grab:Void( x:Int, y:Int, w:Int, h:Int )	' Call within OnRender after drawing the image to grab
    	
    		Width = w
    		Height = h
    		PadLineWidth = (((Width*3) + 3) / 4) * 4
    	
    		Pixels = Pixels.Resize( Width * Height )
    		ReadPixels Pixels, x, y, Width, Height
    			
    		FileSize = Header.Length() + PadLineWidth * Height
    		Buffer = New DataBuffer( FileSize )
    		
    		local ptr:Int
    		for ptr = 0 until Header.Length
    			Buffer.PokeByte ptr, Header[ptr]
    		next
    		
    		Buffer.PokeInt FILE_SIZE, FileSize
    		Buffer.PokeInt IMAGE_WIDTH, Width
    		Buffer.PokeInt IMAGE_HEIGHT, Height
    		Buffer.PokeInt RAW_DATA_SIZE, PadLineWidth * Height
    
    		local i:Int = 0
    		local pix:Int
    		for local ys:Int = 0 until Height
    			ptr = (Height - ys - 1) * PadLineWidth + Header.Length
    			for local xs:Int = 0 until Width
    				pix = Pixels[i]
    				Buffer.PokeByte ptr+0, pix & $ff
    				Buffer.PokeByte ptr+1, (pix shr 8) & $ff
    				Buffer.PokeByte ptr+2, (pix shr 16) & $ff
    				ptr += 3
    				i += 1
    			next
    		next
    		
    	End
    	  
    	Method	Save:Void( filename:String )	' filename without .bmp
    
    		Local file:=FileStream.Open( "monkey://internal/"+filename+".bmp","w" )
    		If file
    			file.Write Buffer, 0, FileSize
    			file.Close
    		Endif
    		
    	End
    	
    End

    Использование:

    bmp = New BmpFile()
    bmp.Grab(0, 0, DeviceWidth, DeviceHeight) 'этот метод обязательно выполняется в OnRender
    bmp.Save("screenshot")

    Изучив код можно адаптировать для сохранения произвольного массива данных

  7. Wed Jan 27 12:48:32 2016
    devolonter прокомментировал DrawImageRect vs GrabImage.

    @serg Создаю скриншот в игре ,но не умею его сохранять в папку data

    В Monkey нет функции сохранения скриншота. Самый простой способ сохранить массив пикселей в самый простейший формат bmp. Но это не будет работать для HTML5

  8. 2 г. назад
    Fri Oct 9 14:49:48 2015

    Требуется:
    Помощник программиста для разработки и сборки игр на Monkey X по специально заготовленному шаблону

    Требования к кандидату:
    — Опыт программирование на Monkey X
    — Умение разбираться в чужом коде
    — Доступность онлайн минимум 4 часа в день

    Условия работы:
    — Удаленная работа
    — Оплата сдельная, договорная

    На вакансию откликаться в Skype: artur_bik

  9. Fri Oct 9 13:14:26 2015
    devolonter прокомментировал Воспроизведение видео.

    Отправил

  10. Sat Sep 5 14:27:01 2015
    devolonter прокомментировал Воспроизведение видео.

    Извиняюсь за долгий ответ. К андроид прикрутить можно, но нужно собрать библиотеку, а потом видимо через JNI писать прослойку.

    По таргетам как таковой документации нет. Вам нужно скопировать папку с таргетом (папка targets), дать ей новое имя и модифицировать файл TARGET.MONKEY (изменить #TARGET_NAME). После этого можно модифицировать шаблон под ваши нужды.

    Я могу скинуть пример видео для десктоп таргета, но честно говоря я даже не уверен, что он работает с новой версией

Ещё...