memory acsess violation

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

da_poller

Betreff: memory acsess violation

BeitragFr, Mai 23, 2008 15:28
Antworten mit Zitat
Benutzer-Profile anzeigen
so nachdem ich gestern abend ncoh ein bischen meit meinem "testshooter" gespielt habe bin ich beim laden des levels(aus einer txt datei) auf ein problem gestoßen..

irgendwie kann der stream nciht erstellt werden..(mit runtimeerror getestet)

zunächst möchte ich ncoh sagen ja der code ist nciht hübsch programiert da ich im moment nur am rumbasteln bin..

nun hier mal der Code: [AUSKLAPPEN]
Global playerx=0
Global playery=0
Global playerz=0
Global a
Global speed#=0.5
MoveMouse(400,300)
Global xpos
Global ypos
Global levelname$
Dim levelformat$(1,1)
Global levelgroesse
Global levelposx
Global levelposy

levelname$=Input("Levelname: ")

Global b$

levelladen(levelname$)
Const screenx=800
Const screeny=600

Graphics screenx,screeny,16
levelgenerieren()
WaitKey()
EndGraphics


Graphics3D screenx,screeny,16,1
SetBuffer BackBuffer()


Global kamera=CreateCamera()
PositionEntity kamera,playerx,playery+20,playerz-120
Global mann=LoadMesh("warrior.3ds")
MoveEntity mann,playerx,playery,playerz

;hauptschleife----------------------------------------------------
While Not KeyHit(1)

If KeyHit(78) Then speed#=speed#+0.05
If KeyHit(74) Then speed#=speed#-0.05
mausbewegung()
;ende der hauptschleife
UpdateWorld
RenderWorld
hud()
Flip
Wend
ClearWorld
End

Function mausbewegung();mausbewegung
   ypos=ypos+MouseYSpeed()*speed#
   xpos=xpos-MouseXSpeed()*speed#
   If ypos>90 Then ypos=90
   If ypos<-90 Then ypos=-90
   RotateEntity kamera,ypos,xpos,0
   MoveMouse(400,300)
   MouseXSpeed()
   MouseYSpeed()
End Function

Function hud() ;alles 2d nach dem rendern
   Text 10,10,"mausspeed: "+speed#
   Text 10,20,"counter: "+a :a=a+1
   Text 10,30,"xpos: "+xpos
   Text 10,40,"ypos: "+ypos
End Function

Function levelladen(levelname)
   stream=ReadFile(levelname+".txt")
   If stream=0 Then RuntimeError("stream konnte nicht erstellt werden!")
   levelgroesse=ReadString(stream)
   Dim levelformat$(levelgroesse+1,levelgroesse+1)
   For levelposy=1 To levelgroesse
      For levelposx=1 To levelgroesse
         levelformat$(levelposx,levelposy)=ReadByte(stream)
      Next
   Next
End Function

Function levelgenerieren()
   For levelposy=1 To levelgroesse
      For levelposx=1 To levelgroesse
         b$=b$+levelformat$(levelposy,levelposx)
      Next
      Print b$
   Next
End Function



nunja bin selber noch am suchen aber seit ner guten stunde häng ich hier fest..

noch ne kleine frage: ich verändere unten in der funktion levelladen die dim größe ist das so richtig gemacht oder gibt es eine elegantere lösung dafür?

ps: wie immer... keine lösung nur nen tipp..

Caesium

BeitragFr, Mai 23, 2008 15:53
Antworten mit Zitat
Benutzer-Profile anzeigen
nur mal eben überflogen: der funktionsparameter von levelladen() ist kein string.

gruß,
caesium
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist da schon schwieriger. Smile
 

da_poller

BeitragFr, Mai 23, 2008 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Caesium hat Folgendes geschrieben:
nur mal eben überflogen: der funktionsparameter von levelladen() ist kein string.

gruß,
caesium


stimmt..danke Smile

jetzt geht das nur leider zeigt er das level nciht an..(im ersten graphic mode nur printen der levelstruktur..)

nunja darum kümmer ich mcih später dann.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group