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

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

Вернуться   www.boolean.name > Проекты > Проекты на Blitz3D

Проекты на Blitz3D Обсуждение будущих проектов, демок, набор команды и т.п.

Ответ
 
Опции темы
Старый 06.11.2012, 13:12   #1
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Сообщение GRIG Project

рабочее название: GRIG Project
сюжет: фэнтэзи
жанр: пошаговая стратегия
проект с открытым кодом .(но без комментариев по коду)

Местами код Г....о
Тест Код: виды атаки .
клавишы:
1 - стрела/ы
2 - камень/и или ядра/о
3 - квазар/ы
4 - луч/и или лазер
(esc) - выход из программы
левая кнопка - удар по одной ячейки
правая кнопка - удар по одной ячейки и смежным

код в архиве (открыть в Блитце)
Вложения
Тип файла: rar Project GRIG.rar (5.6 Кб, 174 просмотров)
(Offline)
 
Ответить с цитированием
Эти 5 пользователя(ей) сказали Спасибо polopok за это полезное сообщение:
Arton (06.11.2012), FREE MAN (06.11.2012), moka (06.11.2012), pepel (12.11.2012), Reks888 (06.11.2012)
Старый 06.11.2012, 13:27   #2
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: GRIG Project

Круто что OpenSource, домой приду гляну обязательно!
(Offline)
 
Ответить с цитированием
Старый 06.11.2012, 13:30   #3
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Кстати желающих присоединится ,добро пожаловать !(писать в личку!)
думаю для вас будет неплохой опыт ...


Тест код: GRIG MAP 4x12 для замка
Войны могут занимать 1,2,3 или 4 клетки

клавиши 1,2,3,4
        Global GRx = 400 , GRy = 180 , fov# = 25  ;GRx = 400
    Global TileSizeX = 30 , TileSizeY = 20 
    Global num_tileX = 2 , num_tileY = 13 
    
     Dim TPosX#(num_tileY ,num_tileY) : Dim TPosY#(num_tileY ,num_tileY)
     Dim TPozX#(num_tileY ,num_tileY) : Dim TPozY#(num_tileY ,num_tileY)
;    Mesto ячейка 1- занята , 0 - свободна
     Dim Mesto(num_tileY ,num_tileY) : Dim Character(2) 
    
Function CreateGrid() 
    For y = 1 To num_tileY
        For x = -num_tileX To num_tileX
            ScaleRatio# = fov/(fov+y)
            px# = x*TileSizeX/ScaleRatio
            py# = y*TileSizeY
            Color 85, 107, 47
        ;    Text GRx +px , GRy +py , x+" "+y
            If x<num_tileX Then Line GRx+px , GRy +py , GRx+((x+1)*TileSizeX/ScaleRatio) , GRy +py
            If y<num_tileY Then Line GRx+px , GRy +py , GRx+((x)*TileSizeX/(fov/(fov+(y+1)))) , GRy +(y+1)*TileSizeY
                
            
                TPozX#(x+num_tileX+1,y)    = px#   ;
                TPozY#(x+num_tileX+1,y)    = py#   ;
                
                Mesto(x+num_tileX+1,y)        = 0 ;

            
            If x<num_tileX And y<num_tileY Then 
                prx# = px+(TileSizeX*0.5)+(x +y)*0.5;
                pry# = py+(TileSizeY*0.5)

                TPosX(x+num_tileX+1,y)        = prx#
                TPosY(x+num_tileX+1,y)        = pry#
                
                Plot GRx+prx , GRy +pry
            ;    Plot GRx+2 ,GRy+2
            EndIf 
        Next
    Next     
End Function 

Function GridSelect(STX,STY,kolvoseg=1,Sr=0,Sg=0,Sb=0)
    If STX<num_tileY And STX >0 And STY <num_tileY And STY >0 
            Color Sr,Sg,Sb
            Line GRx + TPozX(STX,STY) , GRy +TPozY(STX,STY), GRx + TPozX(STX+kolvoseg,STY), GRy +TPozY(STX,STY) ; верхняя
            Line GRx + TPozX(STX,STY+kolvoseg) , GRy +TPozY(STX,STY+kolvoseg) , GRx + TPozX(STX+kolvoseg,STY+kolvoseg) ,GRy + TPozY(STX,STY+kolvoseg);нижняя
            
            Line GRx + TPozX(STX,STY) , GRy +TPozY(STX,STY) , GRx + TPozX(STX,STY+kolvoseg) , GRy +TPozY(STX+kolvoseg,STY+kolvoseg);левая
            Line GRx + TPozX(STX+kolvoseg,STY) , GRy +TPozY(STX+kolvoseg,STY) , GRx + TPozX(STX+kolvoseg,STY+kolvoseg) , GRy +TPozY(STX+kolvoseg,STY+kolvoseg);правая
            Color 255,255,255
    EndIf 
End Function 

Graphics 800,600,32,2 
SetBuffer BackBuffer() 
    
seg%=1    
ClsColor 189 ,183, 107 
While Not KeyHit(1) 
    Cls 
mx# = MouseX() : my# = MouseY()
CreateGrid() 

    ym# = Floor#((my-GRy)/ TileSizeY)
    xm# = Floor#((  (mx-GRx )/ TileSizeX*( (fov/(fov+ym#))) )+num_tileX+1)
    TX = Int(xm) : TY = Int(ym)
    
    
If  KeyDown(2) Then  seg%=1
If KeyDown(3) Then   seg%=2
If KeyDown(4)Then   seg%=3
If KeyDown(5) Then   seg%=4

    If TX<num_tileX+3 And TX >0 And TY <num_tileY And TY >0

        Select seg
        Case 1 
             GridSelect(TX,TY,1,255)
        Case 2
            If  TX = 4   Then TX = 3  ;Or TX = 3 Or  TX = 4
            If TY >num_tileY-seg Then TY =num_tileY-seg
            GridSelect(TX,TY,seg,0,255)
            GridSelect(TX,TY,1,255)    
        Case 3
            If  TX = 3 Or  TX = 4  Then TX = 2  ;Or TX = 3 
            If TY >num_tileY-seg Then TY =num_tileY-seg
            GridSelect(TX,TY,seg,0,255)
            GridSelect(TX,TY,1,255)    
        Case 4
            If  TX = 2 Or TX = 3 Or  TX = 4  Then TX = 1  ; 
            If TY >num_tileY-seg Then TY =num_tileY-seg
            GridSelect(TX,TY,seg,0,255)
            GridSelect(TX,TY,1,255)
        End Select 
    EndIf     
    Text mx,my,"\"
Flip 
Wend 
End



Тест Код: виды атаки .(вариант с анимацией)
код в (offtop e)
Include "F_Strela_2.bb"
Include "Grid_2d_iso.bb"
    Global TX,TY,mx#,my#

Graphics 800,600,32,2

    elf_lukcinik = LoadAnimImage ("Images\hero4.bmp",80,80,0,4)
    ;ResizeImage elf_lukcinik ,64 ,64
    MaskImage elf_lukcinik, 100,100,100             ; 255,255,255   ;
    IW = ImageWidth(elf_lukcinik )
    IH = ImageHeight(elf_lukcinik ) 
    HandleImage elf_lukcinik,IW/2,IH 
    
    fon = CreateImage (761,511)
    SetBuffer ImageBuffer(fon )
        CreateGrid()
    SetBuffer BackBuffer() 

    vibor%=1
    frmSparks =0
ClsColor 189 ,183, 107 
While Not KeyHit(1) 
Cls 
mx# = MouseX() : my# = MouseY()

        TXMap =6
        TYMap =6
        
    DrawImage fon,0,0
        DrawImage elf_lukcinik, GRx + TPosX(TXMap,TYMap)  ,GRy + TPosY(TXMap,TYMap) ,frmSparks 

    ;Rect GRx + TPosX(6,6)-16,GRy + TPosY(6,6)-48,32,48
    ym# = Floor#((my-GRy)/ TileSizeY)
    xm# = Floor#((  (mx-GRx )/ TileSizeX*( (fov/(fov+ym#))) )+num_tileX+1)
    TX = Int(xm) : TY = Int(ym)


If  KeyDown(2) Then  vibor%=1
If KeyDown(3) Then   vibor%=2
If KeyDown(4)Then   vibor%=3
If KeyDown(5) Then   vibor%=4


If MouseHit(1) Then playanimation=1:m1=True 
If MouseHit(2) Then playanimation=1:m2=True 


Select  playanimation
Case 1
    If MilliSecs() > tmrSparks + 200 Then 
        tmrSparks=MilliSecs() ; сбрасываем таймер 
        frmSparks=( frmSparks + 1 ) Mod 4 +(4*1-4)    
    If frmSparks =3 Then 
    frmSparks =0:playanimation=0
    EndIf 
    If frmSparks =2 Then attack = True
    EndIf 
End Select 

If attack = True And m1 = True Then 
    If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
        If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
        End If 
    EndIf     
    attack = False : m1 = False 
EndIf 

If attack = True And m2 = True Then 
    If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
        
        If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
    
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY )-1 ,GRy + TPosY(TX+1 ,TY )-35 ,vibor%)
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY )-1 ,GRy + TPosY(TX-1 ,TY )-35 ,vibor%)
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY +1)-1 ,GRy + TPosY(TX ,TY+1 )-35 ,vibor%)
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY -1)-1 ,GRy + TPosY(TX ,TY-1 )-35 ,vibor%)
            
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY +1)-1 ,GRy + TPosY(TX+1 ,TY+1 )-35 ,vibor%)
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY +1)-1 ,GRy + TPosY(TX-1 ,TY+1 )-35 ,vibor%)
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY -1)-1 ,GRy + TPosY(TX+1 ,TY-1 )-35 ,vibor%)
            CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY -1)-1 ,GRy + TPosY(TX-1 ,TY-1 )-35 ,vibor%)

        End If 
    EndIf     
    attack = False : m2 = False 
EndIf 

For ss.streliba = Each streliba
UpdateStrela(ss)
If ss <>Null Then 
Text 20,160,"dist "+ss\rastoianie_do_misheni#

EndIf 
Next     
                
Draw_Ekran()

Flip 
Wend 
FreeImage elf_lukcinik
FreeImage fon
Delete Each streliba
End



Function Draw_Ekran()
    Color 85, 107, 47
;    Rect 0,0,800,50,1
;    Rect 0,460,800,140,1
    Rect 70,30,660,430,0
    
;    Rect 0,30,70,5,1
;    Rect 730,30,70,430,1
    Color 255,255,255    
If TX<num_tileY And TX >0 And TY <num_tileY And TY >0    
        Text 20,60,"X : "+TX
        Text 20,80,"Y : "+TY    
EndIf         
        Text 20,100,"mX : "+mx
        Text 20,120,"mY : "+my    
        Text 20,140,"kolvo "+kolvo_elementov
End Function


из вложения изображение поместить в папку Images и запустить код.
Изображения
Тип файла: bmp hero4.bmp (75.1 Кб, 242 просмотров)

Последний раз редактировалось moka, 06.11.2012 в 14:49.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
moka (06.11.2012)
Старый 06.11.2012, 19:27   #4
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: GRIG Project

добавил растительность , удар ножом при клике смежных с эльфом клеток ,
анимация с любого кадра .( последовательность можно задать любую ?!)

Тест Код: виды атаки .(вариант 2 ,с анимацией) см. вложение
Вложения
Тип файла: rar Project GRIG var2.rar (56.8 Кб, 127 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Arton (06.11.2012)
Старый 06.11.2012, 19:35   #5
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,527
Написано 1,985 полезных сообщений
(для 4,742 пользователей)
Ответ: GRIG Project

Сообщение от polopok Посмотреть сообщение
добавил растительность , удар ножом при клике смежных с эльфом клеток ,
анимация с любого кадра .( последовательность можно задать любую ?!)

Тест Код: виды атаки .(вариант 2 ,с анимацией) см. вложение
Респект. Так держать.

Может побольше разрешение медии сделаешь? Или автоматическое масштабирование. Мне с моим зрением надо в экран тыкаться.
(Offline)
 
Ответить с цитированием
Старый 06.11.2012, 20:16   #6
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: GRIG Project

Сообщение от Arton Посмотреть сообщение
Респект. Так держать.

Может побольше разрешение медии сделаешь? Или автоматическое масштабирование. Мне с моим зрением надо в экран тыкаться.
крупнее разрешение ни к чему ,так как в перспективе будет АТВ шкала (а-ля Герои меча и магии) .

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

Тест Код: виды атаки .(вариант 3 ,с анимацией)
заменить GRIG 5 на этот код (см. оффтоп)
Include "F_Strela_2.bb"
Include "Grid_2d_iso_2.bb"
	Global TX,TY,mx#,my# ,frmSparks 

Graphics 800,600,32,2
		Load_BackGround_Image() 
	elf_lukcinik = LoadAnimImage ("Images\hero4.bmp",80,80,0,9)
	;ResizeImage elf_lukcinik ,64 ,64
	MaskImage elf_lukcinik, 100,100,100             ; 255,255,255   ;
	IW = ImageWidth(elf_lukcinik )
	IH = ImageHeight(elf_lukcinik ) 
	HandleImage elf_lukcinik,IW/2,IH 
	
	fon = CreateImage (761,511)
	SetBuffer ImageBuffer(fon )
		CreateGrid()
	SetBuffer BackBuffer() 
		Free_BackGround_Image()
		
	vibor%=1
	frmSparks =0
	TXMap =6
	TYMap =6	
ClsColor 189 ,183, 107 
While Not KeyHit(1) 
Cls 
mx# = MouseX() : my# = MouseY()


		
	DrawImage fon,0,0
		DrawImage elf_lukcinik, GRx + TPosX(TXMap,TYMap)  ,GRy + TPosY(TXMap,TYMap) ,frmSparks 

	;Rect GRx + TPosX(6,6)-16,GRy + TPosY(6,6)-48,32,48
	ym# = Floor#((my-GRy)/ TileSizeY)
	xm# = Floor#((  (mx-GRx )/ TileSizeX*( (fov/(fov+ym#))) )+num_tileX+1)
	TX = Int(xm) : TY = Int(ym)


If  KeyDown(2) Then  vibor%=1
If KeyDown(3) Then   vibor%=2
If KeyDown(4)Then   vibor%=3
If KeyDown(5) Then   vibor%=4

If MouseDown(1) Or MouseDown(2) And TX = TXMap And  TY =  TYMap And mouse_sel = False Then mouse_sel = True 

If MouseDown(1) Or MouseDown(2) And mouse_sel = True Then 
	TXMap = TX : TYMap  = TY 
Else 	
	mouse_sel = False
EndIf 


If MouseHit(1) And mouse_sel = False Then 
	If TX = (TXMap+1) Or TX =  (TXMap-1) Or TY = (TYMap-1) Or TY = (TYMap+1) Then 
		playanimation=2 
		Restore elf_attack_noj	
	EndIf 
	If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
		playanimation=1:m1 = True 
		Restore elf_attack_luk
	EndIf 
EndIf 

If MouseHit(2) And mouse_sel = False Then 
	If TX = (TXMap+1) Or TX =  (TXMap-1) Or TY = (TYMap-1) Or TY = (TYMap+1) Then 
		playanimation=2 
		Restore elf_attack_noj	
	EndIf 
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
		playanimation=1:m2 = True 
		Restore elf_attack_luk
	EndIf 
EndIf 


Select  playanimation
Case 0 
	If MilliSecs() > tmrSparks + 2180 Then 
		tmrSparks=MilliSecs() ; сбрасываем таймер 
		Read frmSparks 
	If frmSparks =0 Then 
	frmSparks =0:playanimation=0 : Restore elf_attack_static
	EndIf 
	If frmSparks =2 Then attack1 = True
	EndIf 
Case 1
	If MilliSecs() > tmrSparks + 180 Then 
		tmrSparks=MilliSecs() ; сбрасываем таймер 
		Read frmSparks 
	If frmSparks =0 Then 
	frmSparks =0:playanimation=0 : Restore elf_attack_static
	EndIf 
	If frmSparks =2 Then attack1 = True
	EndIf 
Case 2

	If MilliSecs() > tmrSparks + 180 Then 
		tmrSparks=MilliSecs() ; сбрасываем таймер 
		Read frmSparks 
	If frmSparks =0 Then 
	frmSparks =0:playanimation=0 : Restore elf_attack_static
	EndIf 
	EndIf 
End Select 

If attack1 = True And m1 = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
		End If 
	EndIf 	
	attack1 = False  :m1 = False 
EndIf 

If attack1 = True And m2 = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
	
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY )-1 ,GRy + TPosY(TX+1 ,TY )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY )-1 ,GRy + TPosY(TX-1 ,TY )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY +1)-1 ,GRy + TPosY(TX ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY -1)-1 ,GRy + TPosY(TX ,TY-1 )-35 ,vibor%)
			
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY +1)-1 ,GRy + TPosY(TX+1 ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY +1)-1 ,GRy + TPosY(TX-1 ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY -1)-1 ,GRy + TPosY(TX+1 ,TY-1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY -1)-1 ,GRy + TPosY(TX-1 ,TY-1 )-35 ,vibor%)

		End If 
	EndIf 	
	attack1 = False :m2 = False 
EndIf 

For ss.streliba = Each streliba
UpdateStrela(ss)
If ss <>Null Then 
Text 20,160,"dist "+ss\rastoianie_do_misheni#

EndIf 
Next 	
				
Draw_Ekran()

Flip 
Wend 
FreeImage elf_lukcinik
FreeImage fon
Delete Each streliba
End



Function Draw_Ekran()
	Color 85, 107, 47
	Rect 0,0,800,50,1
	Rect 0,460,800,140,1
	Rect 70,30,660,430,0
	
	Rect 0,30,70,5,1
	Rect 730,30,70,430,1
	Color 255,255,255	
If TX<num_tileY And TX >0 And TY <num_tileY And TY >0	
		Text 20,60,"X : "+TX
		Text 20,80,"Y : "+TY	
EndIf 		
		Text 20,100,"mX : "+mx
		Text 20,120,"mY : "+my	
		Text 20,140,"kolvo "+kolvo_elementov
		Text 20,180,"frmSparks "+frmSparks 
End Function 

.elf_attack_static
Data 0,0 ;3,0
.elf_attack_noj
Data 5,6,7,6,5,0
.elf_attack_luk
Data 1,2,5,0
(Offline)
 
Ответить с цитированием
Старый 06.11.2012, 20:31   #7
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: GRIG Project

А можно туда exe скомпилированный скинуть? А то у меня блица под рукой и думаю у многих других тоже не будет..
(Offline)
 
Ответить с цитированием
Старый 06.11.2012, 20:33   #8
Arton
Быдлокодер
 
Аватар для Arton
 
Регистрация: 05.07.2009
Адрес: Проспит
Сообщений: 4,527
Написано 1,985 полезных сообщений
(для 4,742 пользователей)
Ответ: GRIG Project

Был глюк когда перетащил эльфа за поле влево, эльф телепортировался наверх вне поля, отпустил кнопку там и остался.
Да, когда перетаскиваешь эльфа за границу клеток, он оказывается вне поля сверху, зависит от того как далеко перетащить от границы поля, он тогда за экран убегает.
(Offline)
 
Ответить с цитированием
Старый 06.11.2012, 20:49   #9
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Да есть такое ... позже подправлю (тот же "глюк" при нажатии правой кнопки мыши когда наведена на крайние ячейки)

поправил ...

заменить код ...
If MouseDown(1) Or MouseDown(2) And mouse_sel = True Then 
	TXMap = TX : TYMap  = TY 
Else 	
	mouse_sel = False
EndIf
на ...
If MouseDown(1) Or MouseDown(2) And mouse_sel = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		TXMap = TX : TYMap  = TY 
	EndIf 
Else 	
	mouse_sel = False
EndIf
исправил мелкие "баги"
теперь если мышь за пределами поля анимация проигрываться не будет , вообще реакций не будет.

Тест Код: виды атаки .(вариант 3 ,с анимацией)
заменить GRIG 5 на этот код (см. оффтоп)
Include "F_Strela_2.bb"
Include "Grid_2d_iso_2.bb"
	Global TX,TY,mx#,my# ,frmSparks 

Graphics 800,600,32,2
		Load_BackGround_Image() 
	elf_lukcinik = LoadAnimImage ("Images\hero4.bmp",80,80,0,9)
	;ResizeImage elf_lukcinik ,64 ,64
	MaskImage elf_lukcinik, 100,100,100             ; 255,255,255   ;
	IW = ImageWidth(elf_lukcinik )
	IH = ImageHeight(elf_lukcinik ) 
	HandleImage elf_lukcinik,IW/2,IH 
	
	fon = CreateImage (761,511)
	SetBuffer ImageBuffer(fon )
		CreateGrid()
	SetBuffer BackBuffer() 
		Free_BackGround_Image()
		
	vibor%=1
	frmSparks =0
	TXMap =6
	TYMap =6	
ClsColor 189 ,183, 107 
While Not KeyHit(1) 
Cls 
mx# = MouseX() : my# = MouseY()


		
	DrawImage fon,0,0
		DrawImage elf_lukcinik, GRx + TPosX(TXMap,TYMap)  ,GRy + TPosY(TXMap,TYMap) ,frmSparks 

	;Rect GRx + TPosX(6,6)-16,GRy + TPosY(6,6)-48,32,48
	ym# = Floor#((my-GRy)/ TileSizeY)
	xm# = Floor#((  (mx-GRx )/ TileSizeX*( (fov/(fov+ym#))) )+num_tileX+1)
	TX = Int(xm) : TY = Int(ym)


If  KeyDown(2) Then  vibor%=1
If KeyDown(3) Then   vibor%=2
If KeyDown(4)Then   vibor%=3
If KeyDown(5) Then   vibor%=4

If MouseDown(1) Or MouseDown(2) And TX = TXMap And  TY =  TYMap And mouse_sel = False Then mouse_sel = True 

If MouseDown(1) Or MouseDown(2) And mouse_sel = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		TXMap = TX : TYMap  = TY 
	EndIf 
Else 	
	mouse_sel = False
EndIf 


If MouseHit(1) And mouse_sel = False Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
	If TX = (TXMap+1) Or TX =  (TXMap-1) Or TY = (TYMap-1) Or TY = (TYMap+1) Then 
		playanimation=2 
		Restore elf_attack_noj	
	EndIf 
	If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
		playanimation=1:m1 = True 
		Restore elf_attack_luk
	EndIf 
	EndIf 
EndIf 

If MouseHit(2) And mouse_sel = False Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
	If TX = (TXMap+1) Or TX =  (TXMap-1) Or TY = (TYMap-1) Or TY = (TYMap+1) Then 
		playanimation=2 
		Restore elf_attack_noj	
	EndIf 
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
		playanimation=1:m2 = True 
		Restore elf_attack_luk
	EndIf 
	EndIf 
EndIf 


Select  playanimation
Case 0 
	If MilliSecs() > tmrSparks + 2180 Then 
		tmrSparks=MilliSecs() ; сбрасываем таймер 
		Read frmSparks 
	If frmSparks =0 Then 
	frmSparks =0:playanimation=0 : Restore elf_static
	EndIf 
	If frmSparks =2 Then attack1 = True
	EndIf 
Case 1
	If MilliSecs() > tmrSparks + 180 Then 
		tmrSparks=MilliSecs() ; сбрасываем таймер 
		Read frmSparks 
	If frmSparks =0 Then 
	frmSparks =0:playanimation=0 : Restore elf_static
	EndIf 
	If frmSparks =2 Then attack1 = True
	EndIf 
Case 2

	If MilliSecs() > tmrSparks + 180 Then 
		tmrSparks=MilliSecs() ; сбрасываем таймер 
		Read frmSparks 
	If frmSparks =0 Then 
	frmSparks =0:playanimation=0 : Restore elf_static
	EndIf 
	EndIf 
End Select 

If attack1 = True And m1 = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
		End If 
	EndIf 	
	attack1 = False  :m1 = False 

ElseIf attack1 = True And m2 = True 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
	
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY )-1 ,GRy + TPosY(TX+1 ,TY )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY )-1 ,GRy + TPosY(TX-1 ,TY )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY +1)-1 ,GRy + TPosY(TX ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY -1)-1 ,GRy + TPosY(TX ,TY-1 )-35 ,vibor%)
			
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY +1)-1 ,GRy + TPosY(TX+1 ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY +1)-1 ,GRy + TPosY(TX-1 ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY -1)-1 ,GRy + TPosY(TX+1 ,TY-1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY -1)-1 ,GRy + TPosY(TX-1 ,TY-1 )-35 ,vibor%)

		End If 
	EndIf 	
	attack1 = False :m2 = False 
EndIf 

For ss.streliba = Each streliba
UpdateStrela(ss)
If ss <>Null Then 
Text 20,160,"dist "+ss\rastoianie_do_misheni#

EndIf 
Next 	
				
Draw_Ekran()

Flip 
Wend 
FreeImage elf_lukcinik
FreeImage fon
Delete Each streliba
End



Function Draw_Ekran()
	Color 85, 107, 47
	Rect 0,0,800,50,1
	Rect 0,460,800,140,1
	Rect 0,30,70,430,1
	

	
	Rect 0,30,70,5,1
	Rect 730,30,70,430,1
	Color 10,50,0
	Rect 70,50,660,410,0	
	Rect 70,466,660,120,0
	Color 255,255,255	
If TX<num_tileY And TX >0 And TY <num_tileY And TY >0	
		Text 80,445,""+TX+" : "+TY

EndIf 		
		Text 10,20,"mx "+mx+" : my "+my
		Text 10,140,"kolvo "+kolvo_elementov
		Text 10,180,"frmSparks "+frmSparks 
		Text mx,my,"\"
End Function 

.elf_static
Data 3,0
.elf_attack_noj
Data 5,6,7,6,5,0
.elf_attack_luk
Data 1,2,5,0


Сообщение от MoKa Посмотреть сообщение
А можно туда exe скомпилированный скинуть? А то у меня блица под рукой и думаю у многих других тоже не будет..
по просьбе трудящихся добавил EXE. ( его нужно поместить в ранее скаченную папку)

замените код..
If attack1 = True And m1 = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
		End If 
	EndIf 	
	attack1 = False  :m1 = False 

ElseIf attack1 = True And m2 = True 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
	
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY )-1 ,GRy + TPosY(TX+1 ,TY )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY )-1 ,GRy + TPosY(TX-1 ,TY )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY +1)-1 ,GRy + TPosY(TX ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY -1)-1 ,GRy + TPosY(TX ,TY-1 )-35 ,vibor%)
			
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY +1)-1 ,GRy + TPosY(TX+1 ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY +1)-1 ,GRy + TPosY(TX-1 ,TY+1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY -1)-1 ,GRy + TPosY(TX+1 ,TY-1 )-35 ,vibor%)
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY -1)-1 ,GRy + TPosY(TX-1 ,TY-1 )-35 ,vibor%)

		End If 
	EndIf 	
	attack1 = False :m2 = False 
EndIf
на ...
If attack1 = True And m1 = True Then 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
			CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
		End If 
	EndIf 	
	attack1 = False  :m1 = False 

ElseIf attack1 = True And m2 = True 
	If TX<num_tileY And TX >0 And TY <num_tileY And TY >0
		
		If TX > (TXMap+1) Or TX < (TXMap-1) Or TY < (TYMap-1) Or TY > (TYMap+1) Then 
		CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap)- 45 ,GRx + TPosX(TX ,TY )- 1 ,GRy + TPosY(TX ,TY )- 35 ,vibor%)
		
		If TX+1<num_tileY And TX+1 >0 And TY <num_tileY And TY >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY )-1 ,GRy + TPosY(TX+1 ,TY )-35 ,vibor%)
		If TX-1<num_tileY And TX-1 >0 And TY <num_tileY And TY >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY )-1 ,GRy + TPosY(TX-1 ,TY )-35 ,vibor%)
		If TX<num_tileY And TX >0 And TY+1 <num_tileY And TY+1 >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY +1)-1 ,GRy + TPosY(TX ,TY+1 )-35 ,vibor%)
		If TX<num_tileY And TX >0 And TY-1 <num_tileY And TY-1 >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX ,TY -1)-1 ,GRy + TPosY(TX ,TY-1 )-35 ,vibor%)
			
		If TX+1<num_tileY And TX+1 >0 And TY+1 <num_tileY And TY+1 >0 Then CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY +1)-1 ,GRy + TPosY(TX+1 ,TY+1 )-35 ,vibor%)
		If TX-1<num_tileY And TX-1 >0 And TY+1 <num_tileY And TY+1 >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY +1)-1 ,GRy + TPosY(TX-1 ,TY+1 )-35 ,vibor%)
		If TX+1<num_tileY And TX+1 >0 And TY-1 <num_tileY And TY-1 >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX+1 ,TY -1)-1 ,GRy + TPosY(TX+1 ,TY-1 )-35 ,vibor%)
		If TX-1<num_tileY And TX-1 >0 And TY-1 <num_tileY And TY-1 >0 Then 	CreateStreliba(GRx + TPosX(TXMap,TYMap)+20 ,GRy + TPosY(TXMap,TYMap )- 45 ,GRx + TPosX(TX-1 ,TY -1)-1 ,GRy + TPosY(TX-1 ,TY-1 )-35 ,vibor%)

		End If 
	EndIf 	
	attack1 = False :m2 = False 
EndIf
исправил очередной "баг".
Вложения
Тип файла: exe GRIG 5.exe (1.30 Мб, 123 просмотров)

Последний раз редактировалось polopok, 07.11.2012 в 06:54.
(Offline)
 
Ответить с цитированием
Старый 06.11.2012, 21:06   #10
moka
.
 
Регистрация: 04.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,861 пользователей)
Ответ: GRIG Project

Спасибо.
Да и не забывай пользоваться кнопкой "Правка" под сообщениями - это лучше чем постить много сообщений подряд, т.к. модераторам прийдётся их объединять за тебя..
(Offline)
 
Ответить с цитированием
Старый 07.11.2012, 14:44   #11
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: GRIG Project

Таки появилась возможность размножать Эльфов .
теперь чтоб эльф начал действовать надо его выбрать .
чтоб переместить эльфа надо чтоб эльф был выбран ,затем удерживать пробел и левую кнопку мыши ,перемещать .
снять выделение правая кнопка мыши (в дальнейшем ПКМ).
если эльф выделен ,резать ,стрелять ,левая кнопка мыши (в дальнейшем ЛКМ)
массовый обстрел ,удерживать левый Ctrl + ЛКМ
пока всё ... (не пытайтесь стрелять по другому эльфу ,пока ... "баг")
Ах ,да , разархивируйте файлы из вложения в предыдущую папку с программами.
Вложения
Тип файла: rar Project GRIG.rar (2.4 Кб, 116 просмотров)
(Offline)
 
Ответить с цитированием
Старый 07.11.2012, 16:42   #12
Dzirt
Элита
 
Аватар для Dzirt
 
Регистрация: 16.01.2008
Адрес: Украина
Сообщений: 1,800
Написано 958 полезных сообщений
(для 3,832 пользователей)
Ответ: GRIG Project

Открыл дедулю блитц3д, посмотрел код...блин, мужик нечитабельно же нихера. Ты там сам не путаешся?
Нажмите на изображение для увеличения
Название: Безымянный.jpg
Просмотров: 276
Размер:	207.3 Кб
ID:	18000
(Offline)
 
Ответить с цитированием
Старый 07.11.2012, 17:10   #13
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: GRIG Project

нет пока не путаюсь ,это так намётки ,позже почищу код
а так пробуйте в том виде ,которое есть
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 09.11.2012, 09:28   #14
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: GRIG Project

Итак, продолжение следует . Накатал пример игрового меню (сырой вариант) и включил туда предыдущие файлы .
управление меню ЛКМ и дубль ЛКМ ( увы при Баталии стрельба,перемещение ,пока не работают ,но позже исправлю (хочу код переписать просто) ,а так смотрите сами ...

Вложение распаковать ...
можно .Exe запустить или Майн программ.

Кстати двойной ЛКМ на изображениях замка и единорога.
Вложения
Тип файла: rar Projec_GRIG.rar (2.99 Мб, 130 просмотров)
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Старый 11.11.2012, 08:53   #15
polopok
ПроЭктировщик
 
Регистрация: 17.07.2009
Сообщений: 182
Написано 51 полезных сообщений
(для 71 пользователей)
Ответ: GRIG Project

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

в дальнейшем (уже думаю над кодом ) будут юниты ,группы юнитов ,
размеры юнитов 1-2-3 клетки + думаю на поле битвы будут редко появляться боги 4 клетки в помощь нашей или другой стороне .
так же боги будут защищать основной город .
пока всё ... файлы вложены + .exe

Да ещё ,на единороге и городе кликать несколько раз (небольшой "глюк")
Вложения
Тип файла: rar 1_GRIG.rar (3.25 Мб, 131 просмотров)
__________________
Мой проект здесь
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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