Pong-Clon ohne Grafiken
Übersicht

![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Starwar,
habe vor lauter Posts dein Post beachtet. Ja klar, man kann es mit X und Y Speed Variablen machen. Sin und Cos wäre (meiner persönlichen Meinung nach) eleganter. Aber muss jeder selber wissen , wie er es machen will . Edit: so habe ich mir Sin und Cos beigebracht weil ich nicht auf die Idee der Speedvariablen kam. Darauf hin wurde mir sin cos vorgeschlagen ich habe das Schema erkannt und wandte es an XD x=x+Cos(winkel)*speed .... Viele Grüße TimBo |
||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
- Zuletzt bearbeitet von TimBo am Mi, März 04, 2009 22:25, insgesamt einmal bearbeitet
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
an timbo... ich meinte es auf des proggen bezogen... wen ich schlieslich den winkel belase... fliegt der bal durch die linie durch.......
an snade: was meinst du damit? du kanst doch vaariereen(wie zum teufel schreibt man das?) zb 180-20 180-34 180-56 falstes von der andern seite brauchst: -180+23 -180+23 bei gedrehten schlägern wirds dan schwieriger...... (aber bei pong braucht man ja keine drehung...) |
||
![]() |
Snade |
![]() Antworten mit Zitat ![]() |
---|---|---|
@starwar
Na klar immer her damit ![]() @ Feuerball Und wie machst du das dann wenn dir einer von den Winkeln nicht bekannt ist^^ |
||
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
der winkel des balles muss bekannt sein. (sonst kansten ja nicht bewegen(auser du machstes mit x/y speed))
fals dieser nicht bekannt ist wirds schwierig... aber bau ihn besser von anfangan ins progg ein... fals ein winkel dochmal nicht bekannt sein sollt.... Code: [AUSKLAPPEN] winkel# = ATan2 ( Y_1 - Y_2, X_1 - X_2 ) (was das ganze macht weis ich selber nicht) naja. aber so kannst du zwischen 2 punkten den winkel bestimmen. |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Graphics 640,480,32,2
SetBuffer BackBuffer() ClsColor 255,225,255 Color 0,0,0 Local w%,h%,x#,y#,xmove#,ymove# Local frametimer = CreateTimer(30) w=GraphicsWidth() h=GraphicsHeight() x=w/2 y=h/2 xmove=4 ;Die X-Geschwindigkeit. Minus bedeutet nach links, positiv nach rechts. ymove=-6 ;Die Y-Geschwindigkeit. Minus bedeutet nach oben, positiv nach links. Repeat WaitTimer(frametimer) Cls x=x+xmove y=y+ymove If x >= w Then xmove=xmove*(-1) ;Kollison mit der rechten Wand If x <= 0 Then xmove=xmove*(-1) ;Kollison mit der linken Wand If y >= h Then ymove=ymove*(-1) ;Kollison mit der unteren Wand If y <= 0 Then ymove=ymove*(-1) ;Kollison mit der oberen Wand Oval x-4,y-4,8,8 Flip() Until KeyDown(1) Das ist mein Vorschlag. Das langsame kommt weil ich Oval benutze. MFG |
||
![]() |
Snade |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte mir das schon schwieriger vorgestellt ich glaube es muss mal jemand den wiki code ändern^^
Was ich nicht verstehe: Code: [AUSKLAPPEN] x=w/2
y=h/2 warum ausgerechnet durch 2? |
||
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ich habs so:
Code: [AUSKLAPPEN] Graphics 600,600,0,2 Global winkel# = Rnd(0,360) ; winkel des balles (zufall) Global x# = 300 ;ball, x-position, wichtig! mit # Global y# = 300 ;ball, y-position, wichtig! mit # SetBuffer BackBuffer() ;hauptschleife Repeat ClsColor 255,255,255 ;weißer Hintergrund Cls ; bildschirm löschen Color 0,0,0 ;aktuelle farbe : schwarz x# = x# + Cos(winkel#) ; x-position wird neu berechnet y# = y# - Sin(winkel#) ; selbe mit y.... If KeyDown(203) Then ;wen "links" taste gedrückt wird winkel# = winkel# + 1 ;dazu muss ich nichts erklären oder??? ElseIf KeyDown(205) ;rechts...... winkel# = winkel# - 1 EndIf If x# > 590 ;alternativ auch mit variabeln möglich (590 weil ball gröse von 10 hatt) winkel# = 180 - winkel# ;habe mich vertan. geht auf allen seiten... ElseIf x# < 0 Then winkel# = 180 - winkel# ElseIf y# > 590 Then winkel# = 180 - winkel# ElseIf y# < 0 Then winkel# = 180 - winkel# EndIf Oval x#,y#,10,10 Flip Until KeyHit(1) warum durch 2?...... naja... w ist der komplette bildschirem... durch 2 ist diw hälfte... also landet der ball in der mitte..... *edit* ätsch bei mir kann man steuern ![]() |
||
![]() |
The Shark |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dann ist der ball am anfang in der mitte des bildschirms
EDIT: zu spät |
||
feuerball11 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
^^ (das kommt warscheinlich in trash........)
*edit* wie auch immer. ich gehe für heute off... viel spass noch... |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group