Schiessen aus der Vogelperspektive - Probleme mit Semantik
Übersicht

CrossbowBetreff: Schiessen aus der Vogelperspektive - Probleme mit Semantik |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Wie bei fast jedem Anfänger ist auch fast jeder Code für den Anfänger den der Anfänger geschrieben hat ein Rätsel da der Anfänger noch ein Anfänger ist ![]() Ich hoffe ihr könnt mir da weiterhelfen. Vielen Dank schon mal im Voraus. MfG Sämi |
||
![]() |
The_Nici |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, ich habs mal mit Types gelöst. Wenn du die noch nicht kannst, dann wirds höchste Zeit.
Code: [AUSKLAPPEN] Type shot Field x Field y Field w End Type Graphics 800,600,32,2 SetBuffer BackBuffer() Global kw=0 Global x#=400, y#=300 While Not KeyHit(1) If KeyHit(57) s.shot=New shot ;Neuen Schuss-Type s\x=x ;X übernehmen s\y=y ;Y übernehmen s\w=kw ;Winkel übernehmen EndIf Text 10,10,"Winkel: "+w Oval x#-5,y#-5,10,10,1 Line x#,y#,x#+20*Cos(kw),y#+20*Sin(kw) If KeyDown(205) Then kw=kw+1 If KeyDown(203) Then kw=kw-1 If KeyDown(200) Then x# = x# + Cos(kw) y# = y# + Sin(kw) EndIf If KeyDown(208) Then x# = x# - Cos(kw) y# = y# - Sin(kw) EndIf For s.shot=Each shot ;Jeden Schuss abfragen s\x=s\x+Cos(s\w)*5 ;Bewegen s\y=s\y+Sin(s\w)*5 ;Bewegen Oval s\x-1,s\y-1,2,2,1 ;Zeichnen Next Flip Cls Wend End |
||
Crossbow |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi
Thx. Entstanden aber gleich mal weitere Probleme: Code: [AUSKLAPPEN] Type shot
Field x Field y Field w End Type Graphics 800,600,32,2 SetBuffer BackBuffer() Global kw = 0 Global x# = 400, y # = 300 Global Reichweite% = 0 While Not KeyHit(1) If KeyHit(57) s.shot=New shot ;Neuen Schuss-Type s\x=x ;X übernehmen s\y=y ;Y übernehmen s\w=kw ;Winkel übernehmen EndIf Text 10,10,"Winkel: "+kw Text 10,30,"X-Koordinaten: "+x Text 10,50,"Y-Koordinaten: "+y Oval x#-5,y#-5,10,10,1 Line x#,y#,x#+20*Cos(kw),y#+20*Sin(kw) If KeyDown(205) Then kw=kw+1 If KeyDown(203) Then kw=kw-1 If KeyDown(200) Then x# = x# + Cos(kw) y# = y# + Sin(kw) EndIf If KeyDown(208) Then x# = x# - Cos(kw) y# = y# - Sin(kw) EndIf For s.shot=Each shot ;Jeden Schuss abfragen s\x=s\x+Cos(s\w)*5 ;Bewegen s\y=s\y+Sin(s\w)*5 ;Bewegen Oval s\x-1,s\y-1,2,2,1 ;Zeichnen Text 10,90,"X-Shot (Koordinaten): "+s\x Text 10,110,"Y-Shot (Koordinaten): "+s\y Text 10,130,"Schusswinkel: "+s\w Reichweite = Reichweite +1 If Reichweite = 300 Then Exit Flip Cls Wend End Der Schuss darf nun, nur eine bestimmte Reichweite erreichen, zudem sollen während dem Flug des Projektils zusätzlich die Koordinaten der Flugbahn angezeigt werden, jedoch überlager sich die Textausgabe, der Schuss fliegt nicht wie gewollt eine Länge von 300 Pixel (genauer gesagt 299 Pixel). Desweiteren verlangsamt sich das Programm durch die textüberlagerung nach mehrmaligem feuern rapide. Hoffen kann mir jemand helfen. Danke schon mal im voraus. Mfg Sämi |
||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Da sind auch noch einige Fehlerchen drin.
Die Variable Reichweite gibts nur einmal, sollte aber für jeden Typeeintrag existieren. Typeeinträge löscht man mit Delete. Also die eine Schleife sollte folgendermaßen aussehen. Und dein Type sollte um das Field d erweitert werden. Code: [AUSKLAPPEN] Type shot Field x Field y Field w Field d End Type . . . . . sx$ = "": sy$ = "": sw$ = "" For s.shot=Each shot ;Jeden Schuss abfragen s\x=s\x+Cos(s\w)*5 ;Bewegen s\y=s\y+Sin(s\w)*5 ;Bewegen s\d = s\d + 5 sx$ = sx$ + s\x + ", " sy$ = sy$ + s\y + ", " sw$ = sw$ + s\w + ", " Oval s\x-1,s\y-1,2,2,1 ;Zeichnen If s\d > 300 Then Delete s Next Text 10,90,"X-Shot (Koordinaten): "+sx Text 10,110,"Y-Shot (Koordinaten): "+sy Text 10,130,"Schusswinkel: "+sw |
||
os: Windows 10 Home cpu: Intel Core i7 6700K 4.00Ghz gpu: NVIDIA GeForce GTX 1080 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group