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

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

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

Ответ
 
Опции темы
Старый 23.10.2007, 12:59   #1
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Screеnsaver

1 раз когда я проводил компиляцию своей игры и создание .exe файла, то обнаружил, что сохранить можно не только как исполняемый файл .exe, но и как программу - заставку .scr (кажется). Теперь захотел сделать простейший скринсейвер. Просто крутящуюся эмблемку. Но как не старался превратить мой код во что-то кроме как .exe не получилось В чем я туплю? Подскажите.
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 13:02   #2
magpro
Разработчик
 
Аватар для magpro
 
Регистрация: 23.08.2006
Сообщений: 586
Написано 6 полезных сообщений
(для 7 пользователей)
Re: Screеnsaver

Почитай электроный журнал Меркулова.

Там есть статейка по созданию скринсерверов.
__________________
Никто не запомнит тебя за твои мысли...
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 13:04   #3
Android
Бывалый
 
Регистрация: 29.03.2007
Сообщений: 662
Написано 199 полезных сообщений
(для 448 пользователей)
Re: Screеnsaver

просто создай ехе и переименуй в scr например было: скрин.ехе стало скрин.scr
upd:
ссылка на журнал создай свой скринсейвер
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 14:09   #4
H@NON
Дэвелопер
 
Регистрация: 17.01.2007
Сообщений: 1,552
Написано 351 полезных сообщений
(для 774 пользователей)
Re: Screеnsaver

Вот на заметку скринсэйвер. Может поможет разобратся, что делать.
; Author: jfk
; Date: 2002-03-02 03:51:46
; Title: Animated Flag
; Description: Flag with Screensaver Initialisation

; Realtime-Plasma-based Mesdeformation FLAG-SCREENSAVER Demo
; Compile to .EXE and rename to .SCR. Then copy to windows\system\
; Can be used with _any_ Flag-Picture. It will also run without a Picture.
; 2002 by CSP

;.................................... Screensaver-specific Initialisation:
; prevent to be started more than one instance when used as a Screensaver
cmd$=CommandLine$()
If Len(cmd$)>1
 For i=1 To Len(cmd$)-1
  mi$=Upper$(Mid$(cmd$,i,2))
  If mi$="/P" Or mi$="/C"
   ; is a Call For Screensaver settings. nothing to set tough...
   End
  EndIf
 Next
EndIf
cspfile$="csp_mutex.txt"
If FileType(cspfile$)=1
 csp=ReadFile(cspfile$)
 timestamp=ReadLine(csp) ; read last legal Instance Timestamp
 CloseFile csp
 timenow=MilliSecs()
 If Abs(timestamp-timenow)<1000 ; more than n secs ago?
  ; no, seems To be only a Mutant
  End
 Else
  ; yes, seems To be the first Instance, a new legal instance
  csp=WriteFile(cspfile$)
  WriteLine csp,Str$(MilliSecs()) ; update timestamp
  CloseFile csp
 EndIf
Else
 ; seems it runs first from this Computer/Folder
  csp=WriteFile(cspfile$)
  WriteLine csp,Str$(MilliSecs()) ; update timestamp
  CloseFile csp
EndIf
;...................eo Screensaver init

Graphics3D 800,600,16,1
SetBuffer BackBuffer()

; init plasma lookup table
Dim cosinus#(640)
For c = 0 To 640
   cosinus#(c) = Cos((115*3.14159265358 * c) / 320) * 32 + 32
Next 

;size of map
Const Gridx=32
Const Gridz=32

x#=0:y#=0:z#=0

SetBuffer BackBuffer()

lit=CreateLight()
AmbientLight 25,25,25
cam=CreateCamera()

CameraRange cam,.1,1000
PositionEntity cam,16,32,-10 
TurnEntity cam,30,0,0

; used for surface
Const Texture_Grid=4

; create Mesh
Dim map#(gridx,gridz)
mesh=Create_Map(gridx,gridz,b1,3)

; try to load a Flag Texture
flagname$="my_lovely_flag.bmp"
If FileType(flagname$)=1
 tex1=LoadTexture(flagname$,9) ; any texture for flag 
 tex2=LoadTexture(flagname$,9) ; any texture for Background
Else
 ; else create a placebo-flag on the fly
 tex1=CreateTexture(256,256,9)
 tex2=CreateTexture(256,256,9)
 TextureCoords tex1,1
 SetBuffer TextureBuffer(tex1)
 For i=0 To 255 Step 32 ; smileys'n'stripes :)
  Color 255,255,255
  Rect i,0,16,256,1
  Color 0,0,255
  Rect i+16,0,16,256,1
 Next
 Color 255,0,0
 Rect 0,0,127,127
 Color 255,255,255
 For j=0 To 127 Step 16
  For i=0 To 127 Step 16
   Color 255,255,255
   Oval i+5,j+4,8,8,1
   Color 255,0,0
   Oval i+2,j+4,8,8,1
   Color 255,255,255
   Oval i+4,j+5,2,2,1
   Oval i+4,j+9,2,2,1
  Next
 Next
 CopyRect 0,0,256,256,0,0,TextureBuffer(tex1),TextureBuffer(tex2)
 SetBuffer BackBuffer()
EndIf

EntityTexture mesh,tex1,0,1

; Background
in=CreateSphere() 
ScaleEntity in,100,100,100
FlipMesh in
EntityTexture in,tex2


; try to load a Sprite BMP
sparkfile$="bluespark.bmp"
If FileType(sparkfile$)=1
 spark=LoadTexture(sparkfile$,2)
Else
 ; else create it on the fly
 spark=CreateTexture(64,64,2)
 SetBuffer TextureBuffer(spark)
 For i=0 To 32
  r=i*8
  g=i*10
  b=i*i
  If r>255 Then r=255
  If g>255 Then g=255
  If b>255 Then b=255
  Color r,g,b
  Oval i,  i,  64-(i*2),64-(i*2),0
  Oval i+1,i,  64-(i*2),64-(i*2),0
 Next 
 LockBuffer
 For j=0 To 63
  For i=0 To 63
   argb=ReadPixelFast(i,j)
   r=(argb Shr 16) And $ff
   g=(argb Shr 8) And $ff
   b=argb And $ff
   a=((r+g+b)/3) Shl 24
   WritePixelFast i,j,(argb And $ffffff) Or a
  Next
 Next
 UnlockBuffer
 SetBuffer BackBuffer()
EndIf


; init Particles
spritemax=200 ; number of sprites
Dim sp(spritemax),spx#(spritemax),spy#(spritemax),spz#(spritemax),sps#(spritemax)
For i=0 To spritemax
 sp(i)=CreateSprite()
 EntityTexture sp(i),spark
 SpriteViewMode sp(i),1
 spx#(i)=16+Rnd(10)-5
 spy#(i)=27+Rnd(10)-5
 spz#(i)=16+Rnd(100)-50
 sps#(i)=1+Rnd(0,0.5)
 PositionEntity sp(i),spx#(i),spy#(i),spz#(i)
Next

    mx=MouseX()
    my=MouseY()
    mx2=mx
    my2=my
;___________________________________MAINLOOP__________________________________

While KeyDown(1)=0 And mx2=mx And my2=my
    mx2=MouseX()
    my2=MouseY()
    Gosub Update_Plasma
    mesh=Update_Map(mesh,gridx,gridz,b1,3)
    TurnEntity in,0,0,1
    TurnEntity cam,0,0,1.0

    ;upate particles
    For i=0 To spritemax
     spz#(i)=spz#(i)-sps#(i)
     If spz#(i)<-30 Then
      spz#(i)=16+100
     EndIf
     PositionEntity sp(i),spx#(i),spy#(i),spz#(i)
    Next
    
    UpdateWorld()
    RenderWorld
    Flip
Wend
;__________________________________eo mainloop________________________________

FreeEntity mesh
FreeEntity lit
FreeEntity cam
EndGraphics
End

Function Create_Map(tilex,tilez,brush1,tile)
.create_map
    mesh=CreateMesh()
    surf=CreateSurface(mesh,brush1)
    wid#=Float(1)/Float(Texture_grid)
    u0#=wid*Float(tile Mod texture_Grid)
    v0#=wid*Float(tile/texture_grid)
    u1#=u0+wid
    v1#=v0
    u2#=u1
    v2#=v0+wid
    u3#=u0
    v3#=v2
    u#=0
    v#=0
    stp#=1.0/Float(tilex)
    For z#=0 To tilez-1
        u=0
        For x#=0 To tilex-1
            h1#=map(x,z)
            h2#=map(x+1,z)
            h3#=map(x+1,z+1)
            h4#=map(x,z+1)
            AddVertex surf,x,h1,z,u0,v0
            VertexTexCoords surf,cnt,u,v,0,1
            
            AddVertex surf,x+1,h2,z,u1,v1
            VertexTexCoords surf,cnt+1,u+stp,v,0,1
            
            AddVertex surf,x+1,h3,z+1,u2,v2
            VertexTexCoords surf,cnt+2,u+stp,v+stp,0,1
            
            AddVertex surf,x,h4,z+1,u3,v3
            VertexTexCoords surf,cnt+3,u,v+stp,0,1
            
            AddTriangle surf,cnt,cnt+2,cnt+1
            AddTriangle surf,cnt,cnt+3,cnt+2
            cnt=cnt+4
            u=u+stp
        Next
        v=v+stp
    Next
    UpdateNormals mesh
    Return mesh
End Function


Function Update_Map(mesh,tilex,tilez,brush1,tile)
    surf=GetSurface(mesh,1)
    wid#=Float(1)/Float(Texture_grid)
    u0#=wid*Float(tile Mod texture_Grid)
    v0#=wid*Float(tile/texture_grid)
    u1#=u0+wid
    v1#=v0
    u2#=u1
    v2#=v0+wid
    u3#=u0
    v3#=v2
    u#=0
    v#=0
    stp#=1.0/Float(tilex)
    For z#=0 To tilez-1
        u=0
        For x#=0 To tilex-1
            h1#=map(x,z)
            h2#=map(x+1,z)
            h3#=map(x+1,z+1)
            h4#=map(x,z+1)
            VertexCoords surf,cnt,x,h1,z
            VertexCoords surf,cnt+1,x+1,h2,z
            VertexCoords surf,cnt+2,x+1,h3,z+1
            VertexCoords surf,cnt+3,x,h4,z+1
            cnt=cnt+4
            u=u+stp
        Next
        v=v+stp
    Next
    UpdateNormals mesh
    Return mesh
End Function

; this will animate kinda heightmap inside array 'map(,)'
.Update_Plasma
 wave1% = wave1% + 8
 If wave1% >= 320 Then wave1% = 0 
 wave2% = wave2% + 4
 If wave2% >= 320 Then wave2% = 0
  For yw = 0 To 329 Step 10
   y10=yw/10
   dw = cosinus#(yw + wave2) + cosinus#(Yw + wave2)
   For xw = 0 To 329 Step 10
    x10=xw/10
    map(x10,y10) = 1.0 + Abs(((cosinus#(xw + wave1) + cosinus#(xw + yw) + dw) / 16) )
   Next 
  Next
Return
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 17:02   #5
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Screеnsaver

Народ, мне не нужны туторы по созданию скринсейверов. Я и так прекрасно понимаю как мне его делать. У меня был конкретный вопрос о превращении .exe в .scr

Простым переименованием не удалось. Спасибо Matt Merkulov' у Подскозал воспользоватся TC
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 17:53   #6
ЛысыЙ_Чук-Иванчук
Дэвелопер
 
Регистрация: 19.03.2006
Сообщений: 1,241
Написано 10 полезных сообщений
(для 17 пользователей)
Re: Screеnsaver

а не удалось то- потомучто нада менять расширение
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 18:53   #7
IGR
Blitz's Shame !!
 
Регистрация: 31.03.2007
Сообщений: 3,639
Написано 832 полезных сообщений
(для 2,013 пользователей)
Re: Screеnsaver

а не удалось то- потомучто нада менять расширение
и что, после этого ОС роспознает файл как скринсейвер ??
вот так просто ?? Хм !!
(Offline)
 
Ответить с цитированием
Старый 23.10.2007, 19:49   #8
Android
Бывалый
 
Регистрация: 29.03.2007
Сообщений: 662
Написано 199 полезных сообщений
(для 448 пользователей)
Re: Screеnsaver

просто надо в настройках винды (Сервис->Настройки чтото там-> показывать расширения зарег. файлов) поставить отображение расширений и все путем будет! Очень даже помогает
(Offline)
 
Ответить с цитированием
Старый 24.10.2007, 03:57   #9
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Screеnsaver

Хм. Написал я свой скринсейвер. Превратил .ехе в .scr. Вроде бы всё. Но нет. При попытке запуска скринсейвера сначала экран мерцает, а потом вылетает MAV. Думал, что что-то не правильно сделал. Попробовал код из статьи, попробовал предложенный H@NON ом. Никаких изминений. Вылетает MAV. Что за ерунда?
(Offline)
 
Ответить с цитированием
Старый 24.10.2007, 08:38   #10
jimon
 
Сообщений: n/a
Re: Screеnsaver

Raiter
оно просто как .exe работает ?
 
Ответить с цитированием
Старый 24.10.2007, 11:33   #11
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Re: Screеnsaver

Райтер, ты не юзаешь паки в ехе?
(Offline)
 
Ответить с цитированием
Старый 24.10.2007, 12:49   #12
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Screеnsaver

оно просто как .exe работает ?
ы?

Нед. Я иго переделываю в Програмо-заставко. Выставляю каг заставко. Но когда иго пробую врубить просмотр или когда просто врубаеццо заставко, то вылетает MAV ((((
(Offline)
 
Ответить с цитированием
Старый 24.10.2007, 12:52   #13
Android
Бывалый
 
Регистрация: 29.03.2007
Сообщений: 662
Написано 199 полезных сообщений
(для 448 пользователей)
Re: Screеnsaver

Сообщение от Raiter
ы?
Это да или нет?
(Offline)
 
Ответить с цитированием
Старый 24.10.2007, 12:54   #14
Raiter
Гигант индустрии
 
Регистрация: 04.08.2006
Сообщений: 2,642
Написано 53 полезных сообщений
(для 92 пользователей)
Re: Screеnsaver

ы?

Нед
(Offline)
 
Ответить с цитированием
Старый 24.10.2007, 13:54   #15
Android
Бывалый
 
Регистрация: 29.03.2007
Сообщений: 662
Написано 199 полезных сообщений
(для 448 пользователей)
Re: Screеnsaver

Дык это у тя в самой проге ашипка
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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