[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]


  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Spidy, turBO, blitz3d  
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Не загружается картинка
Не загружается картинка
maxisan137Дата: Воскресенье, 27.03.2011, 17:45 | Сообщение # 1
ламер
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Пишу команду:
If KeyHit(31)
DrawImage ins,1,550
DrawImage ins2,1,600
EndIf
Ничего не работает. А если просто DrawImage ins2,1,600 то картинка прекрасно загружается. В чём проблема?
 
SpidyДата: Воскресенье, 27.03.2011, 19:24 | Сообщение # 2
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Попробуй поменять KeyHit на KeyDown - должно сработать.

Дело тут, скорее всего, не в картинк, а в особенности KeyHit. Если в цикле используется несколько раз KeyHit, то срабатывает только первый.


Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
maxisan137Дата: Воскресенье, 27.03.2011, 19:37 | Сообщение # 3
ламер
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Spidy, не работает ни KeyHit, ни KeyDown, ни даже MouseHit
 
blitz3dДата: Воскресенье, 27.03.2011, 21:36 | Сообщение # 4
Admin
Группа: Администраторы
Сообщений: 203
Награды: 3
Репутация: 7
Статус: Offline
Нужен код, гадание на картах таро сейчас не в моде

перед тобой две таблетки - красная и синяя - какую ты выберешь?
 
maxisan137Дата: Понедельник, 28.03.2011, 17:24 | Сообщение # 5
ламер
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
вот весь код:
Code

Function SetGfx()
  If info1$<>""
   AppTitle info1$,"Exit "+info1$+" ?"
  EndIf
  FlushKeys()
   
  mode_cnt=CountGfxModes3D()
  If Not mode_cnt RuntimeError "Can't find any 3D graphics modes"
   
  mode=0:If Not Windowed3D() mode=1

Graphics3D 1280,960,0,1
SetBuffer BackBuffer()
camera=CreateCamera()
PositionEntity camera,0,7,0
CameraClsColor camera,100,100,100
rave=LoadMesh("maps/menu.b3d")
ScaleEntity rave,0.015,0.015,0.015
PositionEntity rave,-25,1,10
RotateEntity rave,0,-160,0
c1=LoadSprite("textures/c1.bmp")
m=LoadSound("sound/music1.mp3")
PlaySound m
d=LoadSound("sound/d.wav")
LoopSound d
PlaySound d
play=LoadImage("textures/menu2.jpg")
ex=LoadImage("textures/menu1.jpg")
ins=LoadImage("textures/menu3.jpg")
ins2=LoadImage("textures/menu4.jpg")
cur=LoadImage("textures/cur.png")
MaskImage cur,255,255,255
Repeat
createrain(camera,4,0.005,0.2,-8,8,5,6,2,15,0,-0.4,0,-2.9,-0.03,75,20,0.004,c1)
PosX#=MouseX()
PosY#=MouseY()
If  KeyHit(1) End
If ImagesCollide(cur,MouseX(),MouseY(),0,ex,510,500,0) And   MouseHit(1) End  
If ImagesCollide(cur,MouseX(),MouseY(),0,play,500,300,0) And   MouseDown(1)  
Cls:Flip:Cls:Flip
FreeSound m
FreeSound d
EndGraphics
If mode
Graphics3D GfxModeWidth(mode),GfxModeHeight(mode),GfxModeDepth(mode),1
Else
Graphics3D 1280,960,0,1
EndIf   
SetBuffer BackBuffer()
Return
EndIf  
UpdateWorld()
RenderWorld()
DrawImage play,500,300
DrawImage ex,510,500
DrawImage ins,510,400
DrawImage cur,PosX#,PosY#
Flip
Forever
End Function

нужно, чтобы если ImagesCollide(cur,MouseX(),MouseY(),0,ins,510,400,0) и MouseHit(1), то чтобы Drawimage ins2,1,600
 
SpidyДата: Вторник, 29.03.2011, 09:45 | Сообщение # 6
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Просто помести строку
Code
If ImagesCollide(cur,MouseX(),MouseY(),0,ins,510,400,0) And MouseDown(1) Then DrawImage ins2,1,600

после метода RenderWorld()


Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
maxisan137Дата: Вторник, 29.03.2011, 16:23 | Сообщение # 7
ламер
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Spidy, получилось, но тогда картика стоит только когда зажата клавиша. а если MouseHit(1), то только раз мигнёт и всё
 
SpidyДата: Вторник, 29.03.2011, 17:44 | Сообщение # 8
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Quote (Spidy)
Дело тут, скорее всего, не в картинке, а в особенности KeyHit. Если в цикле используется несколько раз KeyHit, то срабатывает только первый.

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


Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
maxisan137Дата: Вторник, 29.03.2011, 17:57 | Сообщение # 9
ламер
Группа: Пользователи
Сообщений: 23
Награды: 0
Репутация: 0
Статус: Offline
Spidy, можешь навести пример? а то я в этом не силён
 
SpidyДата: Среда, 30.03.2011, 10:31 | Сообщение # 10
Полковник
Группа: Модераторы
Сообщений: 339
Награды: 6
Репутация: 13
Статус: Offline
Я не совсем понял, какой результат тебе нужен.

Если ты хочешь, чтобы картинка стала видимой после нажатия тогда

Code
If ImagesCollide(cur,MouseX(),MouseY(),0,ins,510,400,0) And MouseDown(1) Then var_a=1

и после RenderWorld()

Code
if var_a=1 Then DrawImage ins2,1,600


Компьютерная мышь ночью собирает крошки у тебя со стола и прячет их в клавиатуру, делает запасы на зиму
 
Форум мира Blitz3D » Язык Blitz3D » 3D программирование » Не загружается картинка
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: