forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Анимация (и еще пару вопросов) (http://forum.boolean.name/showthread.php?t=4012)

moka 29.08.2007 18:01

Re: Анимация (и еще пару вопросов)
 
Maestro, хм видимо да, или даже скорее не труться но линки теряються. А вообще странно. А ты не пробовал сделать так?:
Код:

If KeyHit(1)
  game = 2
  EndGraphics
EndIf


Maestro 29.08.2007 18:26

Re: Анимация (и еще пару вопросов)
 
MoKa, EndGraphics ничего не дает. Ну да ладно. Теперь буду знать где искать в таких случаях. Я и проблему решил свою... даже нашел как обойти, но для этого надо одну функцию модифицировать. Посмотрите плиз:

Код:

mx=MouseX(): my=MouseY()
MHit=MouseDown(1)
If RectsOverlap(x,y,ImageWidth(ImBtn),ImageHeight(ImBtn),mx,my,1,1) Then
 If Sel <> n  Then
  PlaySound SelectBut
  Sel = n
 EndIf
  f=1
  y2=0
  If MHit=True Then
  If Sel2 <> n Then
    PlaySound ClickBut
    sou=1
    sel2 = n
  EndIf
    f=2
    y2=2
    Button(n)=1
  EndIf
Else
  f=0
  y2=0
EndIf
DrawImage ImBtn,x,y,f
Color 0,0,0
Text x+0.5*(ImageWidth(ImBtn)+4-Len(txt$)*FontHeight()*0.5),y+0.5*(ImageHeight(ImBtn)-4-FontHeight())+y2,txt$
End Function

Но тут при нажатии на кнопку она (кнопка) всевремя нажимается. Поэтому если при нажати кнопки должно произойти какое-то действие, оно происходит постоянно. Придвещаю первый ответ "Вместо MouseDown поставь MouseHit, и будет тебе счастье.", но если это сделать, то можно нажать только на первую! кнопку. Почему, я не совсем пойму, но это так.(

Maestro 29.08.2007 18:36

Re: Анимация (и еще пару вопросов)
 
Ага. чето поторопился я. Ничего я не исправил .( Если инициализировать графику, а потом Селект кейс... то при переходе ез кейса в кейс не выводится все, что должно выводиться ДравИмеджом. Текст, 3Д.. - это все есть, а имагов нету. А если в кейсе инициализировать графику, то все рисуется как надо.

moka 29.08.2007 18:42

Re: Анимация (и еще пару вопросов)
 
Код:

Game = 1
Global mouse
Graphics3D 800,600,32,Mode
SetBuffer BackBuffer()
LoadMouse()

Repeat
Select game
  Case 1
      Repeat
        Cls
        If KeyHit(57) game = 2
        DrawImage mouse,MouseX(),MouseY()
        Flip
      Until game = 2
  Case 2
      Repeat
        Cls
        If KeyHit(1) End
        DrawImage mouse,MouseX(),MouseY()
        Flip
      Forever
End Select

Function LoadMouse()
  Mouse=LoadImage("mouse.png")
End Function


johnk 29.08.2007 19:14

Re: Анимация (и еще пару вопросов)
 
Maestro, ты Flip Забыл :)

Maestro 29.08.2007 20:30

Re: Анимация (и еще пару вопросов)
 
JohnK, чего?

IGR 30.08.2007 15:04

Re: Анимация (и еще пару вопросов)
 
Flip - команда меняет передний и задний буферы !!
это для того что б на екране картинка была видна !!

Maestro 30.08.2007 17:27

Re: Анимация (и еще пару вопросов)
 
IGR, да я знаю что такое Flip. Просто я нигде его не забывал... Меня просто жутко интересует, почему при перескакиваниях по кейсам перестоют рисоваться имеджи.

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

moka 30.08.2007 17:39

Re: Анимация (и еще пару вопросов)
 
Maestro, текстура. Или ещё лучше: FastImage.

H@NON 30.08.2007 17:47

Re: Анимация (и еще пару вопросов)
 
Fastimage , так и делает , через текстуру.
ЗЫЖ это так, для понимания.
Цитата:

почему при перескакиваниях по кейсам перестоют рисоваться имеджи.
Потому что если они у тебя не вызываются в том кейсе, в котором ты счас пребывашь. И еще потому что ты наверняка используешь cls. Так как ты стираешь весь экран и заново не рисуешь, то у тебя и не выходит.


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

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