Gamestudio Links
Zorro Links
Newest Posts
Zorro 2.70
by jcl. 09/29/25 09:24
optimize global parameters SOLVED
by dBc. 09/27/25 17:07
ZorroGPT
by TipmyPip. 09/27/25 10:05
assetHistory one candle shift
by jcl. 09/21/25 11:36
Plugins update
by Grant. 09/17/25 16:28
AUM Magazine
Latest Screens
Rocker`s Revenge
Stug 3 Stormartillery
Iljuschin 2
Galactic Strike X
Who's Online Now
1 registered members (TipmyPip), 18,633 guests, and 5 spiders.
Key: Admin, Global Mod, Mod
Newest Members
krishna, DrissB, James168, Ed_Love, xtns
19168 Registered Users
Previous Thread
Next Thread
Print Thread
Rate Thread
Kollisions abfrage für Panels #141205
07/15/07 08:08
07/15/07 08:08
Joined: Jul 2006
Posts: 26
Germany,Stuttgart
JoeIII Offline OP
Newbie
JoeIII  Offline OP
Newbie

Joined: Jul 2006
Posts: 26
Germany,Stuttgart
Hallo zusammen!
gibt es eine möglichkeit wenn zwei Panel auf einanderstoßen dies abzufragen?. Ich könnte natürlich die Panel pos vergleichen und entsprechend reagieren aber gibt es noch eine andere möglichkeit.
Ziel ist es einen Pong Klon (Atari2600) zu machen d.h. 2D. Bisher hab ich ohne den WED arbeiten können (rein Script). Allerdings stoße ich jetzt immer mehr auf das Problem mit Vectoren arbeiten zu müssen (vermutung) wegen der Kollision.
Hier ein Sreenshot vom Game:


Grundsätzlich frage ich mich auch ob es Sinnvoll ist das ganze in 2D aufzubauen oder hätte ich das ganze in 3D und dann nur die View entsprechend setzen sollen?. Was meint ihr dazu?.
Wäre klasse wenn ihr mir helfen könntet
Gruß Jörg


Carpe Diem
Re: Kollisions abfrage für Panels [Re: JoeIII] #141206
07/15/07 08:13
07/15/07 08:13
Joined: Apr 2005
Posts: 2,332
Germany, BaWü
aztec Offline

Expert
aztec  Offline

Expert

Joined: Apr 2005
Posts: 2,332
Germany, BaWü
Ich vermute dass du es so machen musst wie du gesagt hast denn soweit ich weis
gibt es keine Kollision bei panel vllt könntest du sie ja als view entities definieren dann würde es glaube ich klappen , bin mir aber nicht sicher
Mfg
Aztec


Visit:
schwenkschuster-design.de
Re: Kollisions abfrage für Panels [Re: aztec] #141207
07/15/07 20:59
07/15/07 20:59
Joined: Oct 2004
Posts: 262
Augsburg,Bayern
A
ARAS Offline
Member
ARAS  Offline
Member
A

Joined: Oct 2004
Posts: 262
Augsburg,Bayern
Hallo JoeIII,

mit 3D wirst Du bestimmt soetwas schneller bewerkstelligen können, so wie Du
es schon selber gesagt hast. Ich habe Dir einmal so auf die schnelle etwas
zusammen geschrieben, damit Du siehst das soetwas in 3D mit Änderung des View
garnicht so schlecht aussieht.
Hier kannst Du Dir das ganze herunterladen.
Ping Pong
Ich hoffe das hilft Dir etwas vielleicht doch das ganze im Wed zu machen.


Vielen Dank noch einmal an Tracker für sein Packprogramm "3dgsPurePacker".
Endlich kann man auf Nacasi verzichten.

Sorry, habe Gestern die Steuerung für das Spiel ganz vergessen.
Den rechten Paddel kannst Du mit der Maus steuern, den linken mit den Cursortasten
und der Ball erscheint wenn Du die linke Maustaste drückst.
Wenn der Source Code benötigt wird kann ich den auch hochladen.

Mfg

ARAS

Last edited by ARAS; 07/16/07 18:21.
Re: Kollisions abfrage für Panels [Re: ARAS] #141208
07/15/07 22:16
07/15/07 22:16
Joined: Jul 2007
Posts: 959
nl
F
flits Offline
User
flits  Offline
User
F

Joined: Jul 2007
Posts: 959
nl
hallo

ich habbe auch was geschreben ess ist still under construction but its realy late here and.

i hoffe das do weiter geht am 2d

place othere names for bmap and it will work i hope;

var video_mode = 7;
var video_depth = 32;
var video_screen = 1;
var screen_color[3] = 0,0,1;
var movebalkl;
var movebalkr;
var movebalx;
var movebaly;
var oldspeedx = 1;
var oldspeedy = 1;
var speedx;
var speedy;
var scorer;
var scorel;

bmap balk1 = ("balk1.bmp"); // 20 x 100 pixels
bmap bal_bmp = ("bal.bmp"); // 18 x 18 pixels

panel balkl
{
bMAP = balk1;
layer = 2;
}

panel balkr
{
bMAP = balk1;
layer = 2;
}

panel bal
{
bmap = bal_bmp;
layer = 2;
}

panel scores
{
digits = 395,0,2,_a4font,1,scorer;
digits = 405,0,2,_a4font,1,scorel;
layer = 3;
flags = visible;
}

function startpos
{
bal.visible = on;
balkl.visible = on;
balkr.visible = on;
balkl.pos_x = 0;
balkr.pos_x = screen_size -20;
movebalkl = 250;
movebalkr = 250;
bal.pos_x = 400 - 9;
bal.pos_y = 300 - 9;
}

function bal_func
{
movebalx =1;
while(1)
{
if(bal.pos_y <= 0)
{
movebaly += -oldspeedy;
}
if(bal.pos_y >= 588)
{
movebaly -= -oldspeedy*2;
}
if(bal.pos_x <= 0)
{
scorer +=1;
startpos();
}
if(bal.pos_x >= 788)
{
scorel +=1;
startpos();
}
if(bal.pos_y >= balkl.pos_y -18 && bal.pos_y <= balkl.pos_y + 118 && bal.pos_x <= 20)
{
movebalx += -oldspeedx;
}
if(bal.pos_y >= balkl.pos_y -18 && bal.pos_y <= balkl.pos_y + 118 && bal.pos_x >= 762)
{
movebalx -= -oldspeedx;
}
bal.pos_x -= movebalx;
bal.pos_y -= movebaly;
wait(1);
}
}

function move_balks
{
while(1)
{
movebalkl -= (key_w - key_s)*2;
movebalkl = clamp(movebalkl,0,500);
movebalkr -= (key_cuu - key_cud)*2;
movebalkr = clamp(movebalkr,0,500);
balkl.pos_y = movebalkl;
balkr.pos_y = movebalkr;
wait(1);
}
}

function main()
{
wait(1);
startpos();
move_balks();
bal_func();
}


"empty"
Re: Kollisions abfrage für Panels [Re: flits] #141209
07/17/07 19:41
07/17/07 19:41
Joined: Oct 2004
Posts: 262
Augsburg,Bayern
A
ARAS Offline
Member
ARAS  Offline
Member
A

Joined: Oct 2004
Posts: 262
Augsburg,Bayern
Hallo JoeIII,

hier wie gewünscht erst einmal der Source-Code zum herunterladen.

PING_PONG_SOURCE

Und hier das Skript das Du noch wolltest.
Code:
 //////////////////////////////////////////////////////////////////////////////

PATH "sprites";
PATH "scripts";
PATH "models";
PATH "levels";
PATH "sounds";



var video_mode = 8; // 1024 x 768 pixels
var video_depth = 32; // 32 bit mode
var video_screen = 1; // full screen mode
var d3d_lightres = 1;


var ball_speed = 60;
var treffer_spieler_1 = 0;
var treffer_spieler_2 = 0;
var level_number = 1;
var ball_pos;
var ball_pan;

//////////////////////////////////////////////////////////////////////////////

font ping_pong1_font = <ping_pong1.pcx>, 25, 19;

//////////////////////////////////////////////////////////////////////////////

string level_wmb = <level.wmb>;
string ball_mdl = <ball.mdl>;

//////////////////////////////////////////////////////////////////////////////

sound wall_wav = <wall.wav>;
sound lost_wav = <lost.wav>;

//////////////////////////////////////////////////////////////////////////////

entity* ball;
entity* player1;
entity* player2;

//////////////////////////////////////////////////////////////////////////////

function balltreffer();
function ball_event();

//////////////////////////////////////////////////////////////////////////////

panel pingpong_pan
{
layer = 15;

digits = 150, 15, 6, ping_pong1_font, 1, treffer_spieler_1;
digits = 605, 15, 6, ping_pong1_font, 1, treffer_spieler_2;
flags = overlay, refresh, visible;
}

text pingpong_txt
{
layer = 15;
pos_x = 5;
pos_y = 15;
font = ping_pong1_font;
flags = visible;
}

//////////////////////////////////////////////////////////////////////////////


function main()
{
fps_max = 100;
if (level_number == 1)
{
level_load(level_wmb);
}

wait (3);
camera.z = 2000; // Kamerahöhe
camera.x = 0;
camera.y = 0;
camera.pan = -90;
camera.tilt = -90;
while (player1 == null || player2 == null) {wait (1);} // Keine Spielerentity ist vorhanden, dann stoppt das Spiel
while (ball == null) {wait (1);} // Keine Ball ist vorhanden, dann stoppt das Spiel
ball.invisible = off;
ball_speed = 60; // Ballgeschwindigkeit
}


action my_paddle_1
{
player1 = my;
my.transparent = on;
my.alpha = 100;
my.enable_impact = on;
my.enable_entity = on;
my.event = balltreffer;
while (1)
{
ent_move(nullvector, vector(0, -90 * mouse_force.y * time, 0));
wait (1);
}
}

action my_paddle_2
{
player2 = my;
my.transparent = on;
my.alpha = 100;
my.enable_impact = on;
my.enable_entity = on;
my.event = balltreffer;
while (1)
{
ent_move(nullvector, vector(0, -80 * (key_cuu - key_cud) * time, 0));
wait (1);
}
}

function balltreffer()
{
proc_kill(4);
snd_play (wall_wav, 50, 0);
my.event = null;
sleep (0.5);
my.event = balltreffer;
}

action my_ball
{
vec_set (ball_pos.x, my.x);
my.invisible = on;
while (mouse_left == 0) {wait (1);}
ball_speed = 60;
my.invisible = off;
randomize();
ball = my;
my.pan = 70 - random(140);
my.enable_block = on;
my.enable_impact = on;
my.enable_entity = on;
my.event = ball_event;
while(1)
{
ball_pan = my.pan;
move_mode = ignore_passable;
ent_move(vector(ball_speed * time, 0, 0), nullvector);
if (my.x < -1024 || my.x > 1024) // Grenzen für Ball im Aus
{
snd_play (lost_wav, 70, 0);
if (my.x < -1024)
{
treffer_spieler_1 += 1; // Erhöhung der Trefferpunkte
}
if (my.x > 1024)
{
treffer_spieler_2 += 1; // Erhöhung der Trefferpunkte
}
ent_create (ball_mdl, ball_pos.x, my_ball); // Ball wird am Anfangspunkt wieder kreiert
ent_remove (my);
return;
}
wait(1);
}
}

function ball_event() // Eventfunktionen des Balles
{
if (event_type == event_block) // Auftreffen des Balles auf Wände
{
snd_play (wall_wav, 50, 0);
}
vec_to_angle (my.pan, bounce);
if(ball_speed < 120) // Stetige Erhöhung der Ballgeschwindigkeit
{
ball_speed += 1;
}
my.tilt = 0; // Keine horizontale Bewegung zulassen.
if ((my.pan > -80) && (my.pan < -100)) // Reduzierung von zu geradlinigem Abprallen von der Wand
{
if (my.pan > -90)
{
my.pan = -80;
}
else
{
my.pan = -100;
}
}
if ((my.pan > 80) && (my.pan < 100)) // Reduzierung von zu geradlinigem Abprallen von der Wand
{
if (my.pan < 90)
{
my.pan = 80;
}
else
{
my.pan = 100;
}
}
my.pan += 1 - random(2); // Zufällige Erhöhung der Pan-Wertes um gleichbleibende Bewegung zu verhindern
}



MFG

ARAS

Re: Kollisions abfrage für Panels [Re: ARAS] #141210
07/19/07 04:47
07/19/07 04:47
Joined: Jul 2006
Posts: 26
Germany,Stuttgart
JoeIII Offline OP
Newbie
JoeIII  Offline OP
Newbie

Joined: Jul 2006
Posts: 26
Germany,Stuttgart
Hallo zusammen!
also erst mal besten Dank für die Hinweise und Scripts. Jetzt heisst erst mal zervpflücken lernen und verstehen.
Gruß Jörg


Carpe Diem

Gamestudio download | Zorro platform | shop | Data Protection Policy

oP group Germany GmbH | Birkenstr. 25-27 | 63549 Ronneburg / Germany | info (at) opgroup.de

Powered by UBB.threads™ PHP Forum Software 7.7.1