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

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

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

2D-программирование Вопросы, касающиеся двумерного программирования

Ответ
 
Опции темы
Старый 23.01.2006, 13:26   #1
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
Ну как всегда у меня полторы пары вопросов, сегодня по Типам
1
как в типе:
Type tNPC
;...
;...
Field name
Field Head#;здоровье головы
Field Legs#;здоровье ноги
Field Belly#;здоровье живот
Field Tors#;здоровье торса
;....
Field Magic1#;удар магии
Field Strength#;кулачный удар
Field Weapont#;удар с приминением оружия
;....
End Type

посчитать средние значение показателей здоровья и наини меньшее из них


2 Делаю тах и выкатывает ошибку "Object does not exist", ваще непонимаю в чом дело
Type TBody
Field Head#;здоровье головы
Field Legs#;здоровье ноги
Field Belly#;здоровье живот
Field Tors#;здоровье торса
End Type
Type TUdar;Сила удара
Field Magic1#;удар магии
Field Strength#;кулачный удар
Field Weapont#;удар с приминением оружия
End Type

Type tNPC
Field health.tbody
Field udar.tudar
Field name

End Type

Function NewNPC.Tnpc(nName,hHead#,hTors#,hBelly#,hLegs#,uMa gic1,uStr,uWeap)
;задаем параметры нового игрока
Local n.tNPC=New tNPC
n\health\Head=hHead
n\health\Belly=hbelly#
n\health\Legs=hlegs#
n\health\Tors=htors#
Return n
End Function


Graphics3D 640,480,16,2
SetBuffer BackBuffer()
SetFont LoadFont("arial cyr",16)
cam=CreateCamera()
PositionEntity cam,0,30,-20

Ground=CreatePlane()
texa=CreateTexture( 63,63,9)
ScaleTexture texa,10,10
SetBuffer TextureBuffer(texa)
Color 128,128,128
Rect 32,0,32,32
Rect 0,32,32,32
Color 255,255,255
Rect 32,32,32,32
Rect 0,0,32,32
SetBuffer BackBuffer()
EntityTexture Ground,texa
FreeTexture texa

OrigMonster=CreateCube()
EntityColor OrigMonster,255,0,0
HideEntity OrigMonster
;###############################

n1.tnpc=NewNPC( "0", 25,25,25,25,6, 18,3)
n2.tnpc=NewNPC( "1", 18,18,18,18,13, 12,6)
;###############################
While Not KeyDown(1)


UpdateWorld
RenderWorld

Flip
Wend
End
;

3. как лутше организовать хранение параметров каждого парсонажа в RPG (ролевой) игре [параметры следующие: жизнь и тп, там несколько магии, владение разным оружием ну как в любой RPG]
(Offline)
 
Ответить с цитированием
Старый 23.01.2006, 14:16   #2
jimon
 
Сообщений: n/a
ессно что хранить типами
а вот етот гемор (я про юзание функции типа function lalala.blablabla())
надо заманить на handle
 
Ответить с цитированием
Старый 23.01.2006, 15:34   #3
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Не вижу ничего дурного в lalala.blablabla()
как и в хендлах - всему своё место.
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 24.01.2006, 09:31   #4
AsmLover
Оператор ЭВМ
 
Регистрация: 12.01.2006
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
To AKIMA

Для типа TNPC полями являются другие типы. А ты их не создаешь и сразу присваивешь какие-то значения. Попытка обращения к несуществуещему объекту, естественно, дает ошибку.
Инициализующая функция должна быть такой:
 
Function NewNPC.Tnpc(nName,hHead,hTors#,hBelly#,hLegs#,uMagic1,uStr,uWeap)
 
 *n.tNPC = New tNPC
 * *n\health.TBody * = New TBody 
 * *n\udar.TUdar * * = New TUdar

 * * *n\health\Head *= hHead
 * * *n\health\Belly = hbelly#
 * * *n\health\Legs *= hlegs#
 * * *n\health\Tors *= htors#
 *Return n

End Function
Теперь все будет работать. Но я бы реализовал это по другому, без связанных типов, через массив:

Const HEAD * *= 1
Const LEGS * *= 2
Const BELLY * = 3
Const TORSO * = 4

Type TNPC
 * *Field health# [4]
 * *Field name
End Type

n.TNPC = New TNPC

n \ health [ HEAD ] = 25
(Offline)
 
Ответить с цитированием
Старый 24.01.2006, 12:15   #5
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
А как найти меньшее и среднее значения
(Offline)
 
Ответить с цитированием
Старый 24.01.2006, 14:33   #6
jimon
 
Сообщений: n/a
перебрать все значения
 
Ответить с цитированием
Старый 24.01.2006, 15:02   #7
AsmLover
Оператор ЭВМ
 
Регистрация: 12.01.2006
Сообщений: 21
Написано 0 полезных сообщений
(для 0 пользователей)
Покажи, как ты думаешь делать и что не получается, тогда помогу.
(Offline)
 
Ответить с цитированием
Старый 26.01.2006, 11:04   #8
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
Originally posted by AsmLover@Jan 24 2006, 06:02 PM
Покажи, как ты думаешь делать и что не получается, тогда помогу.
Делаю систему боя двух и более NPC, в начале боя каждая нпс определяет слабые части тела врага и определяет свой опыт удара по этим частям, и во время боя должна наносить удары по нескольким "удачным" для нее частям тела врага.
например :
враг видит что игрок ванен в ногу и например у игрока еще на голове нет шлема. вражеская нпс определяет что он будет бить по этим частям тела и ищет среди своих параметров опыта куда еще он может наносить удары.


;- Параметры тела
Global tAll=0;Общее
Global tHead=1
Global tHand=2
Global tBody=3
Global tLegs=4
;- Параметры
Global tStrength=1;Сила
Global tDexterity=2;Ловкость


Type tNPC
	Field tName$
	
	Field tHP#[4];Здоровье тела
	Field tArmor#[4];Броня на теле
	Field tExpWar#[4];Опыт нанесения ударов по телу
	
End Type


Function NewNPC.tNPC(name$,nHP1#,nHP2#,nHP3#,nHP4# ,nAP1#,nAP2#,nAP3#,nAP4#, nEW1#,nEW2#,nEW3#,nEW4# )
;задаем параметры нового игрока
    Local n.tNPC=New tNPC
    n\tname=name
    ;Заполняем шкалу здоровья 
    n\tHP[tHead]=nhp1
    n\tHP[tHand]=nhp2
    n\tHP[tBody]=nhp3
    n\tHP[tLegs]=nhp4
    n\tHP[tAll]=(nhp1+nhp2+nhp3+nhp4)/4/1.2
    ;Заполняем шкалу Брони(одежды)
    n\tArmor[tHead]=nap1
    n\tArmor[tHand]=nap2
    n\tArmor[tBody]=nap3
    n\tArmor[tLegs]=nap4
    n\tArmor[tAll]=(nap1+nap2+nap3+nap4)/4/1.2
    ;Заполняем шкалу Опыта нанесения ударов
    n\tExpWar[tHead]=new1
    n\tExpWar[tHand]=new2
    n\tExpWar[Body]=new3
    n\tExpWar[tLegs]=new4
    n\tExpWar[tAll]=(new1+new2+new3+new4)/4/1.2 
  
 Return n
End Function

Dim nt(2)

Dim p1(2,3)
Dim minn#(2,2);первое число индекс врага / второе: 1-текущее значение 2-Самое слабое


Graphics3D 640,480,32,2

SetFont LoadFont("arial cyr",16)

N1.tnpc=NewNPC("Player1",12,23,14,8, 4,0,2,6, 4,2,1,3)
N2.tnpc=NewNPC("ENEMY",8,12,23,4, 3,4,2,1, 3,4,1,2 )


Real_WAR

While Not KeyHit(1)
	Text 20,20, n1\tname
	
	Text 50,10,minn(1,2)
	Text 50,30,minn(2,2)
	Flip
Wend
End



	Function Real_WAR()
minn(1,2)=9999
minn(2,2)=9999
;Определяем самые слабые чати тела соперника
	For i=1 To 3
;Local i=1
;!!!!!!!!!!!!!!!!!!!!!!!!! Только Здесь ОШИБКА Какаято непойму, к массиву придерается
	minn(1,1)=n1\thp[i];+n1\tArmor[i]
	minn(2,1)=n2\thp[i];+n2\tArmor[i]	
	
	If minn(1,1)<minn(1,2) minn(1,2)=minn(1,1)
	If minn(2,1)<minn(2,2) minn(2,2)=minn(2,1)	
	Next
	
	
End Function

Круто да

----------------------------------------
и еще вопросики
1/аказывается в типах можно делать так field health[3] ето хорошо А можно какнибуть так field health[3,4], ну чтобы не только 3 переменные запихать а у каждой чтобы еще по несколько было (как в массиве)
2/у меня все элементы типа содержат Field nName$ (именя), и другие параметры, я узнаю именя например 1 и 30 элементов и потом в отдельной функции должно проиходить вычисления только между этими двумя (или более) элементами, это можно сделать какнибудь без поиска этих элементов каждый цикл
For NPC.tNpc = Each tNPC
if npc.nname=[Имя элемента]
next

(Offline)
 
Ответить с цитированием
Старый 06.02.2006, 14:56   #9
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
Чаво ни кого нету то
(Offline)
 
Ответить с цитированием
Старый 06.02.2006, 15:21   #10
kortesfil
Знающий
 
Регистрация: 16.10.2005
Сообщений: 310
Написано 7 полезных сообщений
(для 0 пользователей)
акима а ты что делаеш? поделись=)
(Offline)
 
Ответить с цитированием
Старый 07.02.2006, 14:08   #11
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
я пытаюсь делать RPG типа (EVIL ISLANDS, корсары, beyond oasis на сеге), но пока неочень то получается.
попозже думаю замутить приглашение желающих и умеющих в группу для создания етой игры. а в этой теме я спрашиваю про данные и делаю систему боя к игре

ЗЫ: или может сейчас замутить. ващи мнения. немного скетчей нарисовано и моделей смоделировано
(Offline)
 
Ответить с цитированием
Старый 07.02.2006, 15:13   #12
kortesfil
Знающий
 
Регистрация: 16.10.2005
Сообщений: 310
Написано 7 полезных сообщений
(для 0 пользователей)
замути конечно сейчас! а насчёт корсаров ты прав!обожаю корсары!
(Offline)
 
Ответить с цитированием
Старый 08.02.2006, 13:56   #13
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
Внимание: объявлен проэкт игры "Заброшенные земли", желающие принять участие идите на http://community.boolean.name/index.php?showtopic=776
(Offline)
 
Ответить с цитированием
Старый 09.02.2006, 15:39   #14
Akima
Бывалый
 
Регистрация: 22.10.2005
Сообщений: 701
Написано 7 полезных сообщений
(для 5 пользователей)
Опять какието проблемы с типами, заполняю тип вроде все впорядке, а когда запрашиваю из него информацию нечего не происходит. Помогите а.



Фаил удален . А в следующем сообщении прикреплен файл с о всеми объяснениями
(Offline)
 
Ответить с цитированием
Старый 09.02.2006, 18:36   #15
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ничего не понял в коде - читается информация из фацлы и обрабатвается ужасным алгоритмом. Расставь отстыпы и прочее. И вообще - напиши, что конкретно ты хочшь от файла?
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Хранение картинок в классах Phantom JAVA Micro Edition 40 22.06.2012 01:40
Типы в Delphi giraf Delphi 4 18.12.2009 20:42
Типы в масиве ArtemkA 2D-программирование 2 25.06.2009 01:05
Типы чисел! Dimo4ik Основной форум 4 20.06.2009 02:43
Хранение карт в формате хмл и их чтение Aceton C++ 3 25.03.2009 19:26


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


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