Показать сообщение отдельно
Старый 18.05.2011, 01:20   #1
LLI.T.A.L.K.E.R.
Мастер
 
Аватар для LLI.T.A.L.K.E.R.
 
Регистрация: 24.06.2009
Адрес: Набережные Челны
Сообщений: 930
Написано 292 полезных сообщений
(для 504 пользователей)
Система боя врага в РПГ

Пробую написать подобную систему..
Код внутри:
Graphics3D 800,600,32,2
SetBuffer BackBuffer()

Camera=CreateCamera()

Player=CreateCube()
PositionEntity Player,5,0,-5
Player_Health%=100

Enemy=CreateCube()
EntityColor Enemy,200,100,100
Enemy_IsFight=0				; атакует
Enemy_FightFrame#=0		; задержка атаки (время размаха)

While Not KeyDown(1)
	
	If KeyDown(200) Then MoveEntity Player,0,0,0.1	; ^
	If KeyDown(208) Then MoveEntity Player,0,0,-0.1	; \/
	
	If KeyDown(203) Then MoveEntity Player,-0.1,0,0	; <
	If KeyDown(205) Then MoveEntity Player,0.1,0,0	; >
	
	PositionEntity Camera,EntityX#(Player),EntityY#(Player)+3,EntityZ#(Player)-5
	PointEntity Camera,Player
	
	PointEntity Enemy,Player
	If EntityDistance#(Enemy,Player)>3 Then
		MoveEntity Enemy,0,0,0.08
	Else
		If Enemy_IsFight=0 Then Enemy_IsFight=1
	EndIf
	
	If Enemy_IsFight=1 Then
		Enemy_FightFrame#=Enemy_FightFrame#+1
		If Enemy_FightFrame#>75 Then
			Enemy_IsFight=0
			Enemy_FightFrame#=0
			
			If EntityDistance#(Enemy,Player)<4 Then Player_Health=Player_Health-5
		EndIf
	EndIf
	
	If EntityDistance#(Enemy,Player)>5 Then
		Enemy_IsFight=0
		Enemy_FightFrame#=0
	EndIf
	
	UpdateWorld
	RenderWorld
	
	Text 5,5,Player_Health
	Text 5,25,"Dis:"+EntityDistance#(Enemy,Player)+" | Fight: "+Enemy_IsFight+" | Sum: "+Enemy_FightFrame#
	
	Flip
Wend


Пояснение:
Игрок двигается от врага, тот к игроку.
Если враг дальше игрока на 3 метра, двигается к нему.
Если враг ближе к игроку чем 3 метра - начинает размах (Enemy_FightFrame#)
Проходит 75 мксек - происходит удар.
Если враг ближе к игроку на 4 метра наносится урон.
Если игрок дальше от врага на 5 метров - удар отменяется.
В отличии от глупых боёв в ЛА2 - есть проверка "игрок во время удара вблизи или нет".
(В Ла2 и ВоВ: если враг размахнулся, Ты хоть за 5 метров убегай - он тебя считай побил)


Нужно будет добавить модель противника (с мечом или кулаками). И ориентироваться по анимации.
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо LLI.T.A.L.K.E.R. за это полезное сообщение:
Program23 (18.05.2011), St_AnGer (18.05.2011)