maus in 3d
Übersicht

[SHM]StArMaStErBetreff: maus in 3d |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
wenn ich mit drawimage in 3d ein bild mit den mauskoordinaten zeichne dann kann ich die maus nur in einem bestimmten bereich bewegen. woran liegt das? ich habe hier ma den code(sry das ich den ganzen code poste aber weiss nich wo der fehler is ![]() Code: [AUSKLAPPEN] Graphics3D 640,480,16,1 SetBuffer BackBuffer() Dim map(200,200) tile = LoadAnimImage("gfx/tileset2.bmp",32,32,0,47) load() px=6 ;x-koord des players für kollision py=6 ;y-koord des players für kollision ppx=6*32 ;x-koord des players ppy=6*32 ;y-koord des players cam=CreateCamera() CameraClsMode cam,0,1 CameraRange cam,1,700 PositionEntity cam,3,3,-5 sprite=LoadSprite("gfx/p.bmp") ScaleSprite sprite,32,32 PositionEntity sprite,((ppx-scrollx)*2)-640+32,-((ppy-scrolly)*2)+480-32,640 maus = LoadSprite("gfx/maus.bmp") ScaleSprite maus,0.1,0.1 While Not KeyHit(1) For y=0 To 200 For x=0 To 200 DrawImage tile,x*32-scrollx,y*32-scrolly,map(x,y) Next Next mx# = MouseX() my# = MouseY() winkel = ATan2(mx-(ppx-scrollx)*100,(ppy-scrolly)*100-my) PositionEntity maus,mx/100,(200-my)/100,5 RotateSprite sprite,winkel*-1 PositionEntity sprite,((ppx-scrollx)*2)-640+32,-((ppy-scrolly)*2)+480-32,640 If zap>0 Then ; wenn taste gedrückt wurde If move=1 ; wenn die cursor-taste oben gedrückt wurde scrolly=scrolly-2 ;dann scrolle die map nach oben ppy=ppy-2 ;dann scrolle player nach oben q=q+1 ;q=q+1 If q=16 Then ;wenn q=16 zap=0 ;dann ist bewegung zu ende q=0 ;q=0 py=py-1 ;kollisionsdaten des players werden aktualisiert EndIf EndIf If move=2 scrolly=scrolly+2 ppy=ppy+2 q=q+1 If q=16 Then zap=0 q=0 py=py+1 EndIf EndIf If move=3 scrollx=scrollx-2 ppx=ppx-2 q=q+1 If q=16 Then zap=0 q=0 px=px-1 EndIf EndIf If move=4 scrollx=scrollx+2 ppx=ppx+2 q=q+1 If q=16 Then zap=0 q=0 px=px+1 EndIf EndIf EndIf If KeyDown(200) Then If map(px,py-1)<1 Then If zap<1 Then move=1 ;move=1 - oben zap=1 ;move=2 - unten frame=2 ;move=3 - links EndIf ;move=4 - rechts EndIf EndIf If KeyDown(208) Then If map(px,py+1)<1 Then If zap<1 Then move=2 zap=1 frame=3 EndIf EndIf EndIf If KeyDown(203) Then If map(px-1,py)<1 Then If zap<1 Then move=3 zap=1 frame=1 EndIf EndIf EndIf If KeyDown(205) Then If map(px+1,py)<1 Then If zap<1 Then move=4 zap=1 frame=0 EndIf EndIf EndIf RenderWorld Flip Wend Function load() karte$ = ReadFile("map1.map") For x = 0 To 200 For y = 0 To 200 tile = ReadLine(karte$) map(x,y) = ReadInt(karte$) Next Next CloseFile(karte$) End Function danke im voraus! ![]() |
||
BB-coden was das Zeug hällt!!!! |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich würd behaupten wegen der Positionierung
Das gehört übrigens net in 2D sondern 3D ... |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ähm , müsste das nicht in 3D rein?
Zudem Problem:Eigentlich kann ich da per Speed-Link-Blick nichts erkennen.Vielleicht liegt es ja auch an B3D an sich , wer weiß. |
||
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
kommt helft schon | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nö B3D kann nix dafür dass er die Mausentity zu weit weg von der Cam positioniert.
Die mauskoordinaten also mousex und mousey können nur 0,0 - Screen Width, Screen Height sein musst also die Z coord der maus reduzieren in bezug auf die cam |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wie würdet ihrs machen? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
maus = loadsprite("gfx/maus.bmp", cam )
positionentity maus, 0, 0, 4.0/3.0 und dann in der loop jeweils nur noch die x und die y position setzen und für z jeweils 0 da sich der automatisch auf der richtigen position vor der Cam befindet. beim wert musst du ausprobieren, ich brauche für meine zwecke jeweils meistens 1.3333 da das dem streckungsverhältnis von breite : höhe von bildschirmen entspricht |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
danke | ||
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
aba geht net | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Erm
Sorry aber ein bisschen rumprobieren kannste doch wohl auch selbst noch oder? Die positionierung eines 3D Entity als maus is nunma probieren. nicht mehr und nicht weniger. und sonst nimmste das bild und zeichnest es direkt mit drawimage auf den Bildschirm |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
mann oh mann da ist immer so ein viereck in dem die maus kreist aber der player bewegt bewegt sich nicht
![]() ![]() ![]() ![]() ![]() ![]() |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
![]() ![]() sorry funktionierenden Code werde ich definitiv keinen liefern, denn dann weisst du genau so wenig warum es geht und stösst das nächste ma wieder über s'gleiche Problem |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Markus2 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Deine Camera war nicht mittig und die Mauspos. von der Mitte aus
scalieren und dran denken das +y oben ist ![]() Code: [AUSKLAPPEN] Graphics3D 640,480,16,2 SetBuffer BackBuffer() cam=CreateCamera() PositionEntity cam,0,0,-5 CameraClsColor cam,128,128,128 maus =CreateSprite() ScaleSprite maus,0.2,0.2 While Not KeyHit(1) mx# = MouseX() my# = MouseY() PositionEntity maus,(mx-320)/30,(240-my)/30,5 RenderWorld Color 255,255,0 Text 10,10,"Maus X:"+mx+" Maus Y:"+my Flip Wend End |
||
![]() |
dimaster |
![]() Antworten mit Zitat ![]() |
---|---|---|
wir haben s müsst nicht mehr posten | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group