forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_game (Game API Support) (http://forum.boolean.name/showthread.php?t=3522)

aleshka 02.04.2008 10:54

Re: Ответ: Lib_game (Game API Support)
 
Вложений: 1
Цитата:

Сообщение от pilgrim (Сообщение 74456)
Полная сборка библиотеки. Авторы: Piligrim, Kurdt.
Включены изменения Kurdtа. Добавлена справка по Game API из явы для облегчения понимания строения системы. Включены две демо, по функциям библиотеки и ее расширения для свободного вращения спрайтов. Также включена библиотека Lib_sensor, необходимая для поддержки сенсорных экранов.

Привет.
Обновите Lib_sensor, добавлено свойство int pointer_state() 1 - нажато, 0 - не нажато. Понадобилось вот ))

Kurdt 03.04.2008 13:45

Re: Lib_game (Game API Support)
 
Вложений: 1
я добавил давно. вылажую
функция pointer_is_pressed
нажато возвращает 1 ненажато возвращает ноль

Romanzes 16.08.2008 23:44

Ответ: Lib_game (Game API Support)
 
Че-то я не вкурю, как пользоваться функцией sprite.set_position(i,j,k:integer) и вообще для чего она нужна. Объясните плиз :)

ViNT 17.08.2008 15:05

Ответ: Lib_game (Game API Support)
 
По-моему, эта функция устанавливает элемент спрайта с инднксом i в точку с x=j, y=k.

Romanzes 17.08.2008 16:54

Ответ: Lib_game (Game API Support)
 
А как сделать, чтобы у разных спрайтов были одинаковые картинки, например если на экране несколько одинаковых врагов. Не загружать же для каждого одно и то же изображение?

ViNT 17.08.2008 17:45

Ответ: Lib_game (Game API Support)
 
Похоже, в этой библиотеке нужно загружать изображение для каждого спрайта.

Piligrim 17.08.2008 20:34

Ответ: Lib_game (Game API Support)
 
хм, действительно есть функция создания спрайта на основе уже готового, добавлю сегодня.

Piligrim 18.08.2008 23:38

Ответ: Lib_game (Game API Support)
 
Обновил библиотеку. Сообщение №8.

IceVAN 31.08.2008 18:48

Ответ: Lib_game (Game API Support)
 
Sorry for writing in English but I dont speak in Russian.I use google translator to read this forum :)

I have tried to use the touch-screen functions of the library game and I just dragged the other works do not work.

game.pointer_pressed_x only return 0, always.
game.pointer_dragged_x work well.

I have tried to use lib_sensor and lib_game at the same time but neither works. only works if I use lib_sensor alone.

thanks!

Piligrim 31.08.2008 19:26

Ответ: Lib_game (Game API Support)
 
sorry, sensor functions not fully tested.
download updated version from the post #8 of this section.
sensor lib not necessary any more.

IceVAN 31.08.2008 20:12

Ответ: Lib_game (Game API Support)
 
Hi Pilgrim

Now run ok! thanks!

but lib_game dont have pointer_state function.
How do I know if the pointer is pressing the screen?

The problem is that pointer_pressed_x and pointer_pressed_y hold their values but I dont pressing the screen.

Does any alternative to solve the problem?

thanks

Lite example code:
program pointerExample;

uses
game;

var
px:integer;
py:integer;
rx:integer;
ry:integer;
fin:integer;


begin
game.init;
game.show;
game.set_clip(0,0,240,100);

repeat
px:=game.pointer_pressed_x;
py:=game.pointer_pressed_y;
rx:=game.pointer_released_x;
ry:=game.pointer_released_y;


setcolor(100,100,100);
fillrect(0,0,200,100);
setcolor(0,0,0);
drawText('Pressed X:'+px, 1, 10);
drawText('Pressed Y:'+py,1,30);
drawText('Released X:'+rx, 50, 10);
drawText('Released Y:'+ry,50,30);


refresh;
delay(10);

until fin=1
end.

odd 01.09.2008 08:14

Ответ: Lib_game (Game API Support)
 
Вложений: 1
Try to use Lib_sensor. You can download this lib below.

List of new functions:
  • init
  • integer pointer_state
  • integer pointer_pressed_x
  • integer pointer_pressed_y
  • integer pointer_dragged_x
  • integer pointer_dragged_y
  • integer pointer_released_x
  • integer pointer_released_y
  • integer has_pointer_events
  • integer has_pointer_motion_events

Here some examples:

PHP код:

Program PointerTest;
Uses    sensor;
Var    
oxoypxpystateinteger;
Begin
    sensor
.init// Инициализация библиотеки
    
repeat // Бесконечный цикл
        
state:=pointer_state// Читаем состояние сенсора
        
if state=1 then // Если нажали, то...
        
begin
            
if (ox=0) and (oy=0then
            begin
                ox
:=pointer_dragged_xoy:=pointer_dragged_y;
            
end;
            
px:=pointer_dragged_xpy:=pointer_dragged_y// Выясняем куда именно нажали (координаты)
            
DrawLine(ox,oy,px,py); // Рисуем линию
                        
ox:=pxoy:=py// Запоминаем предыдущую точку для рисования следующей линии
        
end;
        else 
begin ox:=0oy:=0end// Если ничего не нажали - сбрасываем координаты в 0
        
RepaintDelay(20); // Отрисовка линии и небольшая пауза
    
until false;
End

PHP код:

Program PointerTest2;
Uses    sensor;
Var    
xxyystatekeyinteger;

Procedure DrawButtons// Вспомогательная процедурка, которая рисует на экране кнопки
begin
    SetColor
(255,255,255); // Белый цвет
    
if key=1 then SetColor(255,0,0); // Если была нажата кнопка 1 - ставим красный цвет
    
if key=2 then SetColor(0,255,0); // Если кнопка 2 - зеленый
    
FillRect(0,0,GetWidth,GetHeight); // Закрашиваем весь экран выбранным цветом
    
SetColor(0,0,0); // Ставим черный цвет
    
DrawRect(101010025); DrawText('Button 1'1515); // Рисуем первую кнопку
    
DrawRect(104010025); DrawText('Button 2'1545); // Рисуем вторую кнопку
    
DrawRect(107010025); DrawText('Quit'1575); // Рисуем третью
    
Repaint// Окончательный вывод всего нарисованного на дисплей
end;

Begin // Начало нашей программы
    
sensor.init// Инициализация библиотеки
    
DrawButtons// Рисуем кнопки на экране (см. процедуру выше)
    
repeat // Начинаем бесконечный цикл
        
state:=pointer_state// Читаем состояние сенсора
        
if state=1 then // Если произошло нажатие, то...
        
begin
            xx
:=pointer_pressed_xyy:=pointer_pressed_y// Считываем координаты нажатия
            
if (xx>9) and (xx<111then // Проверяем сначала x координату...
            
begin
                
if (yy>9) and (yy<36then key:=1// Нажали на кнопку 1
                
if (yy>39) and (yy<66then key:=2// Нажали на кнопку 2
                
if (yy>69) and (yy<96then Halt// Нажали на кнопку 3 (Выход)
                
DrawButtons// Рисуем кнопки
            
end;
        
end;
                
Delay(30);
    
until false;
End


Piligrim 01.09.2008 14:24

Ответ: Lib_game (Game API Support)
 
odd, он хочет эту функцию при работе с Game API, а там другой Canvas на экране. Добавлю через часик.

updated. :)

IceVAN 01.09.2008 15:54

Ответ: Lib_game (Game API Support)
 
thanks Odd! but I need use lib_game and lib_game+lib_sensor dont work.

Pilgrim, Do you update the game library? I would very happy! :)

IceVAN 01.09.2008 15:56

Ответ: Lib_game (Game API Support)
 
Oh! you had updated! thanks!


Часовой пояс GMT +4, время: 04:50.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot