mehrere probleme
Übersicht

ZaRaKBetreff: mehrere probleme |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
1. wie kann ich einen loadscreen am anfang erstellen, das alle meshs und texturen geladen werden, ne % anzeige wär cool, aber das is kein muss
2. mesh/mesh collision, wie kann ichs machen, das wenn ich mesh1 bewege und das gegen mesh2 kommt, seinen moveentity befehl sofort stoppt und stehn bleibt (bei mir rennt das durch mesh2 durch und kommt wieder zurück, läuft dann wieder durch mesh2 durch.. also von einer seite zur andern) 3. wenn ich die kamera parent und point auf mesh1 setze, zieht die kamera auf einma runter ins terrain rein, wie kann ich machen das sich die kamera konstant auf einer höhe befindet? 4. wenn ich das mesh zB nach rechts bewege, pointet das sofort in die richtung, wie kann ich einen trägheitseffekt einbauen, das sich das mesh langsam in die richtung dreht, wo ich hin geklickt habe... wenn diese probleme gelöst werden könnte, wär ich echt scheiss dankbar... hier mal der komplette code... (sry, aber ich krieg das mit dem includen net hin, deswegen alles in einer file) Code: [AUSKLAPPEN] Graphics3D 1024,768,32,2 SetBuffer BackBuffer() ;globals Global inv = LoadSprite("inventar.bmp") Global i=0 ;terrain terrain = LoadTerrain("map.bmp") ScaleEntity terrain, 50,300,50 pivot = CreatePivot() ;wasser und licht wasser = CreatePlane() light = CreateLight() AmbientLight 255,255,255 MoveEntity wasser, 0, 20, 0 EntityAlpha wasser,0.5 ;meshs mesh = CreateSphere() ScaleEntity mesh, 5,5,5 item = LoadMesh("item.x") ;texturen Text1 = LoadTexture("gras.jpg") wassertext = LoadTexture("wasser.jpg") metall = LoadTexture("metbgr02.jpg") EntityTexture item, metall EntityTexture terrain,Text1,0,0 EntityTexture wasser,wassertext ScaleTexture text1, 3, 3 ScaleTexture wassertext, 100,100 ScaleTexture metall, -2, -2 ;cam cam = CreateCamera() CameraFogMode cam, 1 CameraRange cam, 1,30000 CameraFogRange cam, 100, 4000 CameraFogColor cam, 40, 140, 255 CameraClsColor cam, 40, 140, 255 ;positionen PositionEntity cam, 500, 400, 600 TurnEntity cam, 45, 0, 0 PositionEntity mesh, 500, 300, 700 PositionEntity pivot, 500, 300, 700 PositionEntity item, 550, 300, 750 ScaleEntity item, 30, 30, 30 PositionEntity item, EntityX(item), TerrainY(terrain,EntityX(item), EntityY(item),EntityZ(item)),EntityZ(item) ;inventar ScaleSprite inv,1,0.5 EntityParent inv,cam While Not KeyHit(1) ;;;;;;;;;;;code;;;;;;;;;;; EntityPickMode terrain,2,1 ;bewegung MoveDist# = 0.5 If EntityDistance(mesh,pivot) > 2*MoveDist Then PointEntity mesh,pivot If EntityX(mesh)<EntityX(pivot) +MoveDist/2 Or EntityX(mesh)>EntityX(pivot)-MoveDist/2 Or EntityY(mesh)<EntityY(pivot)+MoveDist/2 Or EntityY(mesh)>EntityY(pivot)-MoveDist/2 Or EntityZ(mesh)<EntityZ(pivot)+MoveDist/2 Or EntityZ(mesh)>EntityZ(pivot)-MoveDist/2 Then MoveEntity mesh,0,0,MoveDist PositionEntity mesh, EntityX(mesh), TerrainY(terrain,EntityX(mesh), EntityY(mesh),EntityZ(mesh)),EntityZ(mesh) EndIf If MouseDown(1) Then CameraPick(cam,MouseX(),MouseY()) PositionEntity pivot,PickedX(),PickedY()+TerrainY+5,PickedZ() EndIf ;collision If MeshesIntersect(mesh,item) Then PositionEntity pivot, EntityX(mesh), TerrainY(terrain,EntityX(mesh), EntityY(mesh),EntityZ(mesh)), EntityZ(mesh) ;inventar If KeyHit(23) Then i=1-i If i=1 And KeyHit(23) Then i=0 PositionEntity inv, camx+4,camy-3.25,camz+5 If i=1 Then ShowEntity inv If i=0 Then HideEntity inv ;kamerasteuerung If KeyDown(17) MoveEntity cam, 0,0,2 If KeyDown(31) MoveEntity cam, 0,0,-2 If KeyDown(19) MoveEntity cam, 0,2,0 If KeyDown(33) MoveEntity cam, 0,-2,0 If KeyDown(18) TurnEntity cam, 2,0,0 If KeyDown(16) TurnEntity cam, -2,0,0 If KeyDown(30) TurnEntity cam, 0,2,0 If KeyDown(32) TurnEntity cam, 0,-2,0 UpdateWorld RenderWorld Flip Wend |
||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
problem 2 gelöst, thx für die PN | ||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
problem 3 gelöst, ich mach das mit der kamera jetz ganz anders...
aber bei 1 und 4 bräucht ich echt ma unterstützung... |
||
![]() |
Tagirijusehemals "Tag"Betreff: :-D |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also 1. wäre es schon cooler, wenn ihr diese Frage nicht per PN
beantwotet, weil es möglicher Weise noch andere Personen mit den selben Problemen gibt. ![]() So, und nun mal zu Punkt 4: Da ich das selbe Prob habe, hab ich das ma so gemacht: ich hab das Code: [AUSKLAPPEN] If EntityDistance(entity,pentity) > 2*MoveDist Then PointEntity entity,pentity
durch das hier ersetzt Code: [AUSKLAPPEN] If EntityDistance(entity,pentity) > 2*MoveDist Then
If EntityX(pentity) > EntityX(entity) And EntityZ(pentity) > EntityZ(entity) Then turn_angle# = ATan( (EntityZ(pentity)-EntityZ(entity)) / (EntityX(pentity)-EntityX(entity)) ) If angled# < turn_angle# Then angled# = angled# + speed# If angled# > turn_angle# Then angled# = angled# - speed# RotateEntity entity,0,angled#,0 End If If EntityX(pentity) < EntityX(entity) And EntityZ(pentity) > EntityZ(entity) Then turn_angle# = ATan( (EntityX(pentity)-EntityX(entity)) / (EntityZ(pentity)-EntityZ(entity)) ) turn_angle# = turn_angle# * -1 turn_angle# = turn_angle# + 90 If angled# < turn_angle# Then angled# = angled# + speed# If angled# > turn_angle# Then angled# = angled# - speed# RotateEntity entity,0,angled#,0 End If If EntityX(pentity) < EntityX(entity) And EntityZ(pentity) < EntityZ(entity) Then turn_angle# = ATan( (EntityX(pentity)-EntityX(entity)) / (EntityZ(pentity)-EntityZ(entity)) ) turn_angle# = turn_angle# * -1 turn_angle# = turn_angle# - 90 If angled# < turn_angle# Then angled# = angled# + speed# If angled# > turn_angle# Then angled# = angled# - speed# RotateEntity entity,0,angled#,0 End If If EntityX(pentity) > EntityX(entity) And EntityZ(pentity) < EntityZ(entity) Then turn_angle# = ATan( (EntityZ(pentity)-EntityZ(entity)) / (EntityX(pentity)-EntityX(entity)) ) If angled# < turn_angle# Then angled# = angled# + speed# If angled# > turn_angle# Then angled# = angled# - speed# RotateEntity entity,0,angled#,0 End If end if nur klappt das irgendwie nicht.....bei einem Früheren Code ging es jedoch. und der sah nich so anders aus..... das mesh lässt sich jetzt nicht mehr steuern....ne, es haut eher nach hinten aufa z achse ab ![]() entdeckt ihr'n fehler, bzw. glaubt ihr, dass der code-denkansatz gut ist? Thx im voraus ![]() |
||
Tagirijus.de |
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hm... weiss wohl niemand wie das geht, bzw, will sich keiner die mühe machen das alles hier rein zu tippen ^^ | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das lässt sich so wohl eher garnicht lösen.
Da kommste um ein klein wenig mathe lernen net rum -> Vektormathe Denn da wirds relativ simpel weils dafür die Newtonschen Gesetze gibt ![]() |
||
![]() |
Tagirijusehemals "Tag"Betreff: ?? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wieso? Man kann doch eigentlich auch normale
Sinus-sätze nehmen, so wie ich's gemacht hab, oder? |
||
Tagirijus.de |
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wo gibbet tutorial für das vektormathe?
muss ich mir ma genauer anguggn... |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Im mathebuch würd ich sagen ![]() mit sinus satz geht das nicht weil es ja ne trägheitskraft wird, welche in die ehemalige bewegungsrichtung geht und durch den beschleunigungsvektor verändert wird |
||
![]() |
Tagirijusehemals "Tag" |
![]() Antworten mit Zitat ![]() |
---|---|---|
also ich würde jedoch darunter jetzt nur verstehen, dass er
"gesmooft" dahin gucken soll...der charakter, da müsste es doch mindestens mit sinus gehen, oder? SO wie mein Bsp. eben zeigt, oder? es hatte bei mir ja schonmal geklappt!!!! ![]() |
||
Tagirijus.de |
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
mathebuch is bei mir schlecht...
ich mach ausbildung in elektrotechnik, da hab ich sowas nicht :> |
||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ma kurz was anderes dazwischen....
Code: [AUSKLAPPEN] If MouseX()=EntityX(item) And MouseY()=TerrainY(terrain,EntityX(item), EntityY(item), EntityZ(item)) And MouseHit(2) Then CameraPick(cam,MouseX(),MouseY()) HideEntity item EndIf ich will, wenn ich mit der maus über nem item bin und die rechte taste drücke, das item ins inventar aufnehmen (ersma mit hide, zum "einstecken").... aber irgendwie krieg ichs net hin... ich peil das mit den achsen wohl net so ganz... wie krieg ich das hin? |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hatten wir das nicht schonma
das es nicht geht dass du = verwenden kannst weil es so gut wie garnie eine komplett identische position ergeben wird *ggg* entweder innerhalb eines radius oder du verwendet einen der pickmodes ![]() |
||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
D'oh! ![]() |
||
ZaRaK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
das mit dem item aufheben hab ich jetz so geregelt
Code: [AUSKLAPPEN] If EntityDistance(mesh,item) < 20 And MouseHit(2) Then CameraPick(cam,MouseX(),MouseY()) FreeEntity item EndIf kann ich das so lassen und weiterhin so machen, auch mit andern items, oder werd ich da evtl später probleme bei bekommen? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group