2D RPG Engine Kollisionsabfrage

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

DDPhoenix

Betreff: 2D RPG Engine Kollisionsabfrage

BeitragSo, Jan 04, 2004 18:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,
Ich bin erst neu in Blitzbasic und hab mir jetz mal das kostenlose BlitzBasic2d runtergeladen und ein wenig gebastelt ^^
Also nun hab ich ein Problem da ich ein RPG machen will hab ich mal ne vorversion(mit testgrafiken) von ner kleinen 2D RPG Engine gebaut gut nun klappt die kollisionsabfrage nicht so ganz also sie klappt zwar aber wenn man sich vorstellt über einem is ein blockendes teil und sobald das bild vom char nur 1 pixel links übers tile hinaus ist blockt es nichtmehr. Ich denke es liegt daran das ich 32*32 Pixel tiles genommen hab und die Player x und y Position in pixel angegeben ist weil man sich flüssig bewegen kann also hab ich die player x und player y Position für die kollissionsabfrage durhc 32 geteilt. Daran wird es liegen aber ich hab keine Idee wie man es anders machen könnte
Hier der Code:Code: [AUSKLAPPEN]

Graphics 640,480,16,1
SetBuffer BackBuffer()
Global blocktiles$
blocktiles="3"
Dim map(20,20)
Const oben   =200
Const unten  =208
Const links  =203
Const rechts =205
tiles=LoadAnimImage("tileset.bmp",32,32,0,5)
mapfile=ReadFile("new1.nw")
char=LoadImage("char.bmp")
Global player_xpos
Global player_ypos
For y=0 To 20
For x=0 To 20
map(x,y)=ReadLine(mapfile)
Next
Next
CloseFile mapfile

Repeat
Cls
If KeyDown(oben)
moveup()
End If
If KeyDown(unten)
movedown()
End If
If KeyDown(links)
moveleft()
End If
If KeyDown(rechts)
moveright()
End If
For y=0 To 20
For x=0 To 20
DrawImage(tiles,x*32,y*32,map(x,y))
Next
Next
DrawImage(char,player_xpos,player_ypos)
Flip
Until KeyDown(1)
FreeImage tiles
FreeImage char
End


Function moveup()
If player_ypos>0 Then
If Instr(blocktiles$,map(player_xpos/32,player_ypos/32),1)<1 Then
player_ypos=player_ypos-2
End If
End If
End Function

Function movedown()
If player_ypos<(32*20) Then
player_ypos=player_ypos+2
End If
End Function

Function moveleft()
If player_xpos>0 Then
player_xpos=player_xpos-2
End If
End Function

Function moveright()
If player_xpos<(32*20) Then
player_xpos=player_xpos+2
End If
End Function

Ahya und nochwas da ich noch Anfaänger bin und ich was in meinem Code wirklich ziemlich umständlich gemacht hab und das einfacher und übersichtlicher und vielleicht besser geht sagt mirs bitte Smile

So nun noch die Grafiken:
Tileset:http://de.geocities.com/tobibygraal/tileset.bmp
Char:http://de.geocities.com/tobibygraal/char.bmp

Kryan

BeitragSo, Jan 04, 2004 19:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Das hat jetzt zwar nichts mit dem Code zu tun, aber wo hast du denn BlitzBasic2D kostenlos her??? Oder ist es nur die Demo???
 

DDPhoenix

BeitragSo, Jan 04, 2004 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich meintedie Demo weil die ya eigentlich fast keine einschränkungen hat

Kryan

BeitragSo, Jan 04, 2004 20:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Doch: Man kann keine EXE kompilieren!!
Außerdem kann ich mir die Graphiken nicht ansehen!!
Da steht immer, nichts gefunden!!!

Hip Teen

BeitragSo, Jan 04, 2004 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Jetzt geht es, vorher hatte geocities anscheinend ein Problem

Kryan

BeitragSo, Jan 04, 2004 20:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Bei mir kommt folgendes:

Code: [AUSKLAPPEN]

  Yahoo! 

--------------------------------------------------------------------------------
 

Diese Seite ist nicht verfügbar. 

Leider kann diese Seite momentan nicht angezeigt werden. Versuchen Sie es bitte später noch einmal oder suchen Sie nach weiteren GeoCities-Seiten, die Sie interessieren. 
 
Einige hilfreiche Links.....
Yahoo! GeoCities - unser Homepage-Veröffentlichungscenter
Yahoo! - der Ausgangspunkt für ganz Yahoo! Yahoo! GeoCities durchsuchen
   
 




--------------------------------------------------------------------------------
Copyright © 2000 Yahoo! Inc. Alle Rechte vorbehalten.
 

ViciouS

BeitragSo, Jan 04, 2004 20:54
Antworten mit Zitat
Benutzer-Profile anzeigen
rechte mousetaste speichern unter
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing

ViciouS

BeitragSo, Jan 04, 2004 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
aso

kriegen wir noch die map datei??
das macht gleub ich keiner gerne selbst.. von hand
Skaten ist scheisse...
Bilanz: 3 Knochenbrüche in 4 Jahren...
und es werden mehr Laughing
 

DDPhoenix

BeitragSo, Jan 04, 2004 21:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ehm ya die Map Datei ^^ alsoo mal gucken*such* Ach daaa Very Happy
ich hab ne .txt draus gemacht weil man bei geocities da sonst nich uppen kann
hier der link:
http://de.geocities.com/tobibygraal/new1.txt
und ya es leigt daran das die position des spielers durch 32 geteilt wird und so das nur bei der kollision das feld links neben dem blockendem feld abgefragt wird :-/ wie könnt man das anders machen achya ich hab kollision nur gemacht wenn man von unten gegen das blaue feld läuft
 

DDPhoenix

BeitragMo, Jan 05, 2004 20:38
Antworten mit Zitat
Benutzer-Profile anzeigen
So habs schon selbst gelöst einfach alle blocktiles in nem array gespeichert und abgefragt ob die viecher mitn char collidieren

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group