Spieler drehen :-(
Übersicht

![]() |
LakortaBetreff: Spieler drehen :-( |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich wieß, dieses Thema wurde schon öfters gemacht, und ich hab mir das auch schon über Forensuche öfters angeguckt, verstehe das aber nicht ganz. Ich bin dabei ein 2D SPiel mit Vogelperspektive zu machen, und der Spieler soll immer zur Maus hingucken. Diesen Code hab ich jetzt zusammengestellt, aber der funktioniert immer noch nicht:
Code: [AUSKLAPPEN] ;_Grafikeinstellungen_ Graphics 800,600,16,1 SetBuffer BackBuffer() timer=CreateTimer(60) ;_Spielereinstellungen_ Dim player(359) player(0)=LoadImage("Images\player.bmp") MidHandle player(0) TFormFilter 0 For angle=1 To 359 player(angle)=CopyImage(player(0)) RotateImage player(angle),angle Next player_x=400 player_y=300 ;_Tilemap_ ;tilemap=LoadAnimImage("Images\tilemap.bmp",50,50,0,3) ;LEGENDE: ;0=Gras ;1=Straße ;2=Mauer (Backstein) ;Dim map(20,20) ;Data 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 ;Data 0,0,0,0,0,0,1,0,0,0,2,2,0,0,0,0 ;Data 0,0,0,0,0,0,1,0,0,0,2,2,0,0,0,0 ;Data 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0 ;Data 0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,1 ;Data 1,1,1,1,1,1,1,1,1,0,0,0,0,1,0,0 ;Data 0,0,0,0,1,0,0,0,1,0,0,0,0,1,0,0 ;Data 0,0,0,0,1,0,0,0,1,1,1,1,1,1,0,0 ;Data 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 ;Data 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 ;Data 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 ;Data 0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0 ;For y=0 To 11 ;For x=0 To 15 ;Read map(x,y) ;Next ;Next ;_!_Hauptschleife_!_ While Not KeyHit(1) Cls ;_Tilemap-laden_ ;For y=0 To 11 ;For x=0 To 15 ;DrawImage tilemap,x*50,y*50,map(x,y) ;Next ;Next ;_Spielereinstellungen_ If KeyDown(17) player_y=player_y-1 EndIf If KeyDown(30) player_x=player_x-1 EndIf If KeyDown(31) player_y=player_y+1 EndIf If KeyDown(32) player_x=player_x+1 EndIf DrawImage player(angle),player_x,player_y ;_Ende_ WaitTimer timer Flip 0 Wend End Die Fehlermeldung heißt: Array-Index out of Bounds oder so ähnlich. DIe Tilemap hab ich auch erstmal weggelassen, die funktioniert aber. Ich hoffe ihr könnt mir helfen, schonmal danke im Vorraus Mfg: Lakorta |
||
--- |
![]() |
mpmxyz |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nach dieser Schleife hat "angle" den Wert 360:
BlitzBasic: [AUSKLAPPEN] For angle=1 To 359 Später nutzt du diesen Wert bei einem Arrayzugriff. BlitzBasic: [AUSKLAPPEN] DrawImage player(angle),player_x,player_y Da das Array aber keinen Eintrag 360 hat, kommt an dieser Stelle der Fehler. Lösung: Sorge dafür, dass "angle" den richtigen Wert hat. mfG mpmxyz |
||
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer |
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
1.) Erst einmal ist dein Code total schlecht zu lesen, da nicht eingerückt. Gewöhne dir das am besten gleich an.
2.) Ansonsten darf angle nicht unter 0 und über 359 sein. Die Variable angle hat nach verlassen der Schleife den Wert 360. 3.) Mit dieser Methode ballerst du dir unnötig den Speicher voll. Und lange Ladezeiten hast du auch noch dabei. Verwende dazu lieber max. 90 Bilder mit 4° Winkeländerung, oder verwende gleich eine Grafiklibrary die das kann (siehe meine Signatur, falls du Blitz3D hast). |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
![]() |
Lakorta |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, werde mich noch mal an den Code dransetzen. Danke für die Antworten ![]() |
||
--- |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group