Gloomy Nights and Living Dead

Spiele, Demos, Grafikzeug und anderes unterhaltendes.
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Ich hab auch 'ne TNT2... und bei mir läufts ja ;) also glaub ich kaum daß es ander Grafikkarte liegt... muß was anderes sein. Welches Win hast Du eigentlich?
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Hm, bis auf die Grafikkarte hat sich mein System nicht geändert ... also alles andere steht im Profil ...

Win XP Home Editon; AMD Athlon XP 2,2+; Riva TNT2 32 MB; 768 MB DDR; HDD Maxtor 120 GB
<)

Hm, wenns nicht an der Grafikkarte liegt, woran dann? O_o ...
naja, vielleicht mag mein system auch einfach nur solch eine alte graka nicht ... oder öhm ... *nixweiss* :|

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
Criss
Beiträge: 126
Registriert: 21.09.2004 18:45
Kontaktdaten:

Beitrag von Criss »

Gibt es da auch einen Sourcecode! Wäre genial um mal so eine Steuerung zu lernen! Wie wird sowas geproggt?

Ansonsten echt ein cooles Game! Hut ab!
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Naja den Sourcecode wollen wir natürlich nicht veröffentlichen, aber die Steuerung an sich ist eigentlich nicht allzu kompliziert... kannst ja sagen wo es hapert ;)
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Beitrag von PMV »

Also die gelöschten Posts sind hier nach zu lesen.

Ich werd hier nur mal die letzten zwei Posts noch mal Posten :D
PMV hat geschrieben:
DarkDragon hat geschrieben:Hast du die neuesten Updates? :wink: braucht man.
ja öhm ... ne -.- ... vor ner zeit hat ich auch die idee ... aber hab ich bis grad eben gemeint, das TNT2 von neueren Treiberversionen nicht mehr unterstützt werden. Naja nach dem du das angesprochen hast, ab ich mich noch ma auf die nvidia seite gewagt und den ganz neuen Treiber runter geladen ... TNT2 und sogar TNT sind laut Hersteller mit der Treiberversion kompatibel ... aber Hersteller <> Software /:->

Heißt: Wenn ich versuche, die neue offizielle Treiberversion 71.89 zu installieren, sagt mir das Installprogramm, das meine Hardware nicht mit dem gefunden Treiber kompatibel ist und bricht die Installation ab.

ZeHa, welche Version hast du bei deiner TNT2 drauf? Öhm moment ... ich hab jetzt 61.77 drauf ... gibs dazwischen noch offizielle Treiberversionen? ... naja also ne kurze hoffnung hat ich ja jetzt doch, das es am Treiber liegt, aber öhm ... die hoffnung verfliegt grad wieder -.- aber danke für den hinweiß DarkDragon :D

MFG PMV
ZeHa hat geschrieben:Also ich als stolzer Besitzer eines ALDI-PCs hab einfach die Version drauf, die auch auf der beiliegenden Treiber-CD mit drauf ist :D also auf jeden Fall nix aktualisiertes...
Hm, eine alte ... weisst du denn welche? vielleicht ist es ja die rätzels lösung, nen alten Treiber drauf zu machen ... den Treiber, den ich für die TNT2 hab, dürfte etwas zu alt sein, als das ich den sinnvoll nutzten könnte, mal davon abgesehen, das die CD nicht mehr grad die neuste ist ... war aber scho so, wo ich die bekommen hab -.-

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Okay dann schonmal ein Hinweis an Criss: Bei den gelöschten Postings ist eins für Dich dabei :)

Und ein Hinweis für alle: Wir haben das Spiel nochmal geupdatet, das Menü ist jetzt nicht mehr so hakelig... viel Spaß!
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Multiplayer über internet wäre genial :D. Bitte setzt das Feature um :allright:.
Bild
Benutzeravatar
Criss
Beiträge: 126
Registriert: 21.09.2004 18:45
Kontaktdaten:

Beitrag von Criss »

@ZeHa

Ok besten Dank, habe es versucht, blicke aber nicht ganz durch!

Hier mal der Code:

Code: Alles auswählen

Dim MapDaten(10, 10)


Global PlayerX.l, PlayerY.l, PX.f, PY.f


PlayerX = 96
PlayerY = 48


InitSprite()
InitKeyboard()


Procedure Leveleinlesen()
  For ArrayY = 1 To 10
    For ArrayX = 1 To 10
      Read MapDaten(ArrayY, ArrayX)
    Next
  Next
EndProcedure

    
Procedure Levelausgeben()
  ClearScreen(0, 0, 0)
  StartDrawing(ScreenOutput())
  For ArrayY = 1 To 10
    For ArrayX = 1 To 10
      If MapDaten(ArrayY, ArrayX) = 1
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(64, 0, 0))
        DrawingMode(4)
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(112, 0, 0))
        DrawingMode(0)
      Else
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(128, 128, 128))
        DrawingMode(4)
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(160, 160, 160))
        DrawingMode(0)
      EndIf
    Next
  Next
  ; Spielfigur ausgeben
  Box(PlayerX+1, PlayerY+1, 14, 14, RGB(64, 255, 64))
  StopDrawing()
EndProcedure


Leveleinlesen()


If OpenWindow(0, 0, 0, 192, 192, 0, "")
  If OpenWindowedScreen(WindowID(), 0, 0, 192, 192, 0, 0, 0)
  EndIf
EndIf


Levelausgeben()


Repeat
  Delay(1)
  FlipBuffers()
  ExamineKeyboard()
  
  PY = PlayerY / 16
  
  
  
  If KeyboardPushed(#PB_Key_Up)
    If PlayerY / 16 = Int(PlayerY / 16) And MapDaten(PlayerY / 16, PlayerX / 16) = 0
      PlayerY + 1
    Else
      PlayerY - 1
    EndIf
  EndIf
  
  
  If KeyboardPushed(#PB_Key_Down)
    If PlayerY / 16 = Int(PlayerY / 16) And MapDaten(PlayerY / 16 + 1, PlayerX / 16) = 0
      PlayerY - 1
    Else
      PlayerY + 1
    EndIf
  EndIf
  
  
  If KeyboardPushed(#PB_Key_Left)
    If PlayerX / 16 = Int(PlayerX / 16) And MapDaten(PlayerY / 16, PlayerX / 16) = 0
      PlayerX + 1
    Else
      PlayerX - 1
    EndIf
  EndIf
  
  
  If KeyboardPushed(#PB_Key_Right)
    If PlayerX / 16 = Int(PlayerX / 16) And MapDaten(PlayerY / 16, PlayerX / 16 + 1) = 0
      PlayerX - 1
    Else
      PlayerX + 1
    EndIf
  EndIf
  
  
  Levelausgeben()
  
  
  ; FPS -------------------------------------
  If fpsstart = 0
    fpsstart = ElapsedMilliseconds() 
  EndIf
  fpszaehler + 1
  If ElapsedMilliseconds() - fpsstart >= 1000
    fps = fpszaehler
    fpszaehler = 0
    fpsstart = ElapsedMilliseconds()
  EndIf
  StartDrawing(ScreenOutput())
  Locate(0, 0)
  FrontColor(255, 255, 255)
  DrawingMode(3)
  DrawText("    FPS:" + Str(fps) + "  Y:" + Str(PlayerY / 16) + "," + Mid(StrF(PY), 1, 4) + "  x:" + Str(PlayerX / 16))
  StopDrawing()
  ; -----------------------------------------
  
  
  
  
Until KeyboardPushed(#PB_Key_Escape)
End






DataSection
Data.l 0,0,0,0,0,0,0,0,0,0
Data.l 0,1,1,0,1,1,1,1,1,0
Data.l 0,0,1,0,1,1,1,0,1,0
Data.l 0,0,1,1,1,1,1,0,1,0
Data.l 0,0,0,0,1,0,0,0,1,0
Data.l 0,0,0,0,1,1,1,1,1,0
Data.l 0,1,1,0,0,0,1,1,1,0
Data.l 0,1,1,1,1,1,1,1,1,0
Data.l 0,1,1,0,0,0,1,1,1,0
Data.l 0,0,0,0,0,0,0,0,0,0
EndDataSection
Benutzeravatar
ZeHa
Beiträge: 4760
Registriert: 15.09.2004 23:57
Wohnort: Friedrichshafen
Kontaktdaten:

Beitrag von ZeHa »

Ja, es ist in der Tat immer eine Fummelei, aber ich hab's jetzt mal ein wenig korrigiert:

Code: Alles auswählen

Dim MapDaten(10, 10) 
#hoch = 1
#runter = 2
#links = 3
#rechts = 4

Global PlayerX.l, PlayerY.l, PX.f, PY.f 


PlayerX = 96 
PlayerY = 48 


InitSprite() 
InitKeyboard() 


Procedure Leveleinlesen() 
  For ArrayY = 1 To 10 
    For ArrayX = 1 To 10 
      Read MapDaten(ArrayY, ArrayX) 
    Next 
  Next 
EndProcedure 

    
Procedure Levelausgeben() 
  ClearScreen(0, 0, 0) 
  StartDrawing(ScreenOutput()) 
  For ArrayY = 1 To 10 
    For ArrayX = 1 To 10 
      If MapDaten(ArrayY, ArrayX) = 1 
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(64, 0, 0)) 
        DrawingMode(4) 
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(112, 0, 0)) 
        DrawingMode(0) 
      Else 
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(128, 128, 128)) 
        DrawingMode(4) 
        Box(ArrayX * 16, ArrayY * 16, 16, 16, RGB(160, 160, 160)) 
        DrawingMode(0) 
      EndIf 
    Next 
  Next 
  ; Spielfigur ausgeben 
  Box(PlayerX+1, PlayerY+1, 14, 14, RGB(64, 255, 64)) 
  StopDrawing() 
EndProcedure 


Leveleinlesen() 


If OpenWindow(0, 0, 0, 192, 192, 0, "jetzt funktionierts :)") 
  If OpenWindowedScreen(WindowID(), 0, 0, 192, 192, 0, 0, 0) 
  EndIf 
EndIf 


Levelausgeben() 


Procedure ExamineControls()
  ExamineKeyboard()
  
  If KeyboardPushed(#pb_key_up)
   Richtung=#hoch
  EndIf
  If KeyboardPushed(#pb_key_down)
    Richtung=#runter
  EndIf
  If KeyboardPushed(#pb_key_left)
    Richtung=#links
  EndIf
  If KeyboardPushed(#pb_key_right)
    Richtung=#rechts
  EndIf
  
  ProcedureReturn Richtung
EndProcedure


Repeat 
  Delay(1) 
  FlipBuffers()
  
  Richtung = ExamineControls()
  
  PY = PlayerY / 16 
  schlecht1=0
  schlecht2=0
  
  nx1 = Int(PlayerX / 16)
  nx2 = Int((PlayerX + 15) / 16)
  ny1 = Int(PlayerY / 16)
  ny2 = Int((PlayerY + 15) / 16)
  
  Select Richtung
    Case #hoch
      If MapDaten(ny2 - 1, nx1)<>1
        schlecht1=1
      EndIf
      If MapDaten(ny2 - 1, nx2)<>1
        schlecht2=1
      EndIf
      
      If schlecht1=1 And schlecht2=0
        Richtung=#rechts
      EndIf
      If schlecht1=0 And schlecht2=1
        Richtung=#links
      EndIf
      If schlecht1=1 And schlecht2=1
        Richtung=0
      EndIf
  
  
    Case #runter
      If MapDaten(ny1 + 1, nx1)<>1
        schlecht1=1
      EndIf
      If MapDaten(ny1 + 1, nx2)<>1
        schlecht2=1
      EndIf
      
      If schlecht1=1 And schlecht2=0
        Richtung=#rechts
      EndIf
      If schlecht1=0 And schlecht2=1
        Richtung=#links
      EndIf
      If schlecht1=1 And schlecht2=1
        Richtung=0
      EndIf

  
    Case #links
      If MapDaten(ny1, nx2 - 1)<>1
        schlecht1=1
      EndIf
      If MapDaten(ny2, nx2 - 1)<>1
        schlecht2=1
      EndIf
      
      If schlecht1=1 And schlecht2=0
        Richtung=#runter
      EndIf
      If schlecht1=0 And schlecht2=1
        Richtung=#hoch
      EndIf
      If schlecht1=1 And schlecht2=1
        Richtung=0
      EndIf
  
  
    Case #rechts
      If MapDaten(ny1, nx1 + 1)<>1
        schlecht1=1
      EndIf
      If MapDaten(ny2, nx1 + 1)<>1
        schlecht2=1
      EndIf
      
      If schlecht1=1 And schlecht2=0
        Richtung=#runter
      EndIf
      If schlecht1=0 And schlecht2=1
        Richtung=#hoch
      EndIf
      If schlecht1=1 And schlecht2=1
        Richtung=0
      EndIf
      
  EndSelect
  
  
  Select Richtung
    Case #hoch: PlayerY - 1
    Case #runter: PlayerY + 1
    Case #links: PlayerX - 1
    Case #rechts: PlayerX + 1
  EndSelect
    
  
  Levelausgeben() 
  
  
  ; FPS ------------------------------------- 
  If fpsstart = 0 
    fpsstart = ElapsedMilliseconds() 
  EndIf 
  fpszaehler + 1 
  If ElapsedMilliseconds() - fpsstart >= 1000 
    fps = fpszaehler 
    fpszaehler = 0 
    fpsstart = ElapsedMilliseconds() 
  EndIf 
  StartDrawing(ScreenOutput()) 
  Locate(0, 0) 
  FrontColor(255, 255, 255) 
  DrawingMode(3) 
  DrawText("    FPS:" + Str(fps) + "  Y:" + Str(PlayerY / 16) + "," + Mid(StrF(PY), 1, 4) + "  x:" + Str(PlayerX / 16)) 
  StopDrawing() 
  ; ----------------------------------------- 
  
  
  
  
Until KeyboardPushed(#PB_Key_Escape) 
End 






DataSection 
Data.l 0,0,0,0,0,0,0,0,0,0 
Data.l 0,1,1,0,1,1,1,1,1,0 
Data.l 0,0,1,0,1,1,1,0,1,0 
Data.l 0,0,1,1,1,1,1,0,1,0 
Data.l 0,0,0,0,1,0,0,0,1,0 
Data.l 0,0,0,0,1,1,1,1,1,0 
Data.l 0,1,1,0,0,0,1,1,1,0 
Data.l 0,1,1,1,1,1,1,1,1,0 
Data.l 0,1,1,0,0,0,1,1,1,0 
Data.l 0,0,0,0,0,0,0,0,0,0 
EndDataSection
So geht es wunderbar. Jetzt wirst Du auch merken, daß Deine Figur um die Ecken einen "Bogen" macht (so wie bei Pacman), damit Du nicht direkt vor dem Loch stehen mußt, um reinzugehen.
Dies wird mit den Variablen schlecht1 und schlecht2 gemacht. Also wenn Du nun genau auf zwei Blöcke zuläufst, und der linke ist belegt, dann ist der "schlecht". Wenn der rechte frei ist, wird die Richtung umgelenkt auf "rechts", und da Du ja auf der Taste draufbleibst, geht die Figur automatisch in die gewünschte Richtung, sobald sie am Hindernis vorbei ist...

Viel Spaß damit :)
Benutzeravatar
Criss
Beiträge: 126
Registriert: 21.09.2004 18:45
Kontaktdaten:

Beitrag von Criss »

@ZeHa

Wow, das ist ja absolute Spitzenklasse!!!

Danke Dir vielmals!!!

Echt genial!!!

:allright: :D
Antworten