gta steuerung collis?
Übersicht

![]() |
dimasterBetreff: gta steuerung collis? |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich möchte in meinem rpg-shoter gta steuerung machen,was übrigens nicht das problem ist aber wie bekomme ich die kollisionen hin?
hier mal der Code: [AUSKLAPPEN] Graphics 640,480,32,1 SetBuffer BackBuffer() tile = LoadAnimImage("gfx/tileset2.bmp",32,32,0,47) tile1 = LoadAnimImage("gfx/tileset1.bmp",32,32,0,47) char = LoadAnimImage("gfx/p.bmp",32,32,0,1) char1 = LoadAnimImage("gfx/d1u.bmp",32,32,0,4) kugel = LoadImage("gfx/kugel.bmp") laute = LoadImage("gfx/endeker.bmp") wasser = LoadImage("gfx/wasser.bmp") px = 10 py = 7 geg_x=8 geg_y=16 geg1_x=12 geg1_y=50 move = 1 Dim schuss(20,3) Dim map(200,200) frm# = 0 frm1# = 0 Repeat Cls If MilliSecs() > tmrSparks + 100 Then tmrSparks=MilliSecs() frmSparks=(frmSparks + 1) Mod 3 End If wg# = wg#+0.2 tg# = tg#+1.8 tz# = tz#-1 If KeyHit(1) Then Exit For x = 0 To 200 For y = 0 To 200 DrawImage tile,x*32-scrollx,y*32-scrolly,map(x,y) Next Next For x = 0 To 200 For y = 0 To 200 DrawImage tile1,x*32-scrollx,y*32-scrolly,map(x,y) Next Next load() DrawImage char1,geg_x*32-scrollx,geg_y*32-scrolly If move = 1 Then x = px * 32: y = py * 32:DrawImage char,x-scrollx,y-scrolly,frm:Delay 60 If KeyDown(208) Then If map(px,py+1) < 12 Then py = py + 1 scrolly = scrolly + 32 move = 1 End If End If If KeyDown(200) Then If map(px,py-1) < 12 Then py = py - 1 scrolly = scrolly - 32 move = 1 End If End If If KeyDown(203) Then If map(px-1,py) < 12 Then px = px - 1 scrollx = scrollx - 32 move = 1 End If End If If KeyDown(205) Then If map(px+1,py) < 12 Then px = px + 1 scrollx = scrollx + 32 move = 1 End If End If If KeyHit(57) Then If map(px,py) = 2 Then lv1 = lv2 End If End If If geg_sicht=False If MilliSecs()-rndtimer>500 Then geg_dir=Rand(1,4) zap=1 rndtimer=MilliSecs() EndIf ;########### NPC-Bewegungsroutine(Zufall) ############# If geg_dir=1 Then If zap=1 Then If map(geg_x,geg_y+1)<12 Then ;<----kollsionsabfrage geg_y=geg_y+1 zap=0 EndIf EndIf EndIf If geg_dir=2 Then If zap=1 Then If map(geg_x,geg_y-1)<12 Then geg_y=geg_y-1 zap=0 EndIf EndIf EndIf If geg_dir=3 Then If zap=1 Then If map(geg_x+1,geg_y)<12 Then geg_x=geg_x+1 zap=0 EndIf EndIf EndIf If geg_dir=4 Then If zap=1 Then If map(geg_x-1,geg_y)<12 Then geg_x=geg_x-1 zap=0 EndIf EndIf EndIf EndIf For i=-3 To 3 ;hier ist die überprüfung ob du dich in sichtweite des gegners befindest For j=-3 To 3 If geg_x-j=px And geg_y-i=py Then DrawImage laute,0,84 Text 100,100,"DU WURDEST GESEHEN ..." geg_sicht=True EndIf Next Next If geg_sicht=True Then If MilliSecs()-timer>300 Then zap2=1 timer=MilliSecs() EndIf If geg_x<px Then If zap2=1 Then If map(geg_x+1,geg_y)<12 Then geg_x=geg_x+1 frm1 = 0 zap2=0 EndIf EndIf EndIf If geg_x>px Then If zap2=1 Then If map(geg_x-1,geg_y)<12 Then geg_x=geg_x-1 frm1 = 3 zap2=0 EndIf EndIf EndIf If geg_y+3<py Then If zap2=1 Then If map(geg_x,geg_y+1)<12 Then geg_y=geg_y+1 frm1 = 1 zap2=0 EndIf EndIf EndIf If geg_y-3>py Then If zap2=1 Then If map(geg_x,geg_y-1)<12 Then geg_y=geg_y-1 frm1 = 2 zap2=0 EndIf EndIf EndIf If MilliSecs()-schusszeit>400 Then ;schussfolge - wenn man höher stellt schießt der gegner langsamer fire=1 schusszeit=MilliSecs() EndIf For k=0 To 20 If geg_y=py Then If fire=1 Then schuss(nr,0)=1 schuss(nr,1)=geg_x*32 schuss(nr,2)=geg_y*32 If geg_x<px Then schuss(nr,3)=1 ;schussrichtung-rechts If geg_x>px Then schuss(nr,3)=2 ; -links fire=0 nr=nr+1 EndIf EndIf If geg_x=px Then If fire=1 Then schuss(nr,0)=1 schuss(nr,1)=geg_x*32 schuss(nr,2)=geg_y*32 If geg_y<py Then schuss(nr,3)=3 ; -unten If geg_y>py Then schuss(nr,3)=4 ; -oben fire=0 nr=nr+1 EndIf EndIf If schuss(k,3)=1 Then ;ab hier wird überprüft in welche richtung der schuss gehen soll If schuss(k,0)=1 Then DrawImage kugel,schuss(k,1)-scrollx,schuss(k,2)-scrolly schuss(k,1)=schuss(k,1)+10 EndIf EndIf If schuss(k,3)=2 Then If schuss(k,0)=1 Then DrawImage kugel,schuss(k,1)-scrollx,schuss(k,2)-scrolly schuss(k,1)=schuss(k,1)-10 EndIf EndIf If schuss(k,3)=3 Then If schuss(k,0)=1 Then DrawImage kugel,schuss(k,1)-scrollx,schuss(k,2)-scrolly schuss(k,2)=schuss(k,2)+10 EndIf EndIf If schuss(k,3)=4 Then If schuss(k,0)=1 Then DrawImage kugel,schuss(k,1)-scrollx,schuss(k,2)-scrolly schuss(k,2)=schuss(k,2)-10 EndIf EndIf If nr=20 Then nr=1 Next EndIf Flip Forever 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 |
||
x.Force |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
sag ma du schmeisst uns immer code hin, sollen wir/die dir gleich das ganze Spiel machen? und mit kommentaren sparst du auch. Gib dir doch mal ein bisschen mühe und lass nicht das ganze game von anderen machen.
das wollte ich nur loswerden Cu Basti |
||
AMD Athlon XP 2000+ | 1024mb DDR-Ram | Asus Radeon 9600XT | BENQ FP757 17°Zoll TFT Was kümmert mich mein Geschwätz von gestern? (Konrad Adenauer) -.- |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group