Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 2D-программирование

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 30.12.2006, 00:38   #16
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Да, кстати, HolyDel, звёзды создаются за галактикой. А надо перед. А ещё там долно быть два типа звёзд. Один движытся быстро, другой по медленнее. Но это не так важно. Как я уже сказал я сам всё сделал. Правда используя картинку..
(Offline)
 
Ответить с цитированием
Старый 30.12.2006, 18:05   #17
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Вот сижу и думаю. как сделать так, чтоб при нажатии кнопки ниже появлялся текст и не исчезал, пока не нажмёш другую кнопку. Я нажимаю, он появляется, я отжимаю, он исчезает.
;================================================================== 
; Star Trash
; Космическая стрелялка. Дата начало работы 27.12.06
;=================================================


Graphics 800,600,32,2
SetBuffer BackBuffer() 


;шрифт
font=LoadFont("Arial Cyr",30,1) 
Tex=LoadFont("Arial Cyr",20,1) 
dat=LoadFont("Arial Cyr",13,1) 

;Фон меню
img=LoadImage("data/menu/galaxi.jpg")

;звёзы
star=LoadImage("Data/menu/fon.png")
star2=LoadImage("Data/menu/fon2.png")

;Логотип
 Logo=LoadImage("data/menu/logo.bmp")
MaskImage  logo,0,0,0 ; Маска

;Музыка
sam=PlayMusic("data/sound/menu.mp3") ;загрузка музыки

;курсор
Global curs=LoadImage("data/menu/cursor.bmp");Загруска курсора
HidePointer; Курсор невидим 

;Загрузка кнопки
knop=LoadAnimImage("Data/menu/knop.png",175,40,0,2)
knop2=knop
knop3=knop
knop4=knop

; Загрузка диалогового окна
windialog=LoadImage("data/menu/windialog.png")

;цикл
Repeat
Cls()
  DrawImage(img, 0, 0);Позиция галактики

  TileImage star,0,qq:qq=qq- -3
  TileImage star2,0,hh:hh=hh- -1
  DrawImage(logo, 100,50);позиция логотипа
  DrawImage(knop, 310,200);позиция кнопки1
  DrawImage(knop2, 310,245);позиция кнопки2
  DrawImage(knop3, 310,290);позиция кнопки3
  DrawImage(knop4, 310,335);позиция кнопки4
  DrawImage(windialog, 100,385);позиция логотипа

; Если если курсор  над кнопой  Новая игра  и нажата мыш то..
 If MouseX()>310 And MouseY()>200 And MouseX()<485 And MouseY()<240
  DrawImage(knop, 310,200,1)
If MouseDown(1)
 TileImage star2,0,hh:hh=hh- 3 ; Проверить работает ли кнопка
EndIf
EndIf
;Если если курсор  над кнопой Помощь и нажата мыш то..
 If MouseX()>310 And MouseY()>245 And MouseX()<485 And MouseY()<285
  DrawImage(knop2, 310,245,1)
If MouseDown(1)

;Текст Описание
 SetFont tex Color 255,255,255:Text 160,410,"Помощь:",1,1
 SetFont tex Color 255,255,255:Text 175,426,"w - Вперёд",1,1
 SetFont tex Color 255,255,255:Text 167,442,"s - Назад",1,1
 SetFont tex Color 255,255,255:Text 168,458,"a - Влево",1,1
 SetFont tex Color 255,255,255:Text 172,474,"d - Вправо",1,1
 SetFont tex Color 255,255,255:Text 225,490,"Кнопка мыши 1 - пушка",1,1
 SetFont tex Color 255,255,255:Text 229,506,"Кнопка мыши 2 - ракеты",1,1

EndIf
EndIf
; Если если курсор  над кнопой Авторы и нажата мыш то..
 If MouseX()>310 And MouseY()>290 And MouseX()<485 And MouseY()<330
  DrawImage(knop3, 310,290,1)
If MouseDown(1)

;Текст Авторы
 SetFont tex Color 255,255,255:Text 150,410,"Автор:",1,1
 SetFont tex Color 255,255,255:Text 200,426,"Миха aka Atomikc",1,1
 SetFont tex Color 255,255,255:Text 190,442,"[email protected]",1,1
 SetFont tex Color 255,255,255:Text 268,458,"________________________________",1,1
 SetFont tex Color 255,255,255:Text 380,484,"Отдельное спасибо Shad0w agent, за предоставление семплов",1,1
 SetFont tex Color 255,255,255:Text 385,500,"А также сайту www.Boolean.name и всем тем, кто мне помогал...",1,1

EndIf
EndIf
;Если если курсор  над кнопой Выход и нажата мыш то выход
 If MouseX()>310 And MouseY()>335 And MouseX()<485 And MouseY()<375
  DrawImage(knop4, 310,335,1)
If MouseDown(1)
:Exit
EndIf
EndIf

;Текст кнопок
 SetFont font:Color 0,170,255:Text 399,219,"Новая игра",1,1 
 SetFont font:Color 0,170,255:Text 399,264,"Помощь",1,1 
 SetFont font:Color 0,170,255:Text 399,309,"Авторы",1,1 
 SetFont font:Color 0,170,255:Text 399,354,"Выход",1,1 

;Текст версии игры
 SetFont dat Color 255,255,255:Text 615,560,"Star Trash.    Версия игры  0.1",1,1 
  DrawImage(curs, MouseX(), MouseY());Позиция Курсора
  If ChannelPlaying(sam)=0 Then sam=PlayMusic("data/sound/menu.mp3") ; Играть заного
 
Flip()
;----------------------------

Until KeyDown(1)
(Offline)
 
Ответить с цитированием
Старый 30.12.2006, 18:29   #18
c0mrad
Разработчик
 
Регистрация: 08.06.2006
Сообщений: 412
Написано 13 полезных сообщений
(для 4 пользователей)
Re: Курсор

If MouseX()>310 And MouseY()>200 And MouseX()<485 And MouseY()<240
O_o
А как же ImagesOverlap?Через него ведь проще!
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
MidGard (03.09.2009)
Старый 30.12.2006, 23:06   #19
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

А что ты хотел от новечка. Я всё методом волшебного тыка делаю. Работает значит правильно. Вот стану более менее на ноги, потом и буду высматривать альтернативные варианты. А щя где чё найду тем и пользуюсь.
(Offline)
 
Ответить с цитированием
Старый 31.12.2006, 02:08   #20
ZanoZa
Элита
 
Регистрация: 02.10.2005
Сообщений: 1,789
Написано 132 полезных сообщений
(для 252 пользователей)
Re: Курсор

создай переменную, допустим, stat$ и туда записывай текущий текст.
и выводи соответственно на экран text,x,y,stat$
чтобы ничего не отображалось задай stat$=""
(Offline)
 
Ответить с цитированием
Старый 31.12.2006, 13:38   #21
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Ну вопервых с НАСТУПАЮЩИМ ВАС 2007-М!!!
Разобрался я с менюшко. Создал пару переменных Х и У.
Вот весь код.
;================================================================== 
; Star Trash
; Космическая стрелялка. Дата начало работы 27.12.06
;=================================================

;Инициализация графики
  Graphics 800,600,32,2
  SetBuffer BackBuffer() 
;Глобал
  Global x,y
;шрифт
  font=LoadFont("Arial Cyr",30,1) 
  Tex=LoadFont("Arial Cyr",20,1) 
  dat=LoadFont("Arial Cyr",13,1) 
;Фон меню
  img=LoadImage("data/menu/galaxi.jpg")
;звёзы
  star=LoadImage("Data/menu/fon.png")
  star2=LoadImage("Data/menu/fon2.png")
;Логотип
   Logo=LoadImage("data/menu/logo.bmp")
MaskImage  logo,0,0,0 ; Маска
;Музыка
  sam=PlayMusic("data/sound/menu.mp3") ;загрузка музыки
;курсор
 Global curs=LoadImage("data/menu/cursor.bmp");Загруска курсора
  HidePointer; Курсор невидим 
;Загрузка кнопки
  knop=LoadAnimImage("Data/menu/knop.png",175,40,0,2)
  knop2=knop
  knop3=knop
  knop4=knop
; Загрузка диалогового окна
  windialog=LoadImage("data/menu/windialog.png")

;цикл
  Repeat
   Cls()
     DrawImage(img, 0, 0);Позиция галактики
     TileImage star,0,qq:qq=qq- -3
     TileImage star2,0,hh:hh=hh- -1
     DrawImage(logo, 100,50);позиция логотипа
     DrawImage(knop, 310,200);позиция кнопки1
     DrawImage(knop2, 310,245);позиция кнопки2
     DrawImage(knop3, 310,290);позиция кнопки3
     DrawImage(knop4, 310,335);позиция кнопки4
     DrawImage(windialog, 100,385);позиция логотипа
; Если курсор  над кнопой Новая игра  и нажата мыш то запустить игру
   If MouseX()>310 And MouseY()>200 And MouseX()<485 And MouseY()<240
     DrawImage(knop, 310,200,1)
       If MouseDown(1) 
       EndIf
   EndIf
;Если если курсор  над кнопой Помощь и нажата мыш то показать помощь и стереть другое
     If MouseX()>310 And MouseY()>245 And MouseX()<485 And MouseY()<285
       DrawImage(knop2, 310,245,1)
        If MouseDown(1) 
          x=1  
          y=0
        EndIf
      EndIf
    If x=1  SetFont tex Color 255,255,255:Text 160,410,"Помощь:",1,1    SetFont tex Color 255,255,255:Text 175,426,"w - Вперёд",1,1    SetFont tex Color 255,255,255:Text 167,442,"s - Назад",1,1    SetFont tex Color 255,255,255:Text 168,458,"a - Влево",1,1     SetFont tex Color 255,255,255:Text 172,474,"d - Вправо",1,1    SetFont tex Color 255,255,255:Text 225,490,"Кнопка мыши 1 - пушка",1,1    SetFont tex Color 255,255,255:Text 229,506,"Кнопка мыши 2 - ракеты",1,1
    If x=0 Then SetFont tex Color 255,255,255:Text 160,410," ",1,1
; Если если курсор  над кнопой Авторы и нажата мыш то паказать авторов и стереть другое
     If MouseX()>310 And MouseY()>290 And MouseX()<485 And MouseY()<330
        DrawImage(knop3, 310,290,1)
         If MouseDown(1)
           x=0
           y=1 
         EndIf
     EndIf
   If y=1 Then  SetFont tex Color 255,255,255:Text 150,410,"Автор:",1,1    SetFont tex Color 255,255,255:Text 200,426,"Миха aka Atomikc",1,1    SetFont tex Color 255,255,255:Text 190,442,"[email protected]",1,1    SetFont tex Color 255,255,255:Text 268,458,"________________________________",1,1    SetFont tex Color 255,255,255:Text 380,484,"Отдельное спасибо Shad0w agent, за предоставление семплов",1,1    SetFont tex Color 255,255,255:Text 385,500,"А также сайту www.Boolean.name и всем тем, кто мне помогал...",1,1
   If y=0 Then SetFont tex Color 255,255,255:Text 160,410," ",1,1
;Если если курсор  над кнопой Выход и нажата мыш то выход
      If MouseX()>310 And MouseY()>335 And MouseX()<485 And MouseY()<375
        DrawImage(knop4, 310,335,1)
          If MouseDown(1)
            :Exit
          EndIf
      EndIf
;Текст кнопок
   SetFont font:Color 0,170,255:Text 399,219,"Новая игра",1,1 
   SetFont font:Color 0,170,255:Text 399,264,"Помощь",1,1 
   SetFont font:Color 0,170,255:Text 399,309,"Авторы",1,1 
   SetFont font:Color 0,170,255:Text 399,354,"Выход",1,1 
;Текст версии игры
   SetFont dat Color 255,255,255:Text 615,560,"Star Trash.    Версия игры  0.1",1,1 
    DrawImage(curs, MouseX(), MouseY());Позиция Курсора
     If ChannelPlaying(sam)=0 Then sam=PlayMusic("data/sound/menu.mp3") ; Играть заного
 Flip()
;----------------------------
Until KeyDown(1)
(Offline)
 
Ответить с цитированием
Старый 04.01.2007, 02:05   #22
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Ещё вопрос. Вот картинка курсора, виндовсовский курсор находится в углу картинки. Как её поставить в центор этой самой картинки.
(Offline)
 
Ответить с цитированием
Старый 05.01.2007, 23:23   #23
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Сам нашол. MidHandle curs2. рисует curs2 вцентре курсора
(Offline)
 
Ответить с цитированием
Старый 04.04.2007, 06:32   #24
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Вот я столкнулся с ещё одной проблемой. Есть у меня корабль с координатами XY и пушки на нем с координатами X+Число У+Число.
Так же есть курсор. Вот. Отсюда два вопроса. Как изменить точку вращения обьекта. Тоесть не MidHandle А своё???
И втарое. Как повернуть пушку в сторону курсора. В школе надо было не спать а учить. Теперь мучаюсь. Оч надеюсь на вашу помощь...
(Offline)
 
Ответить с цитированием
Старый 05.04.2007, 01:58   #25
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: Курсор

1. незнаю смотри хелп.
2. atan2((canon_x-mousex()),(mousey()-canon_y)) - ф-я вернет угол. дальше на етот угол крути пушку (возможно придется знаки минуса сувать в параметры atan2, эксперементировать надо)
(Offline)
 
Ответить с цитированием
Старый 21.04.2007, 23:36   #26
Atomikc
Бывалый
 
Регистрация: 14.12.2006
Сообщений: 811
Написано 93 полезных сообщений
(для 257 пользователей)
Re: Курсор

Вот и добрался я в своём проэкте до ракет...
Как реализовать такую вещь: Куча врагов и один ты. Все перемещаются... Курсор свободно передвигается по экрану, и если нажать клавишу, то вылитает ракета.
А теперь вопрос. Как сделать так, чтоб ракета летела к объекту котрый ближе всех находится к курсору, при этом поворачиваясь на нужный угол.

Вот пример. Синяя линия- это маршрут следования ракеты. Ракета по этому маршруту должна лететь.
(Offline)
 
Ответить с цитированием
Старый 22.04.2007, 00:58   #27
Magus
Бывалый
 
Регистрация: 05.09.2005
Сообщений: 823
Написано 101 полезных сообщений
(для 205 пользователей)
Re: Курсор

Как бы сделал я:
1)определить расстояние от курсора до объектов-врагов, если есть координаты курсора и врагов, дума, труда не составит.
r=sqrt((x_rocket-x_enemy)^2+(y_rocket-y_enemy)^2)
2)Определяем расстояния до всех объектов в локации(или, как вариант, всех объектов в заданной области вокруг курсора), находим из них минимальное.
3)задаем ракете начальный вектор скорости
4)в каждый момент времени прибавляем к вектору скорости ракеты вектор малой величины(по крайней мере меньше, чем вектор скорости), направленный от ракеты к выбранному объекту.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Направленный курсор Ky3R_94 Полезные функции 6 05.12.2009 02:12
Курсор и объект Hurrit 3D-программирование 13 13.10.2009 22:33
Как установить курсор-руку в блитце? ELIAS Blitz3D 5 13.07.2009 00:13
нормальный курсор Molotov 2D-программирование 5 29.03.2009 11:38
Курсор виснет Nord 2D-программирование 7 04.01.2007 01:08


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com