I have recently found how to use types but now I am trying to get my ai file to update the type units but blitz3d says that the types can't do that
what am I doing wrong?
Post some example code otherwise nobody will understand your question.
okay
type beast
field entity
end type
(here's where it goes arwy)
for s.beast=each beast
if entitydistance(s/entity,player)< 45 then
pointentity s/entity,player
animateentity s/entity (I don't remember)
moveentity s/entity,0,0,.7
endif
next
this hasn't worked so far what's going on?
you have no beasts?
1) Post some code that does something
2) Say what it doesnt do
3) Say what is supposed to do
The error (for example), may be that each baests Forward isnt the same as the model, so pointentity is making the back point to the player. But without more information than "here's where it goes arwy" who can tell?
here is my code
Graphics3D 600,400,32,2
SeedRnd(MilliSecs())
units=1
floors=2
Type beast
Field entity
End Type
player=CreatePivot()
camera=CreateCamera(player)
PositionEntity camera,0,3,0
EntityType player,units
Global beast=CreateCube()
PositionEntity beast,0,5,0
EntityColor beast,255,0,0
EntityType beast,units
HideEntity beast
ground=CreatePlane()
PositionEntity ground,0,-3,0
EntityType ground,floors
Collisions units,units,2,3
Collisions units,floors,2,3
While Not KeyHit(1)
If KeyHit(2) Then
s.beast=New beast
s\entity=CopyEntity(beast)
PositionEntity beast,Rnd(-20,20),5,Rnd(-20,20)
EndIf
For s.beast=Each beast
If EntityDistance(s\entity,player)<45 Then
PointEntity s\entity,player
MoveEntity s\entity,0,0,.3
EndIf
Next
this is what is wrong
For s.beast=Each beast
gravity(s/entity,1)
Next
it says arithmetic operatior cannot be applied to custom type objects
gravity(player,1)
;keymovement
If KeyDown(17) Then MoveEntity player,0,0,.5
If KeyDown(31) Then MoveEntity player,0,0,-.5
If KeyDown(30) Then MoveEntity player,-.5,0,0
If KeyDown(32) Then MoveEntity player,.5,0,0
;Mouse movement
Local x_speed#,y_speed#
x_speed=(MouseXSpeed()-x_speed)/2+x_speed
y_speed=(MouseYSpeed()-y_speed)/2+y_speed
MoveMouse 320,240
TurnEntity player,0,-x_speed,0
TurnEntity camera,-y_speed,0,0
UpdateWorld
RenderWorld
Flip
Wend
End
Function gravity(unit$,speed#)
TranslateEntity Unit$,0,-speed#,0
End Function
It's a typo, the slash should be a backslash:
;this is what is wrong
For s.beast=Each beast
gravity(s\entity,1) ;;; <------- here
Next
thank you so much!
also the cube I have replaced with a spider.b3d
when I do this
For s.beast=Each beast
If EntityDistance(s\entity,player)<45 Then
PointEntity s\entity,player
MoveEntity s\entity,0,0,.3
; it says that there is no animation
animate s\entity
; but I thought that it was and exact copy of the animated.b3d
EndIf
Next
maybe your using "Loadmesh" and not "LoadAnimMesh"??
once again thank you now my ai works perfectly I'll post a demo in a week or two
here's a random question but what did the programers use to create blitz3d?
that's what I thought because I tried running it on an older computer and the computer said the visual c++ wasn't right
You mean, you ran blitz3d on an older computer, and you got a c++ error ? That's interesting ?
well they were ohh 1998, what was weird was blitz wouldn't run but maplet ran hella fast I had good textures loaded, no lag what so ever
speaking of maplet how would I go about finding code that creates shadows like that?
It is called a lightmapper. I think you can find a code example for that in the code archives on this site.